您好,登錄后才能下訂單哦!
小編給大家分享一下js如何實現前端微信支付功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
$('.Save_Patient_Msg').click(function(){ $('.Save_Patient_Msg').off('click'); var hrdfId = getOrderId(); var txnAmt = $('.sum_pay.font-red').html(); var data = {orderId: hrdfId, txnAmt: "0.01", prodDesc: "遠程診斷服務", callType: "JSAPI", access_token: getUrlParam("access_token") }; $.ajax({ type: 'POST', url: '/hims/api/commonPay/queryTransNo?access_token='+getUrlParam('access_token'), dataType:'json', contentType:'application/json', data: JSON.stringify(data), success: function(Wxres){ if(!Wxres){ $.alert('服務器擁堵,請稍后訪問') }else{ console.log(Wxres); if(Wxres.data.respCode == 'fail'){ $.alert(Wxres.data.respMsg); }else{ //10 微信支付接口 // 10.1 發起一個支付請求 // 注意:此 Demo 使用 2.7 版本支付接口實現,建議使用此接口時參考微信支付相關最新文檔。 var param = Wxres.data; wx.config({ debug: false, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。 appId: 'wx403ead26691402fb', // 必填,公眾號的唯一標識 timestamp: param.timestamp, // 必填,生成簽名的時間戳 nonceStr: param.noncestr, // 必填,生成簽名的隨機串 signature: param.signJs,// 必填,調用js簽名, jsApiList: ['chooseWXPay'] // 必填,需要使用的JS接口列表,這里只寫支付的 }); wx.chooseWXPay({ timestamp: param.timestamp, // 支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符 nonceStr: param.noncestr, // 支付簽名隨機串,不長于 32 位 package: "prepay_id="+param.transNo, // 統一支付接口返回的prepay_id參數值,提交格式如:prepay_id=***) signType: "MD5", // 簽名方式,默認為'SHA1',使用新版支付需傳入'MD5' paySign: param.sign, // 支付簽名 success: function (res) { if(res.errMsg == "chooseWXPay:ok"){ //alert("支付成功"); window.location.href = "/hims/weixin/pages/Order_ok.html?access_token="+getUrlParam("access_token"); }else{ alert(res.errMsg); } }, cancel: function(res){ //alert('取消支付'); } }); } } }, error:function(data){ var msg = data.message || data.status; $.alert('服務器錯誤'+msg); } }); return false; }); function getUrlParam(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //構造一個含有目標參數的正則表達式對象 var r = window.location.search.substr(1).match(reg); //匹配目標參數 if (r!=null) return unescape(r[2]); return null; //返回參數值 } })
以上是“js如何實現前端微信支付功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。