文章目前仍在编辑中,请等待完善…谢谢
针对近期咨询本人关于ThinkPHP框架集成支付宝支付问题的网友较多,本人特此编写ThinkPHP集成支付宝demo,以供大家参考及使用。(文章中的链接可直接点击)
这边的话,主要做的是手机网站支付(新版)、手机网站支付(旧版)、扫码支付
若您有更好的集成封装方式,欢迎提交到git,以下为该demo对应的git地址:
https://github.com/paopao7/AliPay-with-ThinkPHP.git
首先就ThinkPHP和支付宝官方demo的版本进行说明:
ThinkPHP版本为3.2.2完整版
下载地址:http://www.thinkphp.cn/down/610.html
当然你也可以根据自己的需求进行下载
其他下载地址:http://www.thinkphp.cn/down.html
支付宝demo版本的话,都是下载自官方开放平台最新版。详细说明,请见下文。
1、https://www.alipay.com/?进入该网站,选择我是开发者
2、选择开发文档
3、选择手机网站支付
4、手机网站支付介绍
5、若想要下载老版本的手机网站支付,请选择左侧的快速接入,再点击老版本手机网站支付文档,即可进入老版本页面。
6、点击其中的Demo下载,即可下载
7、新版本的下载,点击左侧的SDK&Demo即可下载
下载完成,接下来集成走起。。。
访问我之前写的关于“THINKPHP框架下支付宝扫码支付报C方法重复定义的解决办法”的文章的开发者都知道,将支付宝的demo随意搁到ThinkPHP框架的某个位置会导致C方法重复定义的问题,具体解决办法就不细讲了,请见以下地址:
http://www.itinfor.cn/archives/821
一、先就代码结构进行讲解
详细的代码结构说明,可点击上图放大进行查看。
WapPayController.class.php 为手机网站支付新版的控制器
WapPayOldController.class.php 为手机网站支付旧版的控制器
WapPay 为手机网站支付新版视图所在文件夹
WapPayOld 为手机网站支付旧版视图所在文件夹
wap_pay 为手机网站支付新版所在的三方库,未做任何修改
wap_pay 为手机网站支付新版所在的三方库,未做任何修改
二、手机网站支付(新版)讲解
因暂无RSA2形式的密钥,所以没办法进行测试。若您在我的demo中,测试成功的话,欢迎反馈,谢谢
三、手机网站支付(旧版)讲解
1、下图为代码及效果图的逻辑关系以及官方demo修改处
图中红色框内的内容为:
require_once(“/ThinkPHP/Library/Org/AliPay/wappay_old/alipay.config.php”);
require_once(“/ThinkPHP/Library/Org/AliPay/wappay_old/lib/alipay_submit.class.php”);
经测试,这种写法这Windows系统上支持并且支持虚拟主机的形式访问,但在Mac系统下不支持
require_once(“./ThinkPHP/Library/Org/AliPay/wappay_old/alipay.config.php”);
require_once(“./ThinkPHP/Library/Org/AliPay/wappay_old/lib/alipay_submit.class.php”);
经修改后,以上写法支持Windows及Mac系统并且支付虚拟主机的形式访问(手中暂无Linux系统,所以未进行测试,若您有测试,欢迎反馈,谢谢)
2、在使用之前,还需要配置app_id等信息
(1)、此处为手机网站支付新版需要配置的地方
需要填写?app_id、merchant_private_key、alipay_public_key、notify_url、return_url
app_id:应用ID,您的APPID
merchant_private_key:商户私钥,您的原始格式RSA私钥
alipay_public_key:支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
notify_url:异步通知地址
return_url:同步跳转
注意:请见图中黄色处,因为新版本使用的是RSA2方式,因此在填写私钥的时候,也要选择RSA2格式的(具体获取位置请见上图)
? ? ? ? ? ? ?notify_url、return_url 需要为外网地址,不然支付宝无法调用到
(2)此处为手机网站支付旧版需要配置的地方
需要填写?$alipay_config[‘partner’]、$alipay_config[‘private_key’]、$alipay_config[‘alipay_public_key’]
$alipay_config[‘partner’]:
合作身份者ID,签约账号,以2088开头由16位纯数字组成的字符串,查看地址:https://openhome.alipay.com/platform/keyManage.htm?keyType=partner
$alipay_config[‘private_key’]:
//商户的私钥,此处填写原始私钥去头去尾,RSA公私钥生成:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.nBDxfy&treeId=58&articleId=103242&docType=1
$alipay_config[‘alipay_public_key’]:
//支付宝的公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm?keyType=partner
$alipay_config[‘notify_url’]:
// 服务器异步通知页面路径 ?需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
$alipay_config[‘return_url’]:
// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
注意:notify_url、return_url 需要为外网地址,不然支付宝无法调用到
如果还有什么不明白的地方,欢迎加我QQ进行咨询,请注明技术咨询
本人QQ:980569038
也可以扫码本人微信:
本人原创,转载请注明出处?http://www.itinfor.cn/archives/1032
若该文章对您有一定帮助,欢迎打赏