uncategorized

安卓&小程序微信APP支付注意事项

之前对接了微信的扫码支付和 jsapi 支付,都是服务端直接将统一下单后微信服务端 sdk 返回的支付凭据传递给微信对应的方法。

但是在对接微信 APP 支付时遇到了几个坑,这里记录一下

1.APP 支付时服务端拿到统一下单的 prepayId 和 sign 后不能直接传递给 APP, 而是需要将

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2

中提到的 appid、partnerid(服务端叫 mch_id)、prepayid、package、noncestr、timestamp 使用微信提供的签名算法重新加签,并复制给 sign 参数,然后将这 7 个参数返回给安卓或 ios 客户端。最后的格式应该如下

1
2
3
4
5
6
7
8
9
{
"appid": "wxb6b10ba45d170245",
"partnerid": "1458722002",
"prepayid": "wx2017042116330232b49c32660107158966",
"package": "Sign=WXPay",
"noncestr": "gTWwChxKNJiNyWvf",
"timestamp": "1492763582",
"sign": "BDBC0A06EBB01C46747D04DAA459C439"
}

2. 服务端在将步骤 1 中的 6 个参数加签的过程中,记得将 timestamp 转换为 string 类型后再签名,否则 android 平台会报 - 1 的错误。

未完待续…😊

Share