解决方案链接:https://openclub.alipay.com/read.php?tid=250&fid=2
一.如何签约APP支付接口
第一步:进入管理中心:https://openhome.alipay.com/platform/appManage.htm
第二步:选择或者创建一个应用,再选择功能信息-》申请功能-》勾选APP支付-》确定添加。
第三步:点击上方查看如何使用进入到签约管理。
点击立即签约,签约完成即可获得接口权限,就可以联调了
二.最近很多接入支付宝APP支付报错ALI40247,下面写一下处理方法
最新同步一种处理方案(ALI40247):已经签约生效APP支付的商户,需要在功能信息里面删除APP支付,在重新添加一次(要求是已经签约过APP支付的商户操作才有效)
1.没有APP支付权限导致
检查您使用的这个appid是否签约过APP支付这个接口的权限。如果没有签约看上面的《如何签约APP支付接口》
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.管理中心》我的应用》状态》(注意:)已上线才可以使用否则也会报这个错误(如下图)
点击查看原图
6.检查应用是否已经上线(如下图)
点击查看原图
在这个链接的appid上输入开发者的APPID :https://openhome.alipay.com/platform/selfSignContract.htm?appId=2016xxxxx 查询是否显示已签约(如下图)
点击查看原图
然后进行访问,查看接口签约状态(如下图)
点击查看原图
7.如果上面的方式无法处理建议咨询支付宝的在线技术支持
https://cschannel.alipay.com/newPortal.htm?scene=mt_zczx&token=&pointId=&enterurl=https%3A%2F%2Fsupport.open.alipay.com%2Falipay%2Fsupport%2Findex.htm