thinkphp3.2集成微信跟支付宝app支付

做php有一年多左右了,两家公司都是关于app的(网站还真没做过),关于支付上有点自己的小见解,第一家公司是做混合app开发的,关于支付都集成好了,只需要写js来调用支付,编写回调跟同步代码就完成了,当然首先必须在两家平台上获取并填写正确的参数,而且还要审核通过哦,这里分享一下,大神来指正分享也好。

支付宝支付

1)首先去申请支付宝账号开通app支付并通过审核哦,开发流程都有的,一步一步来不会出问题的。提交基本信息后开始填写审核资料


thinkphp3.2集成微信跟支付宝app支付_第1张图片
审核信息

选择app支付,填写自己项目中对应的回调地址(用于处理支付宝返回的参数),配置应用公钥(用于验签,生成方法看下面生成RSA密钥)。支付宝支付在17年修改过sdk了,所以选择最新的加签方式,而且目前网站上有最新的sdk,旧的跟新的不可以混用的。

生成RSA密钥

点击看支付宝生成工具地址,打开之后选择对应系统的文件然后按着步骤来就可以生成应用公私钥了,然后回到上面图片中,把公钥填到加签方式中就会自动生成支付宝公钥了,记得保存下来,开发中会用到。

查看appid


thinkphp3.2集成微信跟支付宝app支付_第2张图片
查看对应应用的appid,开发中会用到

查看pid


thinkphp3.2集成微信跟支付宝app支付_第3张图片
查看对应应用的pid,开发中会用到

以上准备工作差不多了,开始代码的开发,是不是很兴奋啊。。。。。。

代码准备

下载sdk


thinkphp3.2集成微信跟支付宝app支付_第4张图片
选择sdk

而且php要5.5以上,同时打开openssl,否则在请求参数时没有sign。

下载解压之后,把所有文件全部到tp框架中Vendor内的Alipay(自行创建)文件夹内。

请求参数代码


thinkphp3.2集成微信跟支付宝app支付_第5张图片
请求参数

因为是跟原生app交互,所以获取数据方式为             $str = json_decode(file_get_contents('php://input'),true);     这样就可以按着数组的方式来获取前端传递来的值,产生唯一的商户订单号,插入到数据库内,然后调用支付宝sdk来拼接字符串返回给前端,让安卓跟ios端跟支付宝通信调起支付。

回调地址


thinkphp3.2集成微信跟支付宝app支付_第6张图片
回调函数

支付宝会以post的形式返还参数给回调地址,详情点击请看支付宝,根据唯一商户订单号来查找修改订单(感觉不太好,应该在请求参数时用session来保存个用户id,但是原生安卓用的okhttp框架不支持session,所以只好只用唯一商户订单号。当然也可以在请求参数里面业务参数里添加上用户id),判断该订单是否支付过了,修改订单属性,填写自己的业务逻辑,返回给支付宝对应的succes或fail。

同步通知

异步通知结束后,支付宝会同步通知给前端,由于支付逻辑在异步通知时已经处理好了,所以同步通知只作为了通知成功失败。

需要把数据从前端传到服务端


thinkphp3.2集成微信跟支付宝app支付_第7张图片
同步通知

最简单的通知就是看resultStatus是否等于9000,如果是就返回成功,否则失败。复杂点的就是判断


thinkphp3.2集成微信跟支付宝app支付_第8张图片
通知验证

如果1,2,3,4有一个不符合就是失败。

以上就是全部的支付宝流程接入和代码编写,可能有所疏漏,而且支付宝文档不算太难,耐心的多看几遍就会明白了。

微信支付

以前笔者在做app微信支付时候都是引入了sdk,但是最近看微信app支付文档是没有sdk的,只有公众号支付才会引入,too young too simple。由于笔者写这个时候还没开始做微信支付,所以先书写逻辑。

请求参数


thinkphp3.2集成微信跟支付宝app支付_第9张图片
下单接口

关于sign与nonce_str的生成,移步到这里查看。

回调地址


thinkphp3.2集成微信跟支付宝app支付_第10张图片
异步通知

接受到post传递的xml格式,转换成数组,然后经过简单的错误判断后进行业务逻辑处理,最后返回给微信相应的状态。这是简单的判断,推荐的是验签和判断是否已经支付了。


thinkphp3.2集成微信跟支付宝app支付_第11张图片
推荐验证

同步地址

微信的同步函数简单判断下就是查看该订单是否支付完成,返回相应的数据,跳转不同页面。

以上就是笔者对于thinkphp框架关于集成微信跟支付宝app支付的一些见解,不详之处可以来问我,或者要代码,哈哈

你可能感兴趣的:(thinkphp3.2集成微信跟支付宝app支付)