关于微信支付返回-1的浅谈

        最近在开发一个项目,涉及到需要支持微信支付,在IOS调试通过的情况下,我做的安卓总是返回-1,着实让我着急了一把,后面终于解决了。由于是第一次做微信支付开发,所以在开发中遇到的一些问题,罗列出来以备后用,及分享给大家。如果任何问题请及时提出。

       在这里我就不写那些怎么调接口怎么调起微信支付了,因为网上很多这些。我就说说我初次用微信支付时的坑吧!

1、在接受返回结果的时候,我原以为只要任何一个Activity实现了IWXAPIEventHandler就行,结果没任何反应,后面还是老老实实的在我的项目包名下建了目录wxapi并建了WXPayEntryActivity,这时候终于能正常收到返回结果了。
2、有了返回结果,然后又蛋疼了,总是返回-1,支付页面总是调不起来,这时候就在网上疯狂的找答案,网上说很多可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。针对我自己的项目来说,因为同样的参数IOS可以成功,所以我把找问题的重点放在了和微信后台配置上面了。果然在排查问题的时候发现我在微信后台的应用签名有问题,当时在微信后台设置的时候,用的应用签名是debug,所以赶快更换我的签名:
(1).签名工具下载地址https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk 
(2).获取签名的MD5字符串(用于微信后台设置应用签名)填写您项目的包名)
(3).设置好后,然后去启动你的项目再掉微信支付,这个时候有可能还是不成功,你需要把微信的缓存清理一下,这个时候应该就可以成功了

(4)注意:由于你在微信后台设置的是正式打包的签名,所以在验证微信支付的时候需要用正式的签名包去验证。


最后附上官方设置说明:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

你可能感兴趣的:(工作遇见的坑)