前言
本文以在微信小程序中对接支付为例,并使用官方提供的APIv3版的Go SDK完成商户后端对接。
开发文档
https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay-1.shtml
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1
https://pay.weixin.qq.com/wiki/doc/api/index.html
官方提供了Java、PHP、Go语言的SDK供开发者对接,这点非常友好。
Go SDK仓库:https://github.com/wechatpay-apiv3/wechatpay-go
更多SDK参考:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay6_0.shtml
对接流程
1、开通小程序开发者账号;
2、申请微信支付商户账号,需要准备的资料有:营业执照、银行对公账号、打款验证,等待人工审核通过;
3、登录微信支付后台,在横向导航栏中找到【产品中心】,将小程序与微信支付账号进行绑定;
4、开通支付产品,需要准备的资料有:域名备案号、授权书。如果是以前端对接支付为主,需要申请开通JSAPI支付,如果是APP开发,需要申请开通APP支付,如果是H5开发,需要申请开通H5支付;
5、建议将开发者加入管理人员名单中,在【账户中心】> 【员工管理】中添加;
6、在导航栏中找到【账户中心】>【API安全】,申请API证书、设置APIv3密钥(还有本地私钥),需要管理员权限操作;
7、下载SDK,开始集成,建议从下载证书的API开始测试,以证明签名没有问题。
支付流程
简单地来说,分这么6步:
1、前端向后端发起支付请求;
2、后端创建商户订单;
3、对商户订单、商品名称、价格等参数进行签名,向微信服务端创建订单,返回支付链接;
4、前端拿到这个支付链接,进行跳转并支付;
5、支付成功后,微信会将支付结果每隔15秒通知一次后端(POST请求),直到后端返回http状态码200,如果后端返回40X或50X错误,微信在24小时内都会继续保持通知;
6、解密(对称)微信通知正文内容,更新后端的订单状态,处理其他业务逻辑。
更多参考官方文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3

遇到的坑
1、上线后发现H5支付未开通

解决办法:

网友评论