首先必须声明一点,相对于微信来说用户的unionid是唯一的,但是针对不同的appid来说,openid是不唯一的,openid的唯一型是指同一个appid下的用户的openid是唯一的,声明这点的原因是因为就博主做过的小程序支付、APP支付和jsapi支付来讲,APP支付时不需要使用openid的,所以如果在同一个项目中同时存在多种支付方式的时候最好使用同一个appid,否则就要在记录用户信息的时候加扩展的对应appid的openid记录,支付时对应appid选择相应的openid了;
一:统一下单的签名
微信实行的是双签名机制;1)预支付也就是统一下单的时候需要一次签名,2)预支付成功后再次签名并返给前端,前端拿签名调用微信的支付
1)后端预支付签名:
(所需参数及参数名为下划线方式,非小写非驼峰法!!!)
签名方式其实都一样的,先字典排序,后在排序后的参数后添加key,然后MD5加密,最后所有字符转为大写
之后就是将