Laravel 支付宝支付
首先下载PHP版本的Demo
官方版本:Demo
个人:Demo
下载的包放到Laravel框架:
在app/新建libs文件夹,将SDK包放在该目录下

Config配置:

下载开发助手、配置对应的密钥: 点我
找到根目录下的composer.json文件,添加如下配置:
"autoload": { "classmap": [ "database", "app/libs/alipay" //这里是自定义包的文件位置,我将我项目中的该SDK包命名为alipay ], "psr-4": { "App\\": "app/" } },
执行以下命令:
composer dump-autoload //当在包中加入新的类,需要更新autoloader
路由:
Route::get('zhifubao','AlipayController@zhifubao');
控制器:
public function zhifubao(){ //引入demo包的两个文件 //绝对路径 找到两个文件 require_once "F:/phpstudy_pro/WWW/fsp/".'app/libs/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php'; require_once "F:/phpstudy_pro/WWW/fsp/".'app/libs/alipay/pagepay/service/AlipayTradeService.php'; $out_trade_no = date('Ymd',time()).md5(rand(100,999)); //公共方法生成唯一订单号 //$out_trade_no = rand(1,1999).time(); //公共方法生成唯一订单号 $subject = '夏日缤纷皮肤'; //商品名称 $total_amount = 78; //商品价格 $body = 'test test!'; //订单描述 $timeout_express="1m"; //订单超时时间 1m 一分钟 //不论是支付还是退款,这些参数都要先使用buildmodel中的对象生成,文件在pagepay\buildermodel目录下,都有什么请求参数可以看文档,文档上写的都有 //构造参数 $payRequestBuilder = new \AlipayTradePagePayContentBuilder(); $payRequestBuilder->setBody($body); $payRequestBuilder->setSubject($subject); $payRequestBuilder->setTotalAmount($total_amount); $payRequestBuilder->setOutTradeNo($out_trade_no); //下面实例化这个类,调用里面的支付接口。这个类在pagepay\service下面,这个文件里面有多个接口,比如:支付,查询,退款 $payResponse = new \AlipayTradeService($payRequestBuilder); $result=$payResponse->pagePay($payRequestBuilder,config('alipay.return_url'),config('alipay.notify_url'));//里面需要传参数 }
 
测试必须用官方沙箱账号:
 

出现以上报错解决方法:
在Alipay SDK中,一共有需要修改三个文件的内容:
aop/AopEncrypt.php aop/AopClient.php lotusphp_runtime/Cookie/Cookie.php
在文件中查找encrypt/decrypt替换为alipayEncrypt/alipayDecrypt即可。


                
            
        
浙公网安备 33010602011771号