ThinkPHP框架下整合支付宝支付功能图文教程分享!

本文实例讲述了ThinkPHP框架下整合支付宝支付功能。分享给大家供大家参考,具体如下:

一.接入配置

根据“快速接入”中的流程,两者大同小异,都是进行:

20201110_5faab872ae53d

虽然官方文档已经做的很详细、成熟,不过还是有几点需要着重提醒一下,以免不必要的纠结。

二.手机网站支付接口实现

如下图所示,我在此创建了一个简单的入口文件,根据开发文档中的介绍是需要统一编码格式的,此处我选择的是UTF-8 20201110_5faab873232f9

需要注意的是,接口指明需要POST方式进行提交请求 20201110_5faab8738cb96

对于支付宝的配置信息,我写在 Application/Common/Conf/config.php中

//支付宝 支付配置 \’ALI_CONFIG\’ => array( \’gatewayUrl\’ => \’https://openapi.alipay.com/gateway.do\’,//支付宝网关(固定)\’ \’appId\’ => \’2017xxxxxxxx9\’,//APPID即创建应用后生成 //由开发者自己生成: 请填写开发者私钥去头去尾去回车,一行字符串 \’rsaPrivateKey\’ => \’MIIExxxxxxxxxxxxxxxxxxxxxxxxxxxq\’, //支付宝公钥,由支付宝生成: 请填写支付宝公钥,一行字符串 \’alipayrsaPublicKey\’ => \’IIBxxxxxxxxxxxxxxxxxxxEFAA\’, \’notifyUrl\’ => \’http://www.xxx.com/m/cartpay/notify_ali\’, // 支付成功通知地址 \’returnUrl\’ => \’http://www.xxx.com\’, // 支付后跳转地址 \’returnPcUrl\’ => \’http://www.xxx.com/Home\’, // PC端扫码支付后跳转地址 ),

将前面所下载的SDK放入自定义的位置,在此,我习惯放在如下的路径中,…ThinkPHPLibraryVendorAlipay,特别提醒一点,对于各文件类的引用会依据代码框架而不同,需要自行确认。

在请求唤醒支付宝支付的路径中进行接口代码的编辑

20201110_5faab87403d09

提示

20201110_5faab874aeb84 20201110_5faab8753a7bb

代码实现如下:

/** * 支付宝支付post提交页面 */ public function alipay(){ if (IS_POST){ Vendor(\’Alipay.aop.AopClient\’); Vendor(\’Alipay.aop.request.AlipayTradeWapPayRequest\’); //$out_trade_no = I(\’post.order_sn\’); /* * $out_trade_no 为自己业务逻辑中要支付的订单号 * 可从POST数据中提取,具体安全起见可自行加密操作 此处仅举例测试数据 * $order_amount 为要进行支付的金额 注意要用小数转换 * 例如:3.50,10.00 * $aliConfig 获取支付宝配置数据 */ $out_trade_no = \’2017M\’.time(); $body = \’欢迎购买商品,愿您购物愉快\’; $subject = \’你好\’; $order_amount = 9.00; $aliConfig = C(\’ALI_CONFIG\’); $aop = new AopClient(); $aop->gatewayUrl = $aliConfig[\’gatewayUrl\’]; $aop->appId = $aliConfig[\’appId\’]; $aop->rsaPrivateKey = $aliConfig[\’rsaPrivateKey\’]; $aop->alipayrsaPublicKey=$aliConfig[\’alipayrsaPublicKey\’]; $aop->apiVersion = \’1.0\’; $aop->postCharset=\’UTF-8\’; $aop->format=\’json\’; $aop->signType=\’RSA2\’; $request = new AlipayTradeWapPayRequest (); $bizContent = \”{\” . \” \”body\”:\”$body.\”,\” . \” \”subject\”:\”$subject\”,\” . \” \”out_trade_no\”:\”$out_trade_no\”,\” . \” \”timeout_express\”:\”90m\”,\” . \” \”total_amount\”:$order_amount,\” . \” \”product_code\”:\”QUICK_WAP_WAY\”\” . \” }\”; $request->setBizContent($bizContent); $request->setNotifyUrl($aliConfig[\’notifyUrl\’]); $request->setReturnUrl($aliConfig[\’returnUrl\’]); $result = $aop->pageExecute ( $request); echo $result; }else{ echo \’sorry,非法请求失败\’; } }

此时,通过获取所提交过来的post数据,进行订单号的剥离,从而进行下一步的业务逻辑处理即可. [注意]:

/** * 支付宝支付通知功能 */ public function notify_ali(){ $out_trade_no = I(\’post.out_trade_no\’); $this->toUpdatePayInfo($out_trade_no,\’ali\’); echo \’success\’; }

三.电脑网站支付接口实现

对比来看,其实 PC 端的代码设计与手机端大同小异,在此点明一下使用情景,可进行参考。

20201110_5faab875b8bac

提示:

20201110_5faab87644817

20201110_5faab876c81cb

12下一页

本站无法对海量内容真伪性鉴别,请勿相信本站任何号码,邮件,站外网址等信息,如有需要,请自行甄别。版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至net@163.com举报,一经查实,本站将立刻删除。
(0)
上一篇 2022年8月2日 上午9:19
下一篇 2022年8月2日 上午9:30

相关推荐

发表回复

登录后才能评论