ali64这个错误涉及到的可能性比较多所以整理一个帖子分享给大家,大家可以根据我的这个方案进行排查。
1.首先检查密钥是否匹配(密钥不匹配导致的问题可能性最大)
商户原始私钥(rsa_private_key)配置到项目中,适用于php,C#等
商户pkcs8私钥(rsa_private_key_pkcs8)配置到项目中,适用于java,安卓,iso等
商户公钥(rsa_public_key)这个需要上传支付宝开放平台
2.如果确认第一步密钥没有问题,需要检查商户公钥上传的位置是否正确
a.移动支付接口(接口名称:mobile.securitypay.pay)的上传合作伙伴密钥管理
b.app支付接口(接口名称:alipay.trade.app.pay)的上传开放平台密钥管理
注意您使用的接口接口不同上传位置不同
3.如果第二步也没有问题,这里建议直接测试官方提供的demo配置好自己的appid ,pid,私钥等,进行请求支付测试。
app支付接口(接口名称:alipay.trade.app.pay)demo下载地址:[url]https://docs.open.alipay.com/54/104509[/url]
如果demo也是报错ali64,需要重新检查第一步和第二步,这个一定是密钥问题。
如果demo可以正常请求,但是自己的项目会报错看第四步检查方案。
4.输出官方demo的请求参数和自己项目的请求参数进行对比,看自己的项目中的请求参数是否有中文乱码,空格,或者非法字符(非法字符指的是键盘上的符号)进行排查
5.检查是否对请求参数进urlencode
a.移动支付接口(接口名称:mobile.securitypay.pay)对sign签名做urlencode
b.app支付接口(接口名称:alipay.trade.app.pay)对请求字符串的所有一级value(biz_content作为一个value)进行encode。
如果上面步骤排查还是无法解决,欢迎在帖子下方追问