|
|
var $ = require('yoho-jquery'),
|
|
|
lazyLoad = require('yoho-jquery-lazyload');
|
|
|
|
|
|
var loading = require('../plugin/loading'),
|
|
|
tip = require('../plugin/tip'),
|
|
|
Hammer = require('yoho-hammer');
|
|
|
|
|
|
|
|
|
// 点击微信显示加载
|
|
|
var $loadingToast = $(".loading-toast");
|
|
|
|
|
|
/* TODO 影响加载此段 JS */
|
|
|
// 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: '-4rem'
|
|
|
};
|
|
|
|
|
|
require('../common');
|
|
|
|
|
|
lazyLoad($('img.lazy'));
|
...
|
...
|
@@ -14,3 +35,169 @@ require('../channel/maybe-like')(getGender()); |
|
|
if ($('#goods-list').length === 0) {
|
|
|
$('.maybe-like').hide();
|
|
|
}
|
|
|
|
|
|
//隐藏微信分享选项
|
|
|
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) {
|
|
|
$loadingToast.addClass("hide");
|
|
|
|
|
|
// 防止重复操作弹框
|
|
|
window.WeixinJSBridge && window.WeixinJSBridge.invoke(
|
|
|
'getBrandWCPayRequest',
|
|
|
jsApiParameters,
|
|
|
function(res) {
|
|
|
|
|
|
window.location.href = '/home/orders/detail?order_code=' + orderCode + '&openId=true';
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
|
|
|
// 微信支付
|
|
|
function callpay(orderCode) {
|
|
|
var jsApiParameters;
|
|
|
|
|
|
$loadingToast.removeClass("hide");
|
|
|
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',
|
|
|
data: {
|
|
|
'order_code': orderCode
|
|
|
},
|
|
|
dataType: 'json',
|
|
|
success: function(res) {
|
|
|
if (res.code === 200) {
|
|
|
jsApiParameters = res.data.jsApiParameters;
|
|
|
jsApiCall(orderCode, jsApiParameters);
|
|
|
} else {
|
|
|
tip.show('微信支付调取失败');
|
|
|
}
|
|
|
},
|
|
|
error: function() {
|
|
|
tip.show('请刷新本页面,完成微信支付');
|
|
|
},
|
|
|
complete: function() {
|
|
|
$loadingToast.addClass("hide");
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
function isWXOpen() {
|
|
|
var ua = window.navigator.userAgent.toLowerCase();
|
|
|
|
|
|
return ua.indexOf('micromessenger') > 0;
|
|
|
}
|
|
|
|
|
|
function hideWeChatPay() {
|
|
|
var $payApps = $('.app');
|
|
|
|
|
|
$payApps.each(function(idx, app) {
|
|
|
if ($(app).parent().attr('id') === 'weixin') {
|
|
|
$(app).parent().css('display', 'none');
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function hideAliPay() {
|
|
|
var $payApps = $('.app');
|
|
|
|
|
|
$payApps.each(function(idx, app) {
|
|
|
if ($(app).parent().attr('id') === 'alipay') {
|
|
|
$(app).closest('a').css('display', 'none');
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function handleForWX() {
|
|
|
if (!isWXOpen()) {
|
|
|
hideWeChatPay();
|
|
|
} else {
|
|
|
hideAliPay();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
function setAppIcon(el, position) {
|
|
|
$(el).css('background-position-y', position);
|
|
|
}
|
|
|
|
|
|
function loadIcon() {
|
|
|
var $boxs = $('.box');
|
|
|
var $div = null;
|
|
|
var appid = null;
|
|
|
|
|
|
$boxs.each(function(idx, box) {
|
|
|
$div = $(box).find('.icon').find('div');
|
|
|
if ($div.length > 0) {
|
|
|
appid = $(box).attr('id');
|
|
|
if (appid !== 'alipay') {
|
|
|
setAppIcon($div, appIconPosition[appid]);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function showPage() {
|
|
|
$('.payapp-list').css('visibility', 'visible');
|
|
|
}
|
|
|
|
|
|
function bindTouchedEvent() {
|
|
|
var $boxs = $('.box');
|
|
|
|
|
|
$boxs.on('touchstart', function(e) {
|
|
|
$(this).addClass('bytouch');
|
|
|
}).on('touchend touchcancel', function() {
|
|
|
$boxs.removeClass('bytouch');
|
|
|
});
|
|
|
}
|
|
|
|
|
|
if (wxHammer) {
|
|
|
wxHammer.on('tap', function() {
|
|
|
callpay(theOrderCode);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function main() {
|
|
|
handleForWX();
|
|
|
loading.hideLoadingMask();
|
|
|
showPage();
|
|
|
loadIcon();
|
|
|
bindTouchedEvent();
|
|
|
}
|
|
|
|
|
|
loading.showLoadingMask();
|
|
|
|
|
|
$(document).ready(main); |
...
|
...
|
|