最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序支付功能完整流程記錄(前端)

 更新時(shí)間:2023年02月18日 10:36:43   作者:雨滴2000  
微信小程序的商戶系統(tǒng)一般是以接口的形式開發(fā)的,小程序通過調(diào)用與后端約定好的接口進(jìn)行參數(shù)的傳遞以及數(shù)據(jù)的接收,下面這篇文章主要給大家介紹了關(guān)于微信小程序支付功能(前端)的相關(guān)資料,需要的朋友可以參考下

微信小程序中,常見付款給商家的場景,下面列出企業(yè)小程序中,從0起步完整微信支付流程。

一,注冊微信支付商戶號(由上級或法人注冊)

接入微信支付 - 微信商戶平臺(tái)

此商戶號,需要由主管及更上級領(lǐng)導(dǎo)進(jìn)行注冊,會(huì)成為公司收款賬戶(不是由前端程序員注冊?。?!不是由前端程序員注冊?。?!不是由前端程序員注冊!?。。?/p>

注冊非常簡單,重點(diǎn)是需要提供企業(yè)資料,一般程序員沒有權(quán)限獲取這些材料,所以需要由上級注冊

企業(yè)注冊需要材料:營業(yè)執(zhí)照,對公銀行賬戶信息法人身份證

二,注冊小程序賬號(由上級或者領(lǐng)導(dǎo)注冊)

注冊流程簡單,企業(yè)一般注冊為企業(yè)小程序,非個(gè)人,需要上傳營業(yè)執(zhí)照等。

小程序

三,登錄商戶號綁定小程序

登錄之前注冊好的商戶賬號,將當(dāng)前小程序ID綁定至此商戶,表明此小程序可以調(diào)用此商戶支付相關(guān)接口。

微信支付 - 中國領(lǐng)先的第三方支付平臺(tái) | 微信支付提供安全快捷的支付方式

四,后端工程師書寫接口

返回核心數(shù)據(jù)如下:

"appId":?"xxxx",
????????"nonceStr":?"xxxx",
????????"packageValue":?"prepay_id=xxxxx",
????????"paySign":?"xxxxxx",
????????"signType":?"MD5",
????????"timeStamp":?"xxxxxx"

這個(gè)接口是你們公司后端程序員自己寫的接口,由后端工程師書寫,JAVA,PHP,C++,NODE,.NET等...不是前端寫!不是前端寫!不是前端寫!如果沒有此接口就與后端工程師溝通,讓他書寫。

五,前端工程師調(diào)用接口

1. 獲取openid(當(dāng)前用戶真實(shí)id)

openid為當(dāng)前用戶真實(shí)id,無法直接用任何接口獲得,需要先調(diào)用微信login接口登錄,獲取登錄憑證code,在通過此code(登錄憑證,5分鐘有效),向微信服務(wù)器換取用戶openid。

原生小程序登錄:

wx.login({
  success (res) {
    if (res.code) {
     // code: 用戶登錄憑證(有效期五分鐘)
     // 使用 code 可以換取 openid、unionid、session_key 等核心信息
    } else {
      console.log('登錄失??!' + res.errMsg)
    }
  }
})

uniapp登錄:

uni.login({
  provider: 'weixin',
  success (res) {
    if (res.code) {
     //code: 用戶登錄憑證(有效期五分鐘)
     //使用 code 可以換取 openid、unionid、session_key 等核心信息
    } else {
      console.log('登錄失敗!' + res.errMsg)
    }
  }
})

發(fā)送請求調(diào)用微信官方接口,用code憑證換取用戶openid(真實(shí)用戶id)

原生小程序:wx.request     uniapp: uni.request, 流程無差別

uni.request({
  url: `https://api.weixin.qq.com/sns/jscode2session`, //微信官方接口
  data: {
    appid: '小程序appId',
    secret: '小程序密鑰,在小程序appId下一行,放一塊在',
    js_code: '剛才獲取的code', 
    grant_type: 'authorization_code' //固定值
  },
  success: (res) => {
    //獲取openid:用戶真實(shí)唯一id
    console.log(res.data.openid);
  }
})

2. 調(diào)用公司后端接口,獲取支付核心數(shù)據(jù)

// 調(diào)用后端接口
uni.request({
  url: '你們公司的后端接口地址,獲取支付核心數(shù)據(jù)',
  method: 'POST',
  data: { 接口需要什么參數(shù)就傳給接口,包含扣款金額,訂單id等 },
  success(obj) {
    console.log(obj)
  }
})

此接口必須返回以下6個(gè)核心數(shù)據(jù),都是由后臺(tái)計(jì)算生成。

"appId":?"xxxx",
????????"nonceStr":?"xxxx",
????????"packageValue":?"prepay_id=xxxxx",
????????"paySign":?"xxxxxx",
????????"signType":?"MD5",
????????"timeStamp":?"xxxxxx"

3. 調(diào)用微信官方支付接口,彈出支付界面

uni.request({
  url: '你們公司的后端接口地址,獲取支付核心數(shù)據(jù)',
  method: 'POST',
  data: { 接口需要什么參數(shù)就傳給接口,包含扣款金額,訂單id等 },
  success(obj) {
 
    //調(diào)用微信官方支付接口彈出付款界面,輸入密碼扣款
    wx.requestPayment({
      timeStamp: obj.xxxx.timeStamp,  //后端返回的時(shí)間戳
      nonceStr:  obj.xxxx.nonceStr,   //后端返回的隨機(jī)字符串
      package:  obj.xxxx.packageValue, //后端返回的prepay_id
      signType: 'MD5', //后端簽名算法,根據(jù)后端來,后端MD5這里即為MD5
      paySign:  obj.xxxx.paySign,  //后端返回的簽名
      success (res) {
        console.log('用戶支付扣款成功', res)
      },
      fail (res) { 
        console.log('用戶支付扣款失敗', res)
      }
     })
 
  }
})

調(diào)用后,彈出付款界面,模擬器需要掃碼支付。

點(diǎn)擊真機(jī)調(diào)試會(huì)直接彈出微信付款界面。

六,總結(jié)

  • 前端調(diào)用uni.login/wx.login調(diào)用微信接口,獲取code,code相當(dāng)于臨時(shí)身份證
  • 前端調(diào)公司后臺(tái)獲取openid的接口,獲取openid
  • 前端調(diào)公司后臺(tái)預(yù)支付接口,傳遞openid、商品id、商品單價(jià)、商品數(shù)量,獲取那5個(gè)參數(shù)?!緯r(shí)間戳timeStamp,隨機(jī)字符串nonceStr,預(yù)支付id package,簽名算法signType,簽名paySign】
  • 前端調(diào)用uni/wx.requestPayment調(diào)用微信支付方法,傳遞5個(gè)參數(shù),獲取支付結(jié)果(成功或失敗)

到此這篇關(guān)于微信小程序支付功能完整流程的文章就介紹到這了,更多相關(guān)微信小程序支付流程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

石阡县| 高雄市| 胶州市| 汤阴县| 明光市| 呈贡县| 德保县| 涟源市| 报价| 米脂县| 乌拉特后旗| 凤凰县| 仙游县| 山西省| 留坝县| 拜城县| 横山县| 寻乌县| 阿尔山市| 淮北市| 江源县| 宣城市| 云阳县| 巴马| 绥中县| 济宁市| 伊吾县| 长兴县| 锡林郭勒盟| 南华县| 临湘市| 阿拉尔市| 澎湖县| 临潭县| 区。| 襄樊市| 武强县| 昂仁县| 衡阳县| 曲阜市| 中西区|