为坑了我一星期的ALI64错误,纪念一篇
正在开发的APP,用到支付宝付款,因为考虑到android和ios都需要调用,为了数据统一,就服务接口生成支付宝需要的参数。
按照支付宝的文档一步步来,结果死活不行,各种错误,“系统异常”,4000错误,ALI64错误。一次次反思自己哪里错了,重新生成密钥提交。
后来让APP开发自己生成参数签名,居然就顺利通过,说明密钥是没问题的。
拿着APP生成的参数签名,和自己JAVA服务端生成的比较,发现APP开发人员根本没把参数排序,而支付宝文档要求是把参数排序,再生成签名。以为是支付宝的坑,我就按APP他们的顺序拼接参数,生成签名,和APP自己生成的签名比对,也是对的,可是支付宝还是报错ALI64。
仔细看看APP的处理,发现他们参数拼接时每个参数值都用双引号包起来,服务端没加,好吧,我把双引号加上,还是报错。
折磨了几天,再看看对比,又发现一个不同,服务端生成的签名字符串最后是等号,而APP是%3D。难道是url编码的问题?再改服务端代码,把生成的签名用URLEncoder.encode编码,终于能支付了。
相关推荐
liuxudong00 2020-11-19
wwzaqw 2020-11-11
lihaoxiang 2020-11-05
CrossingX 2020-11-04
xuegangic 2020-10-17
86417413 2020-11-25
83206733 2020-11-19
86276537 2020-11-19
83266337 2020-11-19
86256434 2020-11-17
zhouboxiao 2020-11-16
rise 2020-11-22
sssdssxss 2020-11-20
windle 2020-11-10
孙雪峰 2020-10-30
85477104 2020-11-17
xfcyhades 2020-11-20
cheidou 2020-11-19