微信小程序支付及退款整体流程 您所在的位置:网站首页 怎么查询小程序appid 微信小程序支付及退款整体流程

微信小程序支付及退款整体流程

2023-05-09 20:23| 来源: 网络整理| 查看: 265

微信⼩程序⽀付及退款整体流程

  最近做了微信⽀付及退款⼀系列操作,微信⽂档写的也⽐较简略,⽹上博客也并不详细,也踩了⼀些坑,在这⾥记录下。当然主要还是得根据微

信⼩程序⽂档⼀步⼀步来。

⼀、

wx.requestPayment

  发起微信⽀付。了解更多信息,请查看

  所谓的发起微信⽀付,指的是⽤户侧这边唤起微信⽀付窗⼝的

api

,这个

api

需要按规范传参数

wx.requestPayment({

  timeStamp: 

''

,

  nonceStr: 

''

,

  package: 

''

,

  signType: 

'MD5'

,

  paySign: 

''

,

  success (res) { },

  fail (res) { }

})

  这些参数均需要从后台获取。那么我们进⼊

微信⽀付接⼝⽂档

查看是怎么个流程

⼆、微信⽀付具体流程

  ⽂档也写的很清楚,不细说,主要看下⾯这个流程

商户系统和微信⽀付系统主要交互:

1

、⼩程序内调⽤登录接⼝,获取到⽤户的

openid,api

参见公共

api

【】

2

、商户

server

调⽤⽀付统⼀下单,

api

参见公共

api

【】

3

、商户

server

调⽤再次签名,

api

参见公共

api

【】

4

、商户

server

接收⽀付通知,

api

参见公共

api

【】

5

、商户

server

查询⽀付结果,

api

参见公共

api

【】

1

、调⽤

wx.login

获取

code

,然后通过

code

,调取微信三⽅接⼝,获取

openid

。如果⽤户系统有

openid

记录,可以省略这步操作。

  主要是因为下⾯的统⼀下单

api

⾥的参数配置:

  

openid

参数:

trade_type=JSAPI

,此参数必传,⽤户在商户

appid

下的唯⼀标识。

openid

如何获取,可参考【】。

2

、统⼀下单

api

、⼆次签名

api

返回参数

  看⽂档⾥的参数,传那些参数,调⽤微信三⽅接⼝即可。⼀般不会有啥问题,主要问题也会在于

2

次签名。

  实例代码如下

// 

统⼀下单

let unifiedorder = 

async

 (

params

 = {}, ctx) => {

  let body = 

'......'

 

// 

商品描述

  let notify_url = 

'https://....../wxPayBack'

 

// 

⽀付成功的回调地址

  

可访问

 

不带参数

  let nonce_str = wxConfig.getNonceStr() 

// 

随机数

  let out_trade_no = 

params

.orderCode 

// 

商户订单号(⽤户系统⾃定义的商户订单号)

  let total_fee = ctx.request.body.orderPay * 

100

 

// 

订单价格

 

单位是

 

  let bodyData = 

''

  bodyData += `${wxConfig.AppID}`  

// 

⼩程序

ID

  bodyData += `${wxConfig.Mch_id}` 

// 

商户号

  bodyData += `${body}` 

// 

商品描述

  bodyData += `${nonce_str}` 

// 

随机字符串

  bodyData += `${notify_url}` 

// 

⽀付成功的回调地址

  bodyData += `${

params

.openid}` 

// 

⽤户标识(

openid

JSAPI

⽅式⽀付时必需传该参数)

  bodyData += `${out_trade_no}` 

// 

商户订单号

  bodyData += `${

params

.ip}` 

// 

终端

IP

  bodyData += `${total_fee}` 

// 

总⾦额

 

单位为分

  bodyData += 

'JSAPI'

 

// 

交易类型

 

⼩程序取值:

JSAPI

  // 

签名(根据上⾯这些参数,有个签名算法,⽂档⾥也有描述)

  

var

 sign = wxConfig.paysignjsapi(

      wxConfig.AppID,

      body,

      wxConfig.Mch_id,

      nonce_str,

      notify_url,



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有