支付宝、微信(pc+h5)支付
生活随笔
收集整理的這篇文章主要介紹了
支付宝、微信(pc+h5)支付
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//支付寶支付(pc端是一個(gè)二維碼,移動(dòng)端是喚起app進(jìn)行支付)
function aliipay(order) {let orderList = {orderId: order}; //訂單號(hào)waitOrderStatusChange(order,0); //判斷訂單狀態(tài)var url = "";let url_qrcode = "/api/aliPay/aliPayH5Order"; //電腦h5支付let url_h5 = "/api/aliPay/aliPayH5OrderInMobileBrowser"; //手機(jī)端支付if (isMobileWxBrowser()) {//在手機(jī)的微信瀏覽器let userId = window.localStorage.getItem('loginUid');let token = window.localStorage.getItem('loginToken');goBackPage('apply.html?orderId=' + order + '&userId=' + userId + "&token=" + token);return}if (isPcBrowser()) {// 在電腦瀏覽器url = url_qrcode;}if (isMobileBrowserOnly()) {// 只在手機(jī)的瀏覽器url = url_h5;}requestDataSimply(url, "POST", orderList, function (data) { //ajax請(qǐng)求接口if (isEmpty(data.data)) {lztToast("發(fā)起支付失敗"); //彈窗return;}if (isPcBrowser()) {// 在電腦瀏覽器(請(qǐng)參考支付api)let routerDta = window.location.href = "payOrder.html?htmlData=" + data.data;const div = document.createElement('divform');div.innerHTML = data.data; // data就是接口返回的form 表單字符串document.body.appendChild(div);document.forms[0].setAttribute('target', '_blank'); // 新開(kāi)窗口跳轉(zhuǎn)document.forms[0].submit();return;}if (isMobileBrowserOnly()) {// 只在手機(jī)的瀏覽器let routerDta = window.location.href = "payOrder.html?htmlData=" + data.data;const div = document.createElement('divform');div.innerHTML = data.data; // data就是接口返回的form 表單字符串document.body.appendChild(div);document.forms[0].setAttribute('target', '_blank'); // 新開(kāi)窗口跳轉(zhuǎn)document.forms[0].submit();return;}if (isMobileWxBrowser()) {// "在手機(jī)的微信瀏覽器"let routerDta = window.location.href = "payOrder.html?htmlData=" + data.data;const div = document.createElement('divform');div.innerHTML = data.data; // data就是接口返回的form 表單字符串document.body.appendChild(div);document.forms[0].setAttribute('target', '_blank') // 新開(kāi)窗口跳轉(zhuǎn)document.forms[0].submit();return;}});
}// 微信支付
function wechatpay(order) {let orderList = {orderId: order};waitOrderStatusChange(order,0);//微信內(nèi)支付if (isMobileWxBrowser()) {requestDataSimply("/api/weixinPay/weixinPayH5OrderInWeChatBrowser", "POST", orderList, function (data) {let wxPayData = data.data;if (isEmpty(wxPayData)) {lztToast("發(fā)起支付失敗");return;}// "在手機(jī)的微信瀏覽器"if (typeof WeixinJSBridge == "undefined") {if (document.addEventListener) {document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);} else if (document.attachEvent) {document.attachEvent('WeixinJSBridgeReady', onBridgeReady);document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);}} else {onBridgeReady(data.data);}}, function (err) {});return;}//手機(jī)瀏覽器支付if (isMobileBrowserOnly()) {//手機(jī)瀏覽器H5支付未開(kāi)通,暫時(shí)跳轉(zhuǎn)到瀏覽器讓用戶掃描下載// requestDataSimply("/api/weixinPay/weixinPayH5OrderInMobileBrowser", "POST", orderList, function (data) {let params = getApiParams();let userId = params.userId;let token = params.token;let url = 'weixinQrCodeTip.html?orderId=' + order + '&userId=' + userId + "&token=" + token;window.open(url);return}//Pc網(wǎng)站支付if (isPcBrowser()) {// 在電腦瀏覽器requestDataSimply("/api/weixinPay/weixinPayH5Order", "POST", orderList, function (data) {let url = data.data;if (isEmpty(url)) {lztToast("發(fā)起支付失敗");return;}let params = getApiParams();let userId = params.userId;let token = params.token;let openUrl = 'weixinQrCodeTip.html?orderId=' + order + '&userId=' + userId + "&token=" + token + "&img=/" + url;// openUrl = encodeURIComponent(openUrl);// console.log(openUrl);window.open(openUrl);});return;}lztToast("支付無(wú)效");
}function goBackHomePage() {goBackPage();
}function onBridgeReady(data) {//en [{"code":200,"data":{"nonce_str":"OjNWjRp0EVPwnFtV","code_url":"weixin://wxpay/bizpayurl?pr=O5J3IWQ","appid":"wx95691992c842c873","sign":"123390F3D9D9079E8402F9C161A11DB9341844CA0DE7B12720AD65EBBC1F6EBE","trade_type":"NATIVE","return_msg":"OK","result_code":"SUCCESS","mch_id":"1553043411","return_code":"SUCCESS","prepay_id":"wx111307478981372688b12d2c1724923800"},"message":"success","success":true}] as "application/json;charset=UTF-8" using [org.springframework.http.converter.WeixinJSBridge.invoke('getBrandWCPayRequest', {"appId": data.appId, //公眾號(hào)名稱,由商戶傳入"timeStamp": data.timeStamp, //時(shí)間戳,自1970年以來(lái)的秒數(shù)"nonceStr": data.nonceStr, //隨機(jī)串"package": data.package,"signType": data.signType, //微信簽名方式:"paySign": data.paySign, //微信簽名},function (res) {if (res.err_msg == "get_brand_wcpay_request:ok") {// 使用以上方式判斷前端返回,微信團(tuán)隊(duì)鄭重提示://res.err_msg將在用戶支付成功后返回ok,但并不保證它絕對(duì)可靠。}});
}function waitOrderStatusChange(orderId, times) {if (times >= 3) {console.log("timeout");return;}let params = {orderId : orderId};$.ajax({type: "get",url: "/api/appPay/waitUnitOrderStatusChange",data: getApiParams(params),dataType: 'json',success: function (data) {if (data.code === 200) {window.location.href = "myOrder.html";} else {waitOrderStatusChange(orderId, times + 1);}},error: function (xhr, state, errorThrown) {waitOrderStatusChange(orderId, times + 1);}});}
// 判斷瀏覽器的環(huán)境
var os = function () {var ua = navigator.userAgent,isWindowsPhone = /(?:Windows Phone)/.test(ua),isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone,isAndroid = /(?:Android)/.test(ua),isFireFox = /(?:Firefox)/.test(ua),isChrome = /(?:Chrome|CriOS)/.test(ua),isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua)),isiPhone = /(?:iPhone)/.test(ua) && !isTablet,isPc = !isiPhone && !isAndroid && !isSymbian;return {isTablet: isTablet,isiPhone: isiPhone,isAndroid: isAndroid,isPc: isPc}; }();//平臺(tái)、設(shè)備和操作系統(tǒng) var system = {win: false,mac: false,xll: false,ipad: false }; //檢測(cè)平臺(tái) var p = navigator.platform; system.win = p.indexOf("Win") == 0; system.mac = p.indexOf("Mac") == 0; system.x11 = (p == "X11") || (p.indexOf("Linux") === 0); system.ipad = (navigator.userAgent.match(/iPad/i) != null) ? true : false;/*** 判斷是否在電腦瀏覽器* @returns {boolean}*/ function isPcBrowser() {if (system.win || system.mac || system.xll) {return true;} else {return false;} }/*** 判斷是否只在電腦瀏覽器(排除電腦端微信瀏覽器)* @returns {boolean}*/ function isPcBrowserOnly() {if (system.win || system.mac || system.xll) {var ua = navigator.userAgent.toLowerCase();if (ua.match(/MicroMessenger/i) == 'micromessenger') {return false;} else {return true;}} else {return false;} }/*** 判斷是否在電腦中的微信瀏覽器* @returns {boolean}*/ function isPcWxBrowser() {if (system.win || system.mac || system.xll) {var ua = navigator.userAgent.toLowerCase();if (ua.match(/MicroMessenger/i) == 'micromessenger') {return true;}}return false; }/*** 判斷是否在手機(jī)瀏覽器* @returns {boolean}*/ function isMobileBrowser() {if (system.win || system.mac || system.xll) {return false;} else {return true;} }/*** 判斷是否只在手機(jī)瀏覽器(排除手機(jī)端微信瀏覽器)* @returns {boolean}*/ function isMobileBrowserOnly() {if (system.win || system.mac || system.xll) {return false;} else {var ua = navigator.userAgent.toLowerCase();if (ua.match(/MicroMessenger/i) == 'micromessenger') {return false;} else {return true;}} }/*** 判斷是否在手機(jī)中的微信瀏覽器* @returns {boolean}*/ function isMobileWxBrowser() {if (system.win || system.mac || system.xll) {return false;} else {var ua = navigator.userAgent.toLowerCase();if (ua.match(/MicroMessenger/i) == 'micromessenger') {return true;} else {return false;}} }/*** 是否是安卓手機(jī)* @returns {boolean}*/ function isAndroid() {return os.isAndroid; }/*** 是否iOS平臺(tái)* @returns {boolean}*/ function isiOS() {if (isiPhone()) return true;if (isiPad()) return true;return false; }/*** 是否是蘋果手機(jī)* @returns {boolean}*/ function isiPhone() {return os.isiPhone; }/*** 是否是平板* @returns {boolean}*/ function isiPad() {return os.isTablet; }
希望此篇文章對(duì)同行有幫助。
?
總結(jié)
以上是生活随笔為你收集整理的支付宝、微信(pc+h5)支付的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 深度分析:多元化布局或成香飘飘营销转型的
- 下一篇: 鸟哥的Linux笔记-------磁盘与