...
|
...
|
@@ -3,7 +3,90 @@ |
|
|
* @author: 赵彪<bill.zhao@yoho.cn>
|
|
|
* @date: 2015/12/03
|
|
|
*/
|
|
|
var loading = require('../plugin/loading');
|
|
|
var $ = require('jquery');
|
|
|
|
|
|
var loading = require('../plugin/loading'),
|
|
|
Hammer = require('yoho.hammer');
|
|
|
|
|
|
var theOrderCode = document.getElementById('ordercode').value;
|
|
|
|
|
|
var wxPayEl = document.getElementById('weixin'),
|
|
|
wxHammer = wxPayEl && new Hammer(wxPayEl);
|
|
|
|
|
|
var appIconPosition = {
|
|
|
baidu: '-2.7rem',
|
|
|
weixin: '-1.2rem',
|
|
|
QQ: '-5.4rem',
|
|
|
bank: '-4'
|
|
|
};
|
|
|
|
|
|
//隐藏微信分享选项
|
|
|
if (window.wx) {
|
|
|
wx.hideOptionMenu();
|
|
|
}
|
|
|
|
|
|
function onBridgeReady() {
|
|
|
document.addEventListener('WeixinJSBridgeReady', function() {
|
|
|
window.WeixinJSBridge && window.WeixinJSBridge.call('hideOptionMenu');
|
|
|
});
|
|
|
}
|
|
|
|
|
|
if (typeof WeixinJSBridge === undefined) {
|
|
|
if (document.addEventListener) {
|
|
|
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
|
|
|
} else if (document.attachEvent) {
|
|
|
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
|
|
|
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
|
|
|
}
|
|
|
onBridgeReady();
|
|
|
} else {
|
|
|
onBridgeReady();
|
|
|
}
|
|
|
|
|
|
//调用微信JS api 支付
|
|
|
function jsApiCall(orderCode, jsApiParameters) {
|
|
|
|
|
|
//防止重复操作弹框
|
|
|
window.WeixinJSBridge && window.WeixinJSBridge.invoke(
|
|
|
'getBrandWCPayRequest',
|
|
|
jsApiParameters,
|
|
|
function(res) {
|
|
|
window.location.href = '/home/orders/detail?order_code=' + orderCode;
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
|
|
|
//微信支付
|
|
|
function callpay(orderCode) {
|
|
|
var jsApiParameters;
|
|
|
|
|
|
if (typeof WeixinJSBridge === undefined) {
|
|
|
if (document.addEventListener) {
|
|
|
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
|
|
|
} else if (document.attachEvent) {
|
|
|
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
|
|
|
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
|
|
|
}
|
|
|
} else {
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: '/shopping/pay/wechatwapapi?order_code=' + orderCode,
|
|
|
dataType: 'json',
|
|
|
success: function(res) {
|
|
|
if (res.code === 200) {
|
|
|
jsApiParameters = res.data.jsApiParameters;
|
|
|
jsApiCall(orderCode, jsApiParameters);
|
|
|
} else {
|
|
|
alert('微信支付调取失败');
|
|
|
}
|
|
|
},
|
|
|
error: function() {
|
|
|
alert('请刷新本页面,完成微信支付');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
function isWXOpen() {
|
|
|
var ua = navigator.userAgent.toLowerCase();
|
...
|
...
|
@@ -32,39 +115,23 @@ function handleForWX() { |
|
|
}
|
|
|
}
|
|
|
|
|
|
function setIcon(div, appName) {
|
|
|
|
|
|
if (appName.indexOf('百度') !== -1) {
|
|
|
div.style.backgroundPositionY = '-2.7rem';
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (appName.indexOf('微信') !== -1) {
|
|
|
div.style.backgroundPositionY = '-1.2rem';
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (appName.indexOf('银联') !== -1) {
|
|
|
div.style.backgroundPositionY = '-4rem';
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if (appName.indexOf('QQ') !== -1) {
|
|
|
div.style.backgroundPositionY = '-5.4rem';
|
|
|
return false;
|
|
|
}
|
|
|
function setAppIcon(el, position) {
|
|
|
el.style.backgroundPositionY = position;
|
|
|
}
|
|
|
|
|
|
function loadIcon() {
|
|
|
var boxs = document.getElementsByClassName('box');
|
|
|
var div = null;
|
|
|
var appName = null;
|
|
|
var appid = null;
|
|
|
|
|
|
[].forEach.call(boxs, function(box, index) {
|
|
|
div = box.getElementsByClassName('icon')[0].getElementsByTagName('div')[0];
|
|
|
if (div) {
|
|
|
appName = box.getElementsByClassName('app')[0].innerHTML;
|
|
|
setIcon(div, appName);
|
|
|
appid = box.getAttribute('id');
|
|
|
if (appid !== 'alipay') {
|
|
|
setAppIcon(div, appIconPosition[appid]);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
...
|
...
|
@@ -75,6 +142,12 @@ function showPage() { |
|
|
pageList.style.visibility = 'visible';
|
|
|
}
|
|
|
|
|
|
if (wxHammer) {
|
|
|
wxHammer.on('tap', function() {
|
|
|
callpay(theOrderCode);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function main() {
|
|
|
handleForWX();
|
|
|
loading.hideLoadingMask();
|
...
|
...
|
|