对接微信支付全过程:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3
一般情况下看到下图大家基本上就知道如何对接了。
商户系统和微信支付系统主要交互:
1、小程序内调用登录接口,获取到用户的openid,api参见【小程序登录API】
2、商户server调用支付统一下单,api参见【统一下单API】
3、商户server调用再次签名,api参见【再次签名】
4、商户server接收支付通知,api参见【支付结果通知API】
5、商户server查询支付结果,api参见【查询订单API】
从图中我们可以看出,做小程序对如何获取openid比较了解,我们暂且不说。
唯一比较坑的地方是去凑商户订单的信息。
遇到的问题
1.商户号在哪里?
答:小程序后台->微信支付->已关联商户号
2.如何关联商户号?
答:先把小程序认证,然后去注册商户号(其中就需要一个已经认证的小程序),然后开通商户号。
3.签名之后一切都正确,用工具也验证通过了,为什么提交就返回说签名错误?
答:签名时需要加一个额外的参数key=XXXXXX,参见签名算法说明,要着重的看“第二步:拼接API密钥”,就知道了。
4.商户平台的密钥去哪里获取?
答:登录商户平台后台,依次选择"账户中心"->"账户设置"->"API安全"->"API密钥"和"APIv3密钥"
设置好的密钥就是KEY
5.具体的业务流程是怎么样的呢?
(1)将产品展示给用户;
(2)用户选择产品并提交到商户后台(就是你自己写的后台);
(3)后台根据用户提交的信息拼接出一个订单,发送到微信后台;
(4)微信后台回复信息;
(5)从微信后台回复的信息中取出prepay_id等信息拼成几个参数返回给小程序前端;
(6)前端的小程序收到之后拼接请求发送到微信后台,小程序调用wx.requestPayment接口。