iOS支付宝报错 rsa_private read error : private key is NULL
发表于:2024-11-28 作者:热门IT资讯网编辑
编辑最后更新 2024年11月28日,该错误的引起因素有好几点:1、传递的参数有空值。在支付宝的支付请求url中,某个参数是空值。这样空值在经过md5签名以后,比对会报错,所以请注意您传递过来的url中无空值。建议检查您购物车的支付宝代码
该错误的引起因素有好几点:
1、传递的参数有空值。在支付宝的支付请求url中,某个参数是空值。这样空值在经过md5签名以后,比对会报错,所以请注意您传递过来的url中无空值。建议检查您购物车的支付宝代码,例如:subject="shop"而非subject= ""
2、程序中安全校验码填写错误(请务必保存好该码,泄漏出去有可能被人伪造消息)。在您拿到不同测试中都有一个key的参数,该参数代表支付宝的安全校验码。从账户内复制过来的时候,会多余空格,请消息检查。例如某一个用户的key是kXXXXXXXXXXXXXXXXXXXXXXXXXXXati,复制到程序中key=" kXXXXXXXXXXXXXXXXXXXXXXXXXXXati "多了空格的。
3、中文编码的问题。不同网站采用不同的中文编码。有utf-8.gbk,iso-8859-1等,而程序中md5对中文签名会不一样,造成显示该错误。现asp的程序没有直接utf-8编码的md5。Php和jsp。Net程序都是支持该编码的,您可以通过支付接口的 _input_charset = "utf-8" 参数设置制定的字符集,并且我们返回通知也会使用该字符集,解决乱码的问题。
4私钥没有转换为pkcs8格式
解决方法:
将私钥转成PKCS8替换一下原私钥即可