国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

小程序通過(guò)小程序云實(shí)現微信支付功能實(shí)例

發(fā)布時(shí)間:2021-08-17 12:16 來(lái)源: 閱讀:0 作者:小康師兄 欄目: JavaScript 歡迎投稿:712375056

目錄

一、開(kāi)通微信支付

 1.1 關(guān)聯(lián)商戶(hù)號

\微信公眾號平臺\功能\微信支付\商戶(hù)號管理\關(guān)聯(lián)商戶(hù)號

1.2 添加商戶(hù)號

\云開(kāi)發(fā)平臺\設置\其他設置\微信支付配置\添加商戶(hù)號

1.3 管理員授權

1.2那張圖上,點(diǎn)擊授權。管理員的微信就會(huì )跳出提示,點(diǎn)擊確定授權即可。

否則使用的時(shí)候,會(huì )出現sub_mch_id與sub_appid不匹配的報錯!

二、云函數開(kāi)發(fā)

2.1 新建云函數

2.2 云函數代碼

\pay\index.js

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

exports.main = async (event, context) => {    
const res = await cloud.cloudPay.unifiedOrder({
    "body" : event.body,
    "outTradeNo" : event.outTradeNo,
    "spbillCreateIp" : "127.0.0.1",
    "subMchId" : "0000000000",               //這里要注意:雖然key是子商戶(hù)id,實(shí)際上就是普通商戶(hù)id
    "totalFee" : parseInt(event.totalFee),   //第二個(gè)坑:注意必須是數字,如果不是數字,則會(huì )報錯unifiedOrder:fail wx api error: -202
    "envId": "ooo-xxxxxxxxxxxxxxxx",                //這里是回調函數所屬的的云環(huán)境id
    "functionName": "payCallBack",        //這個(gè)是回調函數名
    "nonceStr":event.nonceStr,            //第三個(gè)坑:官方文檔中相關(guān)云函數代碼沒(méi)有nonceStr和tradeType,測試的時(shí)候會(huì )報nonceStr不存在的錯,翻看文檔才發(fā)現這個(gè)是必填項,直接粘過(guò)來(lái)以后還需要加上這兩個(gè)參數
    "tradeType":"JSAPI"
  })
  return res
}

2.3 云函數上傳并部署


三、小程序調用

3.1 統一下單

  • 微信下單后獲得的數據,最好先保存到數據庫,留底
  • 再去調起微信支付界面
//調用云函數,微信統一下單
  cloudPay(){
    var _this = this
    this.setData({
      body: "賬單支付-xxxxx",
      outTradeNo: this.data.id+"-"+util.uuid(16),
      totalFee: this.data.totalCost*100 //支付單位:分
    })
    app.showLoading(true)
    wx.cloud.callFunction({
      name: "pay",
      data: {
        body: _this.data.body,
        outTradeNo: _this.data.outTradeNo,
        totalFee: _this.data.totalFee,
        nonceStr:util.uuid(32)//調用自己的uuid函數
      },
      success(res) {
        // errCode: 0
        // errMsg: "cloudPay.unifiedOrder:ok"
        // returnCode: "FAIL"
        // returnMsg: "total_fee is empty. "
        console.log("提交成功", res.result)
        if(res.result.returnCode!="SUCCESS"){
          app.showToast(res.result.returnMsg)
          return
        }
        _this.unifiedOrder(res.result)
        // _this.requestPayment(res.result)
      },
      fail(res) {
        console.log("提交失敗", res)
      }
    })
  },

3.2 調起微信支付界面

  //官方標準的支付方法,調起支付界面
  requestPayment(payData) {
    var _this = this;
    const payment = payData.payment//這里注意,上一個(gè)函數的result中直接整合了這里要用的參數,直接展開(kāi)即可使用
    wx.requestPayment({
      ...payment,   //...是展開(kāi)變量的語(yǔ)法 
      success(res) {
        console.log("支付成功", res)
        _this.paySuccess()
      },
      fail(res) {
        console.log("支付失敗", res)
      }
    })
  },

3.2 支付成功回調

  • 不太建議直接在requestPayment的success回調函數中,執行支付成功的操作
  • 最好在另外建一個(gè)云函數payCallBack
  • 這個(gè)云函數payCallBack,調用我們自建服務(wù)器的接口,執行支付成功的操作
  • 這邊涉及到如何在云函數中調用http接口,賣(mài)個(gè)關(guān)子,后續講

到此這篇關(guān)于小程序通過(guò)小程序云實(shí)現微信支付功能實(shí)例的文章就介紹到這了,更多相關(guān)小程序 微信支付內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

色婷婷久久久SWAG精品| 青青青国产精品免费观看| 亚洲AV高清在线观看一区二区三区| 欧美丰满熟妇性XXXX| 日韩精品一区二区亚洲AV| 夜夜嗨Av一区二区三区 |