微信小程序支付

微信小程序支付

基本流程分为以下几步:

  1. 商户接入文档资料
  2. 商家注册商户号,得到商户**之类的东西
  3. 后台处理
  4. 前端调用
逻辑层面

后台处理:

  • 调用统一下单接口(API列表里的第一个接口),需要先获取到Openid用户标识,具体可参考该文档(微信小程序登录授权)》》https://blog.csdn.net/dwb123456123456/article/details/84251932
  • 五个字段参与签名,除了appid,其他四个参数是微信小程序前端支付接口wx.requestPayment需要用的
  • 商户配置页面和项目中的回调地址要一样,是支付完成后微信回调到自己后台的地址

前端处理:

代码如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9EFGax2h-1602136800294)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201007135312537.png)]

1.点击⽀付的时候,先触发 wx.login⽅法,拿到微信返回的code值

2.在wx.login的success回调⾥⾯请求(https://api.weixin.qq.com/sns/

jscode2session)这个链接通常后台进⾏请求,前端需要把wx.login获取到的code

值传给后台,后台通过请求这个链接,返回给前端openId, sessionKey, unionId

3.在第2个请求成功的函数⾥⾯,拿到openid之后,在次请求后台的⼀个账单流⽔接

⼝(这个接⼝后台会写,后台会⽤这个openid请求微信⽣成⼀条⽀付流⽔信息返回

给前端)

4.在请求账单流⽔接⼝成功⾥⾯,通过wx.requestPayment⽅法调起⽀付,

wx.requestPayment⽅法需要传的参数在第3步流⽔账单⾥⾯微信返回的数据⾥

整体流程:

1)用户进入微信小程序,通过微信小程序发送下单支付请求,到商户系统。(下订单)

过程拆解:商户系统可以理解为我们自己的商户服务器,存放我们服务器的代码,这个过程就是,用户发送一个请求到我们自己的服务器,

参数就是商品的一些信息。(下面代码的order_id就是获取订单信息)

2)服务器调用微信小程序登录API,服务器后台返回openid,商户服务器生成订单,调用统一下单API,返回预付单信息(prepay_id),将组合再次签名。(服务端操作)

过程拆解:服务器,调用微信登录的API,这时候从服务器拿到用户的openid,拿到openid之后,我们自己的服务器要组合生成一条订单,通过过程1发送过来的商品信息,组合生成一条订单(可以参看统一下单API所需的参数),然后调用统一下单API,这时候微信服务器就返回给了我们prepay_id,我们自己的服务器通过再次签名,可以拿到五个参数和sign

  1. 返回支付参数(5个参数和sign),微信小程序中发起下单请求到我们商户服务器,

这时候就可把相应的把小程序支付API需要的信息都返回给我们的微信小程序了。(这五个参数是必须的参数)

4)调用wx.requestPayment,按照规则传入我们需要的信息。

5)后面就是支付成功失败的回调和显示了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q2DKRVAO-1602136800296)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201007142330958.png)]

5)后面就是支付成功失败的回调和显示了。

[外链图片转存中…(img-q2DKRVAO-1602136800296)]

这五个参数是必须要记住的。