评论

微信支付v3python版本对接成功后的总结

微信支付V3版本对接口的总结

前期在对接v2版本的时候遇到不少坑,接口规则,协议什么的都没有阅读就开始对着接口写程序,过程中遇到了不少坑才返回来通读,

建议开发者不管是对接哪个版本都要熟读文档要求与介绍,下面是我对v3版本的总结:

接口方法就不用说了,重要提示:文档字段一定要复制。

v3版本与v2不同的地方是需要验签,

私钥用于解密与签名,公钥用于加密和验签(复习下知识点)

v3私钥和商户证书号在商户平台设置与查看并记住,最好存在数据库中,方便以后在前端更改,以后私钥忘记、证书重新申请修改程序。

验签这一步必须的,将要求的数据放在header中传给接口,请求后避免数据被劫持篡改,对微信应答的数据进行验签。

主要的坑在验签过程中,在已经有微信平台证书的情况下,出现验签失败,要么解密方法错误,要么验签字符串错误。

我是能调起支付界面,就是应答验签怎么也不通过,原因就是验签字符串出错,获取response body的方法出错,导致里面有空格,搞了我一天,最后取出空字符串后验证成功。

如果出现支付验证失败,那就是前端的signTye肯定不是RSA,v2版本的时候前端将这个参数写死成‘MD5’了

微信建议商户对微信应答进行验签,但是有一个地方不用,那就是申请退款接口,即便是错误导致验签未成功,钱已经退了,没有必要对应答再验签,但是回调里面是必须进行验签的。

应答验签过程中建议加入证书号比较,一旦平台证书过期,在此处调用证书获取接口重新获取再对比应答中的证书号。

ps:待验签字符串中的报文放在外面json序列化后再传入,避免重复序列化,随机字符串和时间戳,待签和加签一定要统一。

完毕!

如有疑问,可以留言

最后一次编辑于  2021-04-26  
点赞 1
收藏
评论

3 个评论

登录 后发表内容