微信支付签名不正确

微信支付无论是公众号小程序还是APP,流程都是一样的,都是先调用统一下单接口生成预订单号(下单过程的参数需要签名),然后使用预订单号加上规定的参数再次签名后调用支付。
这里我说一下APP支付时的一个坑:
APP 支付参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。其中package为固定值:Sign=WXPay
这些参数都是由服务端调用微信接口,并签名后返回给客户端的,所以客户端还有一个sign参数,值为前面的参数按照签名规则生成的结果,客户端使用这些参数调用微信SDK进行支付。
如果你遇到「你的签名和使用微信官方签名工具生成的签名一样」,但还是报错的情况,那么你得注意了,可能是你的参数有问题。坑出现了:
客户端的SDK里面timeStamp的S是大写,但是在服务端参与签名的timestamp的S是小写。

所以,你得注意参数的大小写,同时你也得注意参数是否有下划线,在服务端统一下单接口返回的订单号就是prepay_id,有下划线。
并且还要注意的一个问题是:微信小程序支付里面参与签名的timeStampS是大写的。

你可能感兴趣的:(微信支付签名不正确)