安卓微信支付注意事项
2017-07-12 本文已影响86人
DeanWang
一般而言,对接第三方平台有很多坑;主要的原因是文档缺失,描述不详细,导致在很多的细节上出现理解误差,从而对接不成功,白白浪费诸多的时间;
微信APP支付的对接算整体而言流程比较简单,一般的逻辑是服务器生成预支付信息,将相关的信息传给客户端,客户端直接用该信息调用sdk接口,唤起微信APP,完成支付后,服务器和客户端分别通知客户支付结果;
但是有几个需要注意的地方:
1 签名和包名,所以支付是没法调试的(或者将正式的签名证书直接给IDE使用),只能用正式签名证书进行打包才能看到正确地唤起微信APP;
2 sign, 由于微信需要验证相关的参数,因此需要将业务参数拼接后签名,以防止伪造支付请求;这块请仔细阅读微信官方的文档:
调起支付接口
;用于签名的所有字段都必须是小写;
这个地方很容易出错,主要是因为安卓官方的SDK里面PayReq的字段是下面的命名:
appId
partnerId
prepayId
packageValue
nonceStr
timeStamp
但是sign生成的时候必须用下面的字段:
appid
partnerid
prepayid
package
noncestr
timestamp
生成正确的签名后返回给客户端(就这问题,耽误了两个小时排查,什么原因都找不到,客户端就是返回-1);仔细看文档啊