ThinkPHP3.2.3框架下使用支付宝接口实现付款功能

1、下载PHP版本的SDK(注:服务器上的php版本必须在5.5以上,否则会报错)

2、将SDK文件夹重命名为alipay并放到TP框架的Vendor文件夹下

3、打开alipay/lotusphp_runtime/shortcut.php将C函数变更为CC(由于C函数与TP的C函数重复)

4、调用接口用Vendor(alipay.Aopsdk)

调用实例:

Vendor('AlipaySdk.AopSdk');
$aop = new \AopClient ();

//这是沙箱环境
$aop->gatewayUrl = 'https://openapi.alipaydev.com/gateway.do';

//这是正式环境

$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = '3333333333';
$aop->rsaPrivateKey = '见密钥生成工具';
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset= 'utf-8';
$aop->format='json';
$request = new \AlipayTradePagePayRequest ();
$request->setReturnUrl('http://v1.xxxx.com/Home/Test/order');
$request->setNotifyUrl('http://v1.xxxxx.com');
$request- >setBizContent('{"product_code":"FAST_INSTANT_TRADE_PAY","out_trade_no":"20170320010101002","subj ect":"Iphone7 16G","total_amount":"18.88","body":"Iphone6 16G"}');

注:

1、在实例化对象的时候要在类的前面添加"\"(一定要添加反斜线)

2、在传递请求参数(setBizContent)的时候是json格式,如果参数的值为变量可以先定义一个数组然后在用json_encode转成json格式

3、在提交付款的时候不要使用AJAX提交,一定要用form表单提交

4、同步通知地址是付款成功后返回给网站的地址(也就是支付成功的页面),支付成功后会返回参数已get方式返回(包括订单号),可以根据订单号更改订单状态,给前台的信息赋值

5、异步通知可以填网站的首页

6、在申请支付宝接口的时候需要填写的授权回调地址可以和同步通知地址一样(客服说看着填我也是很无奈)

7、程序要实例化两个类,都要加反斜线“\”

8、支付宝的秘钥可以自己下载工具生成,但是要把商家公钥传给支付宝,商家私钥写到程序里,支付宝公钥会自动生成,不用写

9、支付宝支持沙箱测试环境,有独立的appid和用户信息(在测试的时候不要弄混正式环境和测试环境)

10、这是电脑网站支付的demo


猜你喜欢

转载自blog.csdn.net/xbh0127/article/details/72962961