微信支付V3版本接入

我正在参加「掘金·启航计划」

业务背景

业务提了一个新需求,需要做一个退费系统做用户退费管理,当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家账号上。

微信支付业务对于开发来说是一个很好的经验,毕竟是涉及到钱的核心业务,要做到高可用和稳定,决不允许重复扣费,或者扣费了没通知到上游发放权益等问题,不然会收到用户投诉。在做毕业设计的时候本来是想接入微信支付,但是那时候研究了一下感觉比较麻烦- -需要搞营业执照和资质啥的,就没搞了。来到这家公司接触了微信支付和支付宝支付后学到了很多。下面是业务流程图

1684222698410.png

正向的下单超时是没有重试的,支付回调必须有重试,如果没有通知到上游就会出现扣费了没有发货的问题。

微信支付V2、V3版本对比

之前微信支付是很老的项目,所以用的是V2版本,新的项目就是用V3版本。温馨提示:

新接入的商户推荐使用v3版本,V3相较于V2会更简单、一致且易用

v2已经暂停更新,目前还可以使用,具体下线时间请持续关注最新官网文档

1、V2版本参数格式是xml格式,不太好维护,V3版本已改成json格式。

2、V2版本的签名是拼在参数里面的,V3版本校验都放在配置类里面了,更加方便灵活

image.png

3、使用基于非对称密钥的SHA256-RSA的数字签名算法,不再使用MD5或HMAC-SHA256

V3版本接入

参考微信支付文档规范:pay.weixin.qq.com/wiki/doc/ap…

首先下载官方SDK,里面有源码和DEMO提供参考,详细可以看readme.md。如果想跑demo需要在idea运行项目,看配置文件是使用gradle构建,而不是maven,我一开始没选择gradle项目发现跑不起来- -然后跑quickStart需要配置四个参数:商户号、商户API私钥路径、商户证书序列号、商户APIV3密钥,这些参数需要运营在微信商户平台获取。

猜你喜欢

转载自juejin.im/post/7233678805251620923