在新的项目上集成支付宝,包了ALI40247
先说说我这边的解决原因(支付宝PHP文档的示例都是错的):
第一,biz_content里面不能包含 业务参数。之前是外层写了,biz_content里层也有。
第二,每一个value要进行urlencode。
以下整理互联网收集过来的解决方法:
1.没有APP支付权限导致
检查您使用的这个appid是否签约过APP支付这个接口的权限。如果没有签约看上面的《如何签约APP支付接口》
访问如下链接:
https://openhome.alipay.com/platform/selfSignContract.htm?appId=2016xxxxx
查询是否显示已签约然后进行访问,查看接口签约状态
2.有移动支付接口(接口名称:mobile.securitypay.pay)权限,没有app支付接口(接口名称:alipay.trade.app.pay)权限。
以为可以使用APP支付接口,这是两个接口如果有移动支付接口(接口名称:mobile.securitypay.pay)权限想使 用APP支付接口(接口名称:alipay.trade.app.pay),可以进行重新签约参考《接口签约方案》第三步 帖子地址:https://openclub.alipay.com/read.php?tid=276&fid=25
3.如果已经签约了APP支付接口,还是报这个错误 需要检查商户公钥上传的位置是否正确
- a.移动支付接口(接口名称:mobile.securitypay.pay)的上传合作伙伴密钥管理
- b.app支付接口(接口名称:alipay.trade.app.pay)的上传开放平台密钥管理
注意:使用的接口不同上传位置不同 这个接口应该使用开放平台密钥管理里面的密钥,检查您这个接口使用的appid下面的公钥(自己上传的商户公钥)和支付宝报公钥。因为没有上传商户公钥或者使用的商户公钥和商户私钥不匹配也会导致这个错误
4.请求支付编码问题和没有做url encode
编码:就是请求了utf-8 但是用了gbk的编码。
encode:app支付接口(接口名称:alipay.trade.app.pay)对请求字符串的所有一级value(biz_content作为一个value)进行encode。
5.管理中心》我的应用》状态》
(注意:)已上线才可以使用否则也会报这个错误
网友评论