vue+微信公眾號+jssdk調用微信支付


1、首先要依賴微信js-sdk

    npm install weixin-js-sdk --save

2、封裝代碼

import wx from "weixin-js-sdk";

export function wexinPay(data) {
  return new Promise((resolve, reject) => {
    //后台傳入數據
    let {
      appId,
      timestamp,
      nonceStr,
      signature,
      packages,
      paySign,
      signType
    } = data
//驗證微信環境
    wx.config({
      debug: false, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
      appId: appId, // 必填,公眾號的唯一標識
      timestamp: timestamp, // 必填,生成簽名的時間戳
      nonceStr: nonceStr, // 必填,生成簽名的隨機串
      signature: signature, // 必填,簽名,見附錄1
      jsApiList: ['chooseWXPay'] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
    });
    wx.ready(function() {
      wx.chooseWXPay({
        timestamp: timestamp, // 支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后台生成簽名使用的timeStamp字段名需大寫其中的S字符
        nonceStr: nonceStr, // 支付簽名隨機串,不長於 32 位
        package: packages, // 統一支付接口返回的prepay_id參數值,提交格式如:prepay_id=***)
        signType: signType, // 簽名方式,默認為'SHA1',使用新版支付需傳入'MD5'
        paySign: paySign, // 支付簽名
        success: function(res) {
          // 支付成功后的回調函數
          resolve(res)
        },
        fail: function(res) {
          //失敗回調函數
          reject({
            payFail: res
          })
        }
      });
    });
    wx.error(function(res) {
      reject({
        configFail: res
      })
      // config信息驗證失敗會執行error函數
    });
  })

}

3、調用支付

//引入
import { wexinPay } from "@/plugins/wechatPay"
//根據訂單信息從后台獲取微信配置參數(和后台商定數據格式,作相應的處理)
payOrder(data).then(res=>{
  //調用封裝的支付函數
  wexinPay(res.data).then(res=>{
    console.log("支付成功")
  }).catch(err=>{
    console.log("支付失敗")
  })
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM