laravel集成支付宝扫码支付

因为公司的需求要用到扫码支付,而且公司的PHP的开发框架是laravel5.2,但是支持laravel的扫码支付组件没有,由此挖坑!
废话不多说,直接说流程:
1》支付宝开放平台下载当面付Demo
2》将demo解压放至app目录下
3》去到f2fpay目录下,把qrpay_test.php中html部分复制到pay.blade.php
4》在路由文件写上,Route::get('/pay',function(){ return view('pay')});
5》修改pay.blade.php的form,为action填上'/submitpay'
6》在路由文件写上,Route::any('/submitpay','AlipayController@submitpay');
7》将qrpay_test.php中php部分复制到AlipalController中的submitpay方法,并且修改引入文件
require_once app_path().'/F2FPay/f2fpay/model/builder/AlipayTradePrecreateContentBuilder.php';
require_once app_path().'/F2FPay/f2fpay/service/AlipayTradeService.php';并且将里面new 类的时候,在类的前面加上\,否则报类找不到的错误。
8》运行域名/pay,并提交,报错,
Cannot redeclare decrypt() (previously declared in
D:\wamp\www\company\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php:308)
Cannot redeclare encrypt() (previously declared in
D:\wamp\www\company\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php:363)
这是因为支付宝sdk和laravel框架系统函数冲突的缘故,我是把那个函数名修改了一下,报错就消失了,但是还没测试修改函数名的副作用(更新:想了一下我还是修改支付宝sdk的函数名,因此全局搜索decrypt和encrypt,其实这两个函数用的也不是特别多,只要修改下aop/AopEncrypt.php的函数名,用到的地方在aop/AopClient.php)
9》还有一个报错是在AlipayTradeService类里面,找到这个文件,第351行,因为找不到log的路径,修改file_put_contents ( dirname ( FILE ).DIRECTORY_SEPARATOR."../log/log.txt", date ( "Y-m-d H:i:s" ) . " " . $text . "\r\n", FILE_APPEND );

到此大功告成,哎呀,坑死我了!!!截个图纪念一下

laravel集成支付宝扫码支付_第1张图片
.png

你可能感兴趣的:(laravel集成支付宝扫码支付)