最近工作中,开发的App版本需要加入微信支付、支付宝支付、QQ钱包支付功能。一般情况下,我们支付功能都是封装好的支付模块,支付方面一般不会有重大的更新。但是我却遇到了:
微信支付一直调不起微信客户端,SDK一直返回
-1
。
微信支付返回-1的情况
结合我之前的开发经验,个人觉得可能有以下几种情况:
- 微信客户端校验了应用的签名,签名不一致的情况会返回
-1
; - 手机端微信做了
分身
或者双开
处理; - 我们开发使用的签名和平台的应用签名不一致,工程师和产品经理之间没有同步;
- 我们开发使用的包名和平台中记录的包名不一致;
- 产品经理在微信支付开放平台登记的签名MD5值,没有去掉冒号和小写。
最后问题的发现,是由于原因5导致的。主要出问题的微信手机客户端版本是8.0,我猜测是之前没有校验,因为我们之前使用微信7.0手机客户端支付成功并没有返回-1
的情况。
这是日常Android开发中遇到的一个小小的bug,希望对同样是Android开发的小伙伴有帮助。