支付宝个人收款如何接入自己的网站应用? - ghostsf

in 旧文字 with 0 comment

上文ghostsf已给大家介绍了支付宝个人收款的申请开通方案:支付宝个人收款申请开通的方案
那么开通了支付宝个人收款,如何接入到自己的网站或者app应用里呢?
这边ghostsf给大家介绍下:
首先要进到蚂蚁金服开发平台openhome.alipay.com(当然关于支付宝和蚂蚁金服,还有支付宝开放平台以及蚂蚁金服开发平台等的区别和关系,这里就不赘述了)。如果之前已经申请到了个人收款。那么你就可以到这里来创建应用了。
创建应用之前,你需要先拿到Appid和RSA公钥,那么去哪里拿呢?要去蚂蚁金服商户平台去拿,商户平台的域名是b.alipay.com。

请输入图片描述

这里可以直接拿到。而且这边也提供了一个给你创建应用和编辑应用的入口。就是旁边的“编辑回调地址和LOGO”。点进去就会跳转到openhome.alipay.com的创建应用页面了。
请输入图片描述

这里将接口加签方式里面的方式设置一下即可,如果需要支付回调的话可以设置一下应用网关,回调信息会返回到应用网关里。这里需要说明的是,蚂蚁金服开放平台已于2016/12/30发布公告说明新增了RSA2签名方式,而且推荐使用之。所以这里ghostsf也是推荐使用RSA2签名方式。
另外,相关公钥的生成可以只用支付宝提供的RSA密钥工具,可以很方便地帮你获得应用公钥进而也可以获得支付宝公钥。
OK,到这里应用的相关设置已经完成了。
接下来就是程序的接入了。个人收款用到的是当面付的相关接口,所以我们可以使用支付宝的当面付SDK。
这里以php的当面付SDK为例:
请输入图片描述

在当面付的SDK里面已经集成了支付宝的支付相关的接口代码都在aop目录里。然后当面付相关参数所需,都在./config/config.php的配置文件里面,需要设置的主要是支付宝公钥(之前设置应用时已经设置了),商户私钥(这个在秘钥生成工具里已经给出了),以及应用的appid,异步通知的接口也即应用设置里的应用网关,用来接收异步通知(比如用户付款成功了的通知)。
这里有几个坑需要注意下。主要是异步通知验签的处理,多半也是因为新推出的RSA2的问题,SDK相关的代码也没有及时更新(ghostsf已提交了两个相关bug了)。
请输入图片描述

这里的rsaCheckV2的方法就是用来做RSA2方式的验证的。但是该方法默认传的是RSA的signType,这是个小问题,再一个是方法里面只去除了params的sign参数并没有排除掉sign_type参数(事实证明RSA2方式也是需要排除掉sign_type参数的)。
这里也给大家明确一下验签的正确过程(这在支付宝的开发文档里也可以看到):
第一步: 在通知返回参数列表中,除去sign、sign_type两个参数外,凡是通知返回回来的参数皆是待验签的参数。
第二步: 将剩下参数进行url_decode, 然后进行字典排序,组成字符串,得到待签名字符串。
第三步: 将签名参数(sign)使用base64解码为字节码串。
第四步: 使用RSA的验签方法,通过签名字符串、签名参数(经过base64解码)及支付宝公钥验证签名。
第五步:需要严格按照如下描述校验通知数据的正确性。
所以这里需要说明的是RSA和RSA2的验签方式所需的条件是一样的,只是最后的验签方法不一样。
支付宝个人收款开通了如何接入自己的网站应用呢?

如以上代码所示。
OK,综上,在借用相关SDK可以帮助你很方便地对接网站,实现支付宝的个人收款。

Responses