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

前端vue實現(xiàn)的h5頁面接入微信支付流程(jsapi方式)

 更新時間:2024年01月20日 08:54:46   作者:我人麻了啊  
vue實現(xiàn)微信支付有三種方式,第一種方式是PC端支付,第二種方式是H5支付,第三種方式是微信公眾號支付,這篇文章主要給大家介紹了關于前端vue實現(xiàn)的h5頁面接入微信支付流程,文中介紹的方法是利用jsapi方式,通過代碼將實現(xiàn)的方法介紹的非常詳細,需要的朋友可以參考下

參考鏈接

微信支付jsapi官方文檔

微信網(wǎng)頁授權

jsapi介紹

準備工作

  • 公眾號
  • 商戶號
  • 備案域名
  • 配置應用
    先參考支付指引接入準備基本步驟
    1、在商戶號關聯(lián)公眾號
    2、在商戶號配置支付授權目錄(支付目錄+回調目錄)
    3、在公眾號配置網(wǎng)頁授權域名

第一步微信授權獲取用戶openid

參考鏈接微信網(wǎng)頁授權進入頁面后從緩存中判斷是否已經拿到用戶openid,或者地址欄上是否攜帶code,沒有則調用下面代碼進行申請用戶授權

let protocol = window.location.protocol;
let host = window.location.host;
let local = protocol + '//' + host;
let appId = '';公眾號appid
window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${encodeURIComponent(local)}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect`

用戶同意授權后會在回調地址中攜帶code,下面提供獲取地址欄上code參數(shù)方法

function getUrlParams(name) {
      const queryString = window.location.search;
      const params = new URLSearchParams(queryString);
      const value = params.get(name);
      return value ? decodeURIComponent(value) : null;
    }

然后把code傳給后端,后端通過code獲取access_token,再通過access_token獲取用戶信息并返回給前臺
網(wǎng)頁授權對于前端來說只需要拉起用戶授權,并將code傳給后臺

只是測試網(wǎng)頁授權可以使用測試公眾號,需要先關注測試號并配置授權域名
測試公眾號

第二步調起微信支付

安裝依賴

npm install weixin-jsapi

在需要調起支付的頁面引用

import wx from “weixin-js-sdk”;

調起支付-需要的參數(shù)由后端返回,一般是下完單返回參數(shù)然后調起支付

wx.config({
	debug: false, // 這里一般在測試階段先用ture,等打包給后臺的時候就改回false, 
	appId: res.data.appId, // 必填,公眾號的唯一標識 
	timestamp: res.data.timeStamp, // 必填,生成簽名的時間戳     
	nonceStr: res.data.nonceStr, // 必填,生成簽名的隨機串 
	signature: res.data.paySign, // 必填,簽名 
	jsApiList: ['chooseWXPay', 'checkJsApi'] // 必填,需要使用的JS接口列表 
})


	wx.ready(() => {
		// wx.checkJsApi({     
		//   jsApiList: ['chooseWXPay'],     
		//   success:function(res){}, 
		//   fail:function(res){}})   

		wx.chooseWXPay({
			timestamp: res.data.timeStamp, // 支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符     
			nonceStr: res.data.nonceStr, // 支付簽名隨機串,不長于 32 位         
			package: res.data.package, // 統(tǒng)一支付接口返回的prepay_id參數(shù)值,提交格式如:prepay_id=\*\*\*)     
			signType: 'SHA1', // 簽名方式,默認為'SHA1',使用新版支付需傳入'MD5'     
			paySign: res.data.paySign, // 支付簽名     
			success: function(payRes) { 
			// 支付成功后的回調函數(shù)       
			},
			cancel: function(payRes) {
				// that.$message.error('取消支付')
			},
			fail: function(payRes) {
				// that.$message.error('支付失敗')
			}
		})
	})

支付之后會觸發(fā)支付通知回調,在回調中后端應該根據(jù)支付狀態(tài)更新訂單狀態(tài)

另外需要判斷是否微信瀏覽器移動端來決定是否調起微信支付,以下是判斷方法

var isWechatBrowser = /micromessenger/i.test(navigator.userAgent);
let isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i
								.test(navigator.userAgent);
if(isWechatBrowser){
//微信瀏覽器
	if (isMobile) {
		// console.log("當前是微信移動端");
	}else{
		// console.log("當前是pc端");
	}
}else{
//非//微信瀏覽器
}

常見錯誤

1、“當前頁面的URL未注冊”

檢查下單接口中使用的商戶號是否在商戶平臺 (opens new window)配置了對應的支付目錄

2、“該商戶暫不支持通過外部拉起微信完成支付”

JSAPI支付只能從微信瀏覽器內發(fā)起支付請求。

3、pc端拉起支付失敗

只支持移動端

4、缺少參數(shù):total_fee

一般是后端返回的package參數(shù)有誤,另外后端生成訂單時金額不能為0且單位為分

總結

到此這篇關于前端vue實現(xiàn)的h5頁面接入微信支付的文章就介紹到這了,更多相關vue h5頁面接入微信支付內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 關于Vue v-on指令的使用

    關于Vue v-on指令的使用

    這篇文章主要介紹了關于Vue v-on指令的一些使用場景,比如監(jiān)聽事件、傳入event參數(shù)、事件修飾符的一些場景,下面就來看看具體使用的方法吧,需要的朋友可以參考一下
    2021-10-10
  • vue2和vue3實現(xiàn)圖片懶加載方式

    vue2和vue3實現(xiàn)圖片懶加載方式

    這篇文章主要介紹了vue2和vue3實現(xiàn)圖片懶加載方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Vue使用pdf.js和docx-preview實現(xiàn)docx和pdf的在線預覽

    Vue使用pdf.js和docx-preview實現(xiàn)docx和pdf的在線預覽

    這篇文章主要為大家詳細介紹了在Vue中使用pdf.js和docx-preview實現(xiàn)docx和pdf的在線預覽的相關知識,文中的示例代碼講解詳細,需要的可以參考下
    2025-03-03
  • Vue slot插槽作用與原理深入講解

    Vue slot插槽作用與原理深入講解

    插槽slot可以說在一個Vue項目里面處處都有它的身影,比如我們使用一些UI組件庫的時候,我們通??梢允褂貌宀蹃碜远x我們的內容,這篇文章主要介紹了Vue3中slot插槽使用方式,需要的朋友可以參考下
    2023-01-01
  • vue.js根據(jù)代碼運行環(huán)境選擇baseurl的方法

    vue.js根據(jù)代碼運行環(huán)境選擇baseurl的方法

    本篇文章主要介紹了vue.js根據(jù)代碼運行環(huán)境選擇baseurl的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • flv.js在vue中的使用方法

    flv.js在vue中的使用方法

    flv.js是一個用于在瀏覽器中解碼和播放FLV視頻的JavaScript庫,它可以將FLV視頻流解碼并顯示在HTML5的video元素中,從而實現(xiàn)在瀏覽器中直接播放FLV格式的視頻文件,本文給大家介紹flv.js在vue中的使用,感興趣的朋友一起看看吧
    2023-11-11
  • vue中 數(shù)字相加為字串轉化為數(shù)值的例子

    vue中 數(shù)字相加為字串轉化為數(shù)值的例子

    今天小編就為大家分享一篇vue中 數(shù)字相加為字串轉化為數(shù)值的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue 實現(xiàn)可視化拖拽頁面編輯器

    Vue 實現(xiàn)可視化拖拽頁面編輯器

    這篇文章主要介紹了Vue 實現(xiàn)可視化拖拽頁面編輯器的方法,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2021-02-02
  • Vue 3 TypeScript 接口Interface使用示例詳解

    Vue 3 TypeScript 接口Interface使用示例詳解

    Vue3中TypeScript的接口用于定義組件props、數(shù)據(jù)模型、事件等類型結構,提升代碼可讀性與維護性,常見場景包括props類型、響應式數(shù)據(jù)、狀態(tài)對象、事件類型等,本文給大家介紹Vue 3 TypeScript接口Interface使用示例,感興趣的朋友一起看看吧
    2025-07-07
  • Vue中使用webpack別名的方法實例詳解

    Vue中使用webpack別名的方法實例詳解

    本文通過實例給大家介紹了Vue中使用webpack別名的方法,非常不錯,具體一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06

最新評論

阳高县| 平定县| 玉溪市| 章丘市| 德钦县| 岗巴县| 贵阳市| 彭山县| 岚皋县| 八宿县| 鄢陵县| 茌平县| 桐城市| 华阴市| 岗巴县| 巨野县| 会宁县| 英超| 三原县| 沙洋县| 双辽市| 北碚区| 搜索| 东丰县| 铜陵市| 井冈山市| 白朗县| 定边县| 岚皋县| 高台县| 延庆县| 玉屏| 肥西县| 平舆县| 柞水县| 绥江县| 祁连县| 迭部县| 吴桥县| 大方县| 奉新县|