ThinkPHP集成支付宝demo

文章目前仍在编辑中,请等待完善…谢谢

针对近期咨询本人关于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

若该文章对您有一定帮助,欢迎打赏

 

Tagged , , ,