ThinkPHP框架下整合支付宝支付功能图文教程(3)
6).支付成功后的通知处理
此时,通过获取所提交过来的post数据,进行订单号的剥离,从而进行下一步的业务逻辑处理即可.
[注意]:
- 接口文档中有点明,支付通知功能最后需要输出‘success'
- 此处的通知路径要与配置中确定的 ‘notifyUrl'完全一致
/** * 支付宝支付通知功能 */ public function notify_ali(){ $out_trade_no = I('post.out_trade_no'); $this->toUpdatePayInfo($out_trade_no,'ali'); echo 'success'; }
三.电脑网站支付接口实现
对比来看,其实 PC 端的代码设计与手机端大同小异,在此点明一下使用情景,可进行参考。
1).支付接口实现
提示:
测试发现,接口中定义“subject”时,对于文字的数目有要求,不能超过四个字,至于字母似乎没有特别限制,开发过程中原想显示全部的商品名称却无法实现,还请注意。
提供的代码暂时未进行界面的设计,可参考 手机端接口思想,接收并处理订单信息后再唤醒支付宝,当前的代码可以在公共文件配置正确的情况下,直接公网访问接口链接即可展示效果。
支付成功后的通知处理,请参考手机端实现方式.
2).实现效果截图
3).代码实现如下:
/** * 电脑端唤醒 支付宝扫码支付接口 */ public function aliPayPage(){ $out_trade_no = '2017PC'.time(); $order_amount = '12.88'; $proName = "真米黑米 XXXXXX"; Vendor('Alipay.aop.AopClient'); Vendor('Alipay.aop.request.AlipayTradePagePayRequest'); //构造参数 $aop = new \AopClient(); $aliConfig = C('ALI_CONFIG'); $aop->gatewayUrl = $aliConfig['gatewayUrl']; $aop->appId = $aliConfig['appId']; $aop->rsaPrivateKey = $aliConfig['rsaPrivateKey']; $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset= 'utf-8'; $aop->format='json'; $request = new \AlipayTradePagePayRequest (); $request->setReturnUrl($aliConfig['returnPcUrl']); $request->setNotifyUrl($aliConfig['notifyUrl']); $request->setBizContent( "{" . " \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," . " \"subject\":\"$proName\"," . " \"out_trade_no\":\"$out_trade_no\"," . " \"total_amount\":$order_amount," . " \"body\":\"Iphone6 16G\"" . " }"); //请求 $result = $aop->pageExecute ($request); //输出 echo $result; }
内容版权声明:除非注明,否则皆为本站原创文章。