/** *Created by ZHJY on 2020/7/14. */ var payContainer = new Vue({ el:"#payContainer", data: { loginLoading:true, payInfo:{ payType:'',//支付类型 WEIXIN 微信支付 ALIPAY 支付宝支付 shopOrderId:'', //订单ID payAmount:0, payUnpaidAmount:0,//本次支付金额 payMobileUrl:'',//URL }, orderNo:'',//订单编号 shopName:'',// 收款方 payableAmount:'',//应付金额 receiptAmount:'',//已支付金额 balanceAmount:'',//应付剩余金额 payAmount:'',//本次支付金额 discernReceiptList:[],//支付记录列表 tabIndex:0,//支付方式 0 移动支付 1网银支付 2线下转账 paySuccessCounter:'', mobileTabIndex:0, bankTabIndex:0, isRequest:false, isRefresh:false, maxtime:300, pageType:'',//页面跳转类型 productID:'',//商品ID duration: 0, // 购买的会员期限 mbOrderId:0, orderFlag:1,// 是否是订单 0非订单 1订单 couponRecordId:0, vipId: null, // vip套餐id vipRecordId: undefined, couponId:0, userId:0 }, filters: { NumFormat:function(value) { if(!value) return '0.00'; var intPart = Number(value) - Number(value)%1; //获取整数部分(这里是windy93的方法) var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //将整数部分逢三一断 var floatPart = ".00"; //预定义小数部分 var value2Array = value.toString().split("."); if(value2Array.length == 2) { //=2表示数据有小数位 floatPart = value2Array[1].toString(); //拿到小数部分 if(floatPart.length == 1) { //补0,实际上用不着 return intPartFormat + "." + floatPart + '0'; } else { return intPartFormat + "." + floatPart; } } else { return intPartFormat + floatPart; } } }, methods: { infoPayOrderCheckoutCounter:function(){//初始化订单数据 var _self = this; if( _self.pageType === '1' || _self.pageType === '2' || _self.pageType === '3'){ console.log('1111111111111') setTimeout(function(){ switch (_self.payInfo.payType) { case 'WEIXIN': _self.getWrchatQrcodeShow(); break; case 'ALIPAY': _self.getAliPayQrcodeInfo(); break; } }, 2000); } else { console.log('22222222222') PayApi.PayOrderCheckoutShoporders({shopOrderId:_self.payInfo.shopOrderId},function(response){ if(response.code == 0){ // console.log(response); var data = response.data; _self.orderNo = data.shopOrder.orderNo; _self.shopName = data.shopOrder.shopName; _self.paySuccessCounter = data.shopOrder.paySuccessCounter; _self.payInfo.payAmount = data.shopOrder.realPay - data.shopOrder.receiptAmount; switch (_self.payInfo.payType) { case 'WEIXIN': _self.getWrchatQrcodeShow(); break; case 'ALIPAY': _self.getAliPayQrcodeInfo(); break; } }else{ CAIMEI.Alert(response.msg,'确定',false); } }) } }, getAliPayQrcodeInfo:function(){//生成支付宝二维码 var _self = this; var qrcode = new QRCode(document.getElementById("ali_pay_container"), { render: "canvas", //也可以替换为table text: _self.payInfo.payMobileUrl, width: 220, height: 220, colorDark : "#000000", colorLight : "#ffffff", correctLevel : QRCode.CorrectLevel.H }); _self.loginLoading = false; _self.isRequest = true; var timeClock = setInterval(function(){ _self.maxtime--; if (_self.maxtime == 0) { clearInterval(timeClock); _self.isRefresh = true; } },1000); _self.setTimerAliPay(); }, getWrchatQrcodeShow:function(){//生成微信二维码 var _self = this; var orderInfo = {}; if( _self.pageType === '1'){ orderInfo = {//二手微信二维码参数 pageType:1, productId:_self.productID, payAmount:_self.payAmount }; } else if (_self.pageType === '2') { // 微信支付会员 console.log('微信支付会员'); orderInfo = { pageType: 2, payAmount: _self.payAmount, vipId: _self.vipId, vipRecordId: _self.vipRecordId }; } else if (_self.pageType === '3') { // 微信支付优惠券 console.log('微信支付优惠券'); orderInfo = { pageType: 3, payAmount: _self.payAmount, couponId: _self.couponId, couponRecordId:_self.couponRecordId, userId : _self.userId }; } else { orderInfo = {//普通订单微信二维码参数 pageType:0, shopOrderId:_self.payInfo.shopOrderId, payAmount:_self.payAmount }; } // _self.payInfo.payMobileUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx91c4152b60ca91a3&redirect_uri=https://www-b.caimei365.com/pay/wechatpay.html&response_type=code&scope=snsapi_base&state="+JSON.stringify(orderInfo)+"#wechat_redirect"; _self.payInfo.payMobileUrl = 'https://www-b.caimei365.com/wxcode.html?orderInfo='+encodeURIComponent(JSON.stringify(orderInfo)); console.log(_self.payInfo.payMobileUrl); window.open(_self.payInfo.payMobileUrl) var qrcode = new QRCode(document.getElementById("wx_pay_container"), { render: "canvas", //也可以替换为table text: _self.payInfo.payMobileUrl, width: 220, height: 220, colorDark : "#000000", colorLight : "#ffffff", correctLevel : QRCode.CorrectLevel.H }); _self.loginLoading = false; _self.isRequest = true; var timeClock = setInterval(function(){ _self.maxtime--; if (_self.maxtime == 0) { clearInterval(timeClock); _self.isRefresh = true; } },1000); _self.setTimerWechatPay(); }, setTimerWechatPay:function () {//定时任务查询微信支付结果 var _self = this; var timer; if(_self.pageType === '2'){//超级会员支付结果 PayApi.PayOrderPayVipCheck({recordId : _self.vipRecordId},function(response){ // console.log(response); if(response.code === 0){ CAIMEI.dialog('支付成功'); clearTimeout(timer); //清理定时任务 setTimeout(function(){ window.location.href = '/index.html'; },2000); }else{ timer = setTimeout(function(){ _self.setTimerWechatPay() }, 1000*10); } }); }else if(_self.pageType === '3'){//优惠券支付结果 PayApi.PayOrderPayCouponCheck({ couponRecordId: _self.couponRecordId },function(response){ // console.log(response); if(response.code === 0){ CAIMEI.dialog('支付成功'); clearTimeout(timer); //清理定时任务 setTimeout(function(){ window.location.href = '/index.html'; },2000); }else{ timer = setTimeout(function(){ _self.setTimerWechatPay() }, 1000*10); } }); }else{ PayApi.PayOrderPayWhetherSuccess({orderId: _self.payInfo.shopOrderId, paySuccessCounter:_self.paySuccessCounter,shopOrderId:_self.payInfo.shopOrderId},function(response){ // console.log(response); if(response.code === 0){ CAIMEI.dialog('支付成功'); clearTimeout(timer); //清理定时任务 setTimeout(function(){ window.location.href = '/index.html'; },2000); }else{ timer = setTimeout(function(){ _self.setTimerWechatPay() }, 1000*10); } }); } }, setTimerAliPay:function () {//定时任务查询支付宝支付结果 var _self = this; var timer; PayApi.PayOrderFindOrderStatus({mbOrderId:_self.mbOrderId,orderFlag:_self.orderFlag,shopOrderId:_self.payInfo.shopOrderId},function(response){ var data = response.data; if(data.rt7_orderStatus === 'SUCCESS'){ CAIMEI.dialog('支付成功'); clearTimeout(timer); //清理定时任务 setTimeout(function(){ window.location.href = '/index.html'; },3000); }else{ timer = setTimeout(function(){ _self.setTimerAliPay() }, 1000*10); } }); }, hidePayAlert:function(){//隐藏已支付弹窗 var _self = this; _self.isPayAlert = false; }, toFixedFn:function(text){//处理小数点后两位数 return Number(text).toFixed(2); }, }, mounted: function () { var _self = this; var payData = JSON.parse(CAIMEI.Storage.getItem('payData')); _self.pageType = CAIMEI.getUrlParam('pageType'); _self.duration = CAIMEI.getUrlParam('duration'); if( _self.pageType === '1'){//二手 console.log('二手商品'); _self.payInfo.payType = payData.type; _self.orderFlag = 0; _self.productID = payData.productId; _self.payInfo.payMobileUrl = payData.url; _self.mbOrderId = payData.mbOrderId; _self.payAmount = _self.payableAmount = payData.amount; }else if(_self.pageType === '2'){// 超级会员 _self.payInfo.payType = payData.type; _self.orderFlag = 0; _self.payAmount = _self.payableAmount = payData.amount; _self.mbOrderId = payData.mbOrderId; _self.payInfo.payMobileUrl = payData.url; _self.vipId = payData.vipId; _self.vipRecordId = payData.vipRecordId; if(!_self.duration) { // 微信支付获取会员开通月份 _self.duration = payData.duration; } }else if(_self.pageType === '3'){// 优惠券 _self.payInfo.payType = payData.type; _self.orderFlag = 0; _self.payAmount = _self.payableAmount = payData.amount; _self.mbOrderId = payData.mbOrderId; _self.couponRecordId = payData.couponRecordId; _self.payInfo.payMobileUrl = payData.url; _self.couponId = payData.couponId; _self.userId = payData.userId; }else{ console.log('订单支付'); _self.payInfo.payType = payData.type; _self.orderFlag = 1; _self.mbOrderId = payData.mbOrderId; _self.payInfo.shopOrderId = payData.shopOrderId; _self.payInfo.payUnpaidAmount = payData.amount; _self.payInfo.payMobileUrl = payData.url; _self.payAmount =_self.payableAmount = _self.payInfo.payUnpaidAmount; } console.log(_self.payInfo.payType); _self.infoPayOrderCheckoutCounter(); } });