laravel支付宝sdk接入
自己学习使的 仅供参考
一、打开蚂蚁金服开放平台 找到研发服务->沙箱应用
设置沙箱应用保证可以使用
二、找到sdkdemo下载放到本地环境并改名为alipay配置里面的config 注释有详细的讲解仔细看
三、(这里是我的习惯)放到laravel的app下
四、去config下面新建一个alipay.php将本地修改好的config放到中间
五、复制alipay/pagepay里面的pagepay.php代码到自己的支付方法里面需要修改(发生错误的顺序没分先后)
1、出现一个AopCline的一个each的错误(这个一般是laravel5.以上才会发生)
修改为
foreach ($para_temp as $key=>$val) {if (false === $this->checkEmpty($val)) {//$val = $this->characet($val, $this->postCharset);$val = str_replace("'","'",$val);//$val = str_replace("\"",""",$val);$sHtml.= "<input type='hidden' name='".$key."' value='".$val."'/>";}}
2.出现一个encrypt或者decrypt冲突的错误(因为laravel自带encrypt和decrypt方法)修改alipay/aop/AopEncrypt.php的方法名即可 如:
*** 加密方法* @param string $str* @return string*/function alipay_encrypt($str,$screct_key){//AES, 128 模式加密数据 CBC$screct_key = base64_decode($screct_key);$str = trim($str);$str = addPKCS7Padding($str);$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC),1);$encrypt_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC);return base64_encode($encrypt_str);
}/*** 解密方法* @param string $str* @return string*/function alipay_decrypt($str,$screct_key){//AES, 128 模式加密数据 CBC$str = base64_decode($str);$screct_key = base64_decode($screct_key);$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC),1);$encrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC);$encrypt_str = trim($encrypt_str);$encrypt_str = stripPKSC7Padding($encrypt_str);return $encrypt_str;}
3.会出现一个AlipayTradePagePayContentBuilder()错误 找到这个位置前面加个\
到这里基本就结束了 附上自己测试代码
//支付方法public function pay($order_id){require_once app_path("Packages/alipay/pagepay/service/AlipayTradeService.php");require_once app_path("Packages/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php");$config = config("alipay");//商户订单号,商户网站订单系统中唯一订单号,必填$out_trade_no = date('YmdHis').rand(50,200).Str::random(10);//订单名称,必填$subject = trim("go团队测试");//付款金额,必填$total_amount = rand(10,100);//商品描述,可空$body = "";//构造参数$payRequestBuilder = new \AlipayTradePagePayContentBuilder();$payRequestBuilder->setBody($body);$payRequestBuilder->setSubject($subject);$payRequestBuilder->setTotalAmount($total_amount);$payRequestBuilder->setOutTradeNo($out_trade_no);$aop = new \AlipayTradeService($config);/*** pagePay 电脑网站支付请求* @param $builder 业务参数,使用buildmodel中的对象生成。* @param $return_url 同步跳转地址,公网可以访问* @param $notify_url 异步通知地址,公网可以访问* @return $response 支付宝返回的信息*/$response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);//输出表单var_dump($response);}
4、同步跳转
//同步跳转public function success(){//引入配置文件$config = config('alipay');//引入ALipayTradeService文件require_once app_path("Packages/alipay/pagepay/service/AlipayTradeService.php");//接到支付宝同步跳转所返回的所有值 都将验签使用$arr = $_GET;//实例化AlipayTradeService 前面加个\ 传配置文件过去$alipaySevice = new \AlipayTradeService($config);//调用验签方法 这里特别说明一下 如果验签失败。请去AlipayTradeService文件中找到check方法做一下修改$ischeck = $alipaySevice->check($arr);//判断验签是否成功if($ischeck){//成功跳转到订单成功页面 用于提示用户return view("order.success");}else{//验签失败echo "fail";}}
laravel支付宝sdk接入相关推荐
- android 支付宝sdk接入详解
android 支付宝sdk接入详解 第一步 在接入支付宝sdk之前首先要进入支付宝开发者平台申请应用所需要的应用唯一标识(APPID).应用私钥(APP_PRIVATE_KEY).支付宝公钥(ALI ...
- Android App支付系列(二):支付宝SDK接入详细指南(附官方支付demo)
前言 一家移动互联网公司,说到底,要盈利总是需要付费用户的,自己开发支付系统对于资源有限的公司来说显然不太明智,国内已经有多家成熟的移动支付提供商,阿里就是其中之一. 继< Android Ap ...
- Android App支付:支付宝SDK接入详细指南(附官方支付demo)
Android App支付:支付宝SDK接入详细指南(附官方支付demo) 前言 一家移动互联网公司,说到底,要盈利总是需要付费用户的,自己开发支付系统对于资源有限的公司来说显然不太明智,国内已经有多 ...
- iOS 支付宝SDK接入详解
一,在支付宝开放平台下载支付宝SDK(https://openhome.alipay.com/platform/document.htm#down) https://doc.open.alipay.c ...
- Laravel 支付宝SDK在Laravel5的封装
2019独角兽企业重金招聘Python工程师标准>>> 一.安装 composer require latrell/alipay dev-master 找到 config/app.p ...
- 支付宝SDK接入详细指南(附官方支付demo)
前言 一家移动互联网公司,说到底,要盈利总是需要付费用户的,自己开发支付系统对于资源有限的公司来说显然不太明智,国内已经有多家成熟的移动支付提供商,阿里就是其中之一. 继< Android A ...
- Android 接入支付宝在手机未安装支付宝客户端的情况下掉不起支付宝sdk的h5页面
Android 接入支付宝在手机未安装支付宝客户端的情况下掉不起支付宝sdk的h5页面 最近公司项目需要对接支付宝移动支付,按照支付宝开发文档一步步往项目中集成,一开始还是比较顺利的,因为测试手机上安 ...
- Android客户端三步完成支付宝支付SDK接入
迁移最新版本 1.下载SDK 下载地址:https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&d ...
- Unity Android平台接入支付宝SDK
这篇文章前面讲的创建Android Studio工程的流程是不正确的!!! 正确的流程请参见:Unity Android平台下插件/SDK开发通用流程 最近帮一个群里的朋友接了一下支付宝的SDK,开发 ...
最新文章
- 跟风Google Brain,Facebook AI研究机构启动见习项目
- js通过ajax发送header信息php接收
- AppleWatch开发-AlertController
- ROS:launch文件的语法规范
- 41.django中auth用户认证
- Spark 概念学习系列之从物理执行的角度透视spark Job(十七)
- 物联网平台如何创造价值,构建平台需要考虑哪些因素?
- 购买计算机要注意哪些性能指标,买电脑主要看哪些配置 买电脑要注意什么配置 电脑的配置基本知识...
- Dev-C++5.11游戏创作之简易游戏(之前的登录软件与跑酷程序的结合)
- c++ Win x64 注册表操作
- Annex-B和AVCC
- Linux如何让程序在后台运行
- 硬件知识(二)无源RC二阶滤波电路
- HashMap扩容全过程
- 2021年N1叉车司机考试题库及N1叉车司机模拟考试
- 奥塔在线:架构实践基础之一图胜千言
- 无线路由器当作无线交换机使用
- 数据库第十一次作业--视图的应用
- 苹果6现在多少钱_太阳能路灯现在多少钱一套
- csv导入mysql乱码问题,Mysql导入导出csv中文乱码问题的解决方法_MySQL