==========支付宝-系统繁忙,请稍后再试。错误码ALI40247===========
由于支付宝api和sdk升级了,升级成了App支付。在接入新的sdk时,提交订单时出现了ALI40247。支付宝里面的信息已都配置好,应用也创建了,加密方式用的RSA2。最终问题解决了。总结该问题原因有以下几个:
1、之前配的密钥配错了。用支付宝提供的工具重新生成匹配了下。
2、不能传token参数,设置NotifyUrl 回调地址里不能带token。
3、支付宝升级了,以前的加密参数有变化,服务端需重新修改。
以下文档比较有用:
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.6DRZye&treeId=204&articleId=105465&docType=1
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.NdStKw&treeId=291&articleId=106096&docType=1
相关ios\android Demo(注:可以先下载ios demo,配置好自己应用信息,本地跑起来,看是否能支付,如果能说明你的密钥和相关信息没问题):
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.TZxaVI&treeId=54&articleId=104509&docType=1
java服务端最新例子文档:
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.CQyP0i&treeId=54&articleId=106370&docType=1
如果实在不行,可以问下支付宝在线技术:
======================================================================
支付宝退款时,能退款成功,但请求结果验签时异常:
com.alipay.api.AlipayApiException: sign check fail: check Sign and Data Fail!
原因是:回签的公钥与支付时的公钥不一样,弄错了。如图:
查看应用公钥,为支付时需要的公钥。查看支付宝公钥,为验签时需要的公钥。两个不一样,后者是根据前者自动生成的