Authored by 王洪广

Merge branch 'feature/wechatloading' into release/4.5

... ... @@ -8,18 +8,19 @@ var $ = require('jquery');
var loading = require('../plugin/loading'),
tip = require('../plugin/tip'),
Hammer = require('yoho.hammer');
// 点击微信显示加载
var $loadingToast = $(".loadingToast");
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'
};
baidu: '-2.7rem',
weixin: '-1.2rem',
QQ: '-5.4rem',
bank: '-4rem'
};
// 隐藏微信分享选项
if (window.wx) {
... ... @@ -27,7 +28,7 @@ if (window.wx) {
}
function onBridgeReady() {
document.addEventListener('WeixinJSBridgeReady', function() {
document.addEventListener('WeixinJSBridgeReady', function () {
window.WeixinJSBridge && window.WeixinJSBridge.call('hideOptionMenu');
});
}
... ... @@ -46,14 +47,15 @@ if (typeof WeixinJSBridge === undefined) {
// 调用微信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;
}
'getBrandWCPayRequest',
jsApiParameters,
function (res) {
window.location.href = '/home/orders/detail?order_code=' + orderCode;
}
);
}
... ... @@ -61,6 +63,7 @@ function jsApiCall(orderCode, jsApiParameters) {
function callpay(orderCode) {
var jsApiParameters;
$loadingToast.removeClass("hide");
if (typeof WeixinJSBridge === undefined) {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
... ... @@ -70,21 +73,24 @@ function callpay(orderCode) {
}
} 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 {
tip.show('微信支付调取失败');
}
},
error: function() {
tip.show('请刷新本页面,完成微信支付');
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 {
tip.show('微信支付调取失败');
}
});
},
error: function () {
tip.show('请刷新本页面,完成微信支付');
},
complete: function () {
$loadingToast.addClass("hide");
}
});
}
}
... ... @@ -98,7 +104,7 @@ function isWXOpen() {
function hideWeChatPay() {
var $payApps = $('.app');
$payApps.each(function(idx, app) {
$payApps.each(function (idx, app) {
if ($(app).parent().attr('id') === 'weixin') {
$(app).parent().css('display', 'none');
return false;
... ... @@ -122,7 +128,7 @@ function loadIcon() {
var $div = null;
var appid = null;
$boxs.each(function(idx, box) {
$boxs.each(function (idx, box) {
$div = $(box).find('.icon').find('div');
if ($div.length > 0) {
appid = $(box).attr('id');
... ... @@ -140,15 +146,15 @@ function showPage() {
function bindTouchedEvent() {
var $boxs = $('.box');
$boxs.on('touchstart', function(e) {
$boxs.on('touchstart', function (e) {
$(this).addClass('bytouch');
}).on('touchend touchcancel', function() {
}).on('touchend touchcancel', function () {
$boxs.removeClass('bytouch');
});
}
if (wxHammer) {
wxHammer.on('tap', function() {
wxHammer.on('tap', function () {
callpay(theOrderCode);
});
}
... ... @@ -165,7 +171,7 @@ loading.showLoadingMask();
$(document).ready(main);
$('.box').on('click', function() {
$('.box').on('click', function () {
var url = $('.payapp-list a').attr('href'),
theRequest = [],
orderCode,
... ... @@ -173,13 +179,13 @@ $('.box').on('click', function() {
if (url.indexOf("?") != -1) {
theRequest = url.split('?')[1].split("&");
orderCode=theRequest[0].split('=')[1];
payment=theRequest[1].split('=')[1];
orderCode = theRequest[0].split('=')[1];
payment = theRequest[1].split('=')[1];
}
$.ajax({
url:'/shopping/pay/addPaymentInterval?orderCode=' + orderCode + '&payment=' + payment,
method:'get'
url: '/shopping/pay/addPaymentInterval?orderCode=' + orderCode + '&payment=' + payment,
method: 'get'
});
});
... ...
... ... @@ -66,4 +66,41 @@
font-size: 28px;
}
}
/* 加载中 */
.loadingToast {
position: fixed;
z-index: 3;
width: 3.8em;
min-height: 3.8em;
top: 38%;
left: 50%;
margin-left: -1.9em;
background: rgba(40, 40, 40, 0.75);
text-align: center;
border-radius: 5px;
color: #FFFFFF;
}
.loadingToast:after{
content:'';
position: absolute;
left:50%;
top:50%;
margin-left: -.5rem;
margin-top: -.5rem;
width: 1rem;
height:1rem;
background: url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAAG5wVGOkIJ/OAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAbUExURQAAAP///////////////////////////////+tNPsIAAAAJdFJOUwD+ELHdi00wbfD3fpAAAADbSURBVCjPY2CgDLBnBBtHFCCLsIWGGgNBE5Ka1tBgoIiJcwJcqKI1NF2BqcLExQOuraMDbAybiUsAVKisA6pB1cUVwmBKS4epb3GBSLKnwW1ndXEC0+rlcHuYoBaUFyGckygClilHcjWLIMgwJiUFhBCHYABYCNlnggboQkyCDiBSATkABAUwQglTCKIRBUCMRwGsggHoQhCnooBEQQzTHUXRhZgFhdCFAlGMUgZhQWR97I4gR6G4qlGQKdURRZGyIBggm2QIFgliQFPliubwRkHM1OSImcKU4SwAH1UgWePsA0wAAAAASUVORK5CYII=");
background-size:1rem;
-webkit-animation: rotate .7s infinite;
-webkit-animation-timing-function: linear;
}
}
@-webkit-keyframes rotate {
0% {
-webkit-transform: rotate(0deg)
}
100% {
-webkit-transform: rotate(360deg)
}
}
\ No newline at end of file
... ...
... ... @@ -31,6 +31,7 @@
{{/if}}
{{/ payAppInfo}}
</div>
<div class="loadingToast hide"></div>
</div>
<script>_ozprm="orderid={{orderCode}}&ordertotal={{orderTotal}}";</script>
<script type="text/javascript" src ="//static.yohobuy.com/m/v1/js/AG_Tracking.js"></script>
... ...