/** *Created by ZHJY on 2020/7/14. */ var payContainer = new Vue({ el:"#payContainer", mixins: [hlbPayMixin], data: { isSubMitStatus:false, payInfo:{ payBankNum: '', //支付类型 shopOrderId: '', //订单ID obligation: '', //待支付金额 payAmount: 0,//本次支付金额 payMobileUrl: '',//二维码生成链接 payData:{}, //支付数据 payUserType:'B2B', payType:'1', }, iframe:'', orderFlag:1,// 是否是订单 0非订单 1订单 couponInfo:{}, bankListB2BData:[],// 企业网银银行列表 bankListB2CData:[],// 个人网银银行列表 methodTab:['线上支付','转账支付'], mobileData:[ {imgUrl:'/img/pay/iconbank-ali@2x.png',bankName:'支付宝支付',bankNum:'ALIPAY'}, {imgUrl:'/img/pay/iconbank-wx@2x.png',bankName:'微信支付',bankNum:'WEIXIN'}, {imgUrl:'/img/pay/iconbank-B2Bbank@2x.png',bankName:'网银支付',bankNum:'ICBC_B2B'}, {imgUrl:'/img/pay/iconbank-B2Cbank@2x.png',bankName:'个人网银',bankNum:'ICBC_B2C'} ], pageType:'',//页面跳转类型 1 二手支付 obligation:'',//订单待付金额 payableAmount:'',//应付金额 receiptAmount:'',//已支付金额 balanceAmount:'',//应付剩余金额 payAmount:'',//本次支付金额 paymentIimit:5000, paymentIimitText:'', discernReceiptList:[],//支付记录列表 tabIndex:0,//支付方式 0 移动支付 1网银支付 2线下转账 mbOrderId:'',//支付订单ID bigPayInfo:{},// 银联转账信息 BankUserType:1, mobileTabIndex:null, bankTabIndex:0, isRequest:false, isPayAlert:false, isPaySwitch:false, paySuccessCounter:'', bankPayLink_url:'', invoiceStatus:false, isReceiptStatus:false, onlinePay:'', payStatusText:'使用任何一种线上支付方式支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。', productID:'',//发布商品的ID is_Wechat_bowcr:false, comboInfo: null, //选中的svip套餐信息 vipRecordId: undefined, couponRecordId:undefined, couponId:undefined, 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: { initCouponDetail:function (couponId) {//初始化优惠券数据 var _self = this; ProductApi.QueryCouponDetail({ couponId: couponId },function (response) { if(response.code == 0){ _self.couponInfo = response.data if(globalUserData){ _self.userId = globalUserData.userId; } }else{ CAIMEI.Alert(response.msg, '确定', false); } }) }, infoPayOrderCheckoutCounter:function(){//初始化子订单数据 var _self = this; PayApi.PayOrderCheckoutShoporders({shopOrderId:_self.payInfo.shopOrderId},function(response){ if(response.code == 0){ // console.log(response); var data = response.data; //金额初始化 _self.payInfo.payAmount = (data.shopOrder.realPay - data.shopOrder.receiptAmount).toFixed(2); _self.discernReceiptList = data.discernReceipt;// 支付记录 _self.payInfo.obligation = data.shopOrder.obligation; _self.obligation = data.shopOrder.obligation;// 待付金额 _self.payableAmount = data.shopOrder.realPay; _self.receiptAmount = data.shopOrder.receiptAmount; _self.balanceAmount = ( _self.obligation - _self.receiptAmount).toFixed(2) - _self.payInfo.payAmount; _self.payAmount = (_self.payableAmount - _self.receiptAmount).toFixed(2); _self.paySuccessCounter = data.shopOrder.paySuccessCounter; _self.onlinePay = data.onlinePay; _self.isRequest = true; _self.PayOrderOnLineSwitch(); }else{ CAIMEI.Alert(response.msg,'确定',false); } }) }, getBankList:function () {// 获取网银支付银行列表 var _self = this; PayApi.PayGetBankCode({},function(response){ if(response.code == 0){ _self.bankListB2BData = response.data.B2B; _self.bankListB2CData = response.data.B2C; }else{ console.log('获取网银支付银行列表异常') } }) }, PayOrderOnLineSwitch:function(){//获取是否可以先上支付 var _self = this; PayApi.PayOrderOnLineSwitch({},function(response){ if(response.code == 0){ if(response.data === 0){ _self.isPaySwitch = true; if (_self.pageType === '2') { CAIMEI.dialog('支付系统遇到点小问题,请稍后重试', false); return; } CAIMEI.Alert('线上支付功能正在维护中,请前往订单详情页面查看线下转账方式后进行付款','确定',true,function(){ window.location.href='/user/order/detail.html?orderId='+_self.payInfo.shopOrderId; }); } }else{ CAIMEI.Alert(response.msg,'确定',false); } }) }, PayMobileSubmitFn:function(){//点击移动支付方式 var _self = this; if(_self.isPaySwitch && _self.pageType === '2'){ CAIMEI.dialog('支付系统遇到点小问题,请稍后重试', false); return; } if(_self.pageType === '3'){// 移动支付优惠券 _self.PayCouponMiniPayFn(); }else{ if(_self.payInfo.payBankNum == ''){ CAIMEI.dialog('请选择支付方式'); return; } if(_self.payAmount == ''){ CAIMEI.dialog('请输入本次支付金额'); return; } if(_self.payAmount == 0){ CAIMEI.dialog('本次支付金额不能为0'); return; } if(_self.payAmount*100 < 2){ CAIMEI.dialog('本次支付金额必须大于¥0.02'); return; } if(_self.payAmount > _self.paymentIimit){ switch (_self.payInfo.payBankNum) { case 'WEIXIN': _self.paymentIimitText = '本次支付金额已超出微信支付限额,请输入小于5千的金额进行支付'; break; case 'ALIPAY': _self.paymentIimitText = '本次支付金额已超出支付宝限额,请输入小于5千的金额进行支付'; break; } CAIMEI.Alert(_self.paymentIimitText,'知道了'); return; } if(_self.payInfo.payBankNum == "WEIXIN"){// 微信 if(_self.pageType === '1'){ // 二手 _self.hlb_PaySecondMiniWxPay(); }else if(_self.pageType === '2'){ // 会员 _self.hlb_PayVipMiniWxPay(); }else{ // 正常订单 _self.hlb_PayOrderMiniWxPay(); } }else if(_self.payInfo.payBankNum == "ALIPAY"){// 支付宝 if(_self.pageType === '1'){// 二手 _self.hlb_PayOrdersecondScanAliPay(); }else if(_self.pageType === '2'){ // 会员 _self.hlb_PayVipScanAliPay(); }else{// 正常订单 _self.hlb_PayOrderPcScanAliPay(); } } } }, PaySubmitFn:function(){//点击网银支付方式 var _self = this; if(_self.isPaySwitch && _self.pageType === '2'){ CAIMEI.dialog('支付系统遇到点小问题,请稍后重试', false); return; } if(_self.pageType === '3'){// 网银支付优惠券 _self.hlb_PayCouponUnionPayFn(); }else{ if(_self.payInfo.payBankNum == ''){ CAIMEI.dialog('请选择银行!'); return; } if(_self.payAmount <= 10){ CAIMEI.dialog('网银支付的金额必须大于¥10.00'); return; } if(_self.pageType === '1'){// 二手 _self.hlb_PayOrdersecondUnion(); } else if (_self.pageType === '2') { // 会员 _self.hlb_PayVipPcMallPay(); } else {// 正常订单 _self.hlb_PayOrderPcMallPay(); } } }, PayCouponMiniPayFn:function () { // 移动支付购买优惠券 var _self = this; if(_self.payInfo.payBankNum == "WEIXIN"){ _self.hlb_PayCouponMiniWxPay(); }else if(_self.payInfo.payBankNum == "ALIPAY"){//支付宝支付 _self.hlb_PayCouponAliPay(); } }, changePayAmount:function(event){//输入支付金额控制 var _self = this; var value = event.target.value; if(value == "" || value <0 ){//判断是否等于0 或者为空 _self.payAmount = ''; _self.payInfo.payAmount = _self.payInfo.obligation; _self.balanceAmount = _self.toFixedFn(_self.payInfo.obligation); return; }else if(Number(value) > _self.payInfo.obligation){//判断大于应付金额 _self.payAmount = _self.payInfo.obligation; _self.payInfo.payAmount = _self.payAmount; _self.balanceAmount = _self.toFixedFn(_self.payInfo.obligation-_self.payInfo.payAmount); }else{ _self.payAmount = value; _self.payInfo.payAmount = _self.payAmount; _self.balanceAmount = _self.toFixedFn(_self.payInfo.obligation-_self.payInfo.payAmount); } }, changePayAmountBlur:function(event){//失去焦点设置金额 var _self = this; _self.payAmount = _self.toFixedFn(event.target.value); _self.payInfo.payAmount = _self.payAmount; }, changeTab:function(index,item){//选择支付方式切换 this.tabIndex = index; switch (this.tabIndex) { case 0: this.payInfo.payBankNum = 'ALIPAY'; break; case 1: this.payInfo.payBankNum = ''; break; } }, checkMobilePay:function(index,bankNum){//选择移动支付方式 var _self = this; _self.mobileTabIndex = index; _self.payInfo.payBankNum = bankNum; switch (index) { case 2:// 企业网银 _self.bankTabIndex = 0 _self.payInfo.payType = '1'; _self.payInfo.payUserType = 'B2B'; _self.payInfo.payBankNum = _self.bankListB2BData[0].b2B; break; case 3:// 个人网银 _self.bankTabIndex = 0 _self.payInfo.payType = '2'; _self.payInfo.payUserType = 'B2C'; _self.payInfo.payBankNum = _self.bankListB2CData[0].b2C; break; } }, checkBankPay:function(index,item){//选择网银支付方式-选择银行 var _self = this; _self.bankTabIndex = index; switch (_self.mobileTabIndex) { case 2:// 企业网银 _self.payInfo.payBankNum = item.b2B; break; case 3:// 个人网银 _self.payInfo.payBankNum = item.b2C; break; } }, copyLinkPaySubmitFn:function(){//复制网银支付链接 var _self = this; if(_self.isPaySwitch && _self.pageType === '2'){ CAIMEI.dialog('支付系统遇到点小问题,请稍后重试', false); return; } if(_self.payAmount == ''){ CAIMEI.dialog('请输入本次支付金额'); return; } if(_self.payAmount == 0){ CAIMEI.dialog('本次支付金额不能为0'); return; } if(_self.payAmount <= 10){ CAIMEI.dialog('网银支付的金额必须大于¥12.00'); return; } var params = {}; if(_self.pageType == 2){ params = { unpaidAmount:_self.payAmount, vipRecordId: _self.vipRecordId, payType:_self.payInfo.payType, } }else{ params = { unpaidAmount:_self.payAmount, shopOrderId:_self.payInfo.shopOrderId, payType:_self.payInfo.payType } } _self.hlb_CopyLinkPaySubmitFn(params) }, hidePayAlert:function(){//隐藏已支付弹窗 var _self = this; _self.isPayAlert = false; }, RefreshBody:function(){//刷新页面 var _self = this; if(_self.payInfo.payBankNum == 'WEIXIN'){ if( _self.pageType == '2' ){ // 验证支付(支付会员) PayApi.PayOrderPayVipCheck({recordId : _self.vipRecordId},function(response){ // console.log(response); if(response.code === 0){ _self.windowLocationHref('success'); }else{ _self.windowLocationHref('error'); } }); }else if(_self.pageType == '3'){ // 验证支付(优惠券) PayApi.PayOrderPayCouponCheck({ couponRecordId: _self.couponRecordId },function(response){ // console.log(response); if(response.code === 0){ _self.windowLocationHref('success'); }else{ _self.windowLocationHref('error'); } }); }else{ PayApi.PayOrderPayWhetherSuccess({shopOrderId: _self.payInfo.shopOrderId, paySuccessCounter:_self.paySuccessCounter},function(response){ _self.isPayAlert = false; if(response.code === 0){ _self.windowLocationHref('success'); }else{ _self.windowLocationHref('error'); } }); } }else if(_self.payInfo.payBankNum == 'ALIPAY'){// 校验支付宝支付成功 PayApi.PayOrderFindOrderStatus({mbOrderId:_self.mbOrderId,orderFlag:_self.orderFlag,shopOrderId:_self.payInfo.shopOrderId},function(response){ if(response.code === 0){ _self.isPayAlert = false; var data = response.data; if(data.rt7_orderStatus === 'SUCCESS'){ _self.windowLocationHref('success'); }else{ _self.windowLocationHref('error'); } }else{ CAIMEI.Alert(response.msg,'确定',false); } }); }else{// 校验网银支付成功 PayApi.PayOrderUnionStatus({mbOrderId:_self.mbOrderId,orderFlag:_self.orderFlag,shopOrderId:_self.payInfo.shopOrderId},function(response){ if(response.code === 0){ _self.isPayAlert = false; var data = response.data; if(data.rt10_orderStatus === 'SUCCESS'){ _self.windowLocationHref('success'); }else{ _self.windowLocationHref('error'); } }else{ CAIMEI.Alert(response.msg,'确定',false); } }); } }, windowLocationHref:function(state){ var _self = this; if( _self.pageType === '1'){ window.location.href = '/pay/success.html?pageType=second&type='+state+'&payAmount='+_self.payAmount; }else if(_self.pageType === '2'){ window.location.href = '/pay/success.html?pageType=vip&type='+state+'&payAmount='+_self.payAmount; }else if(_self.pageType === '3') { window.location.href = '/pay/success.html?pageType=coupon&type=' + state + '&payAmount=' + _self.couponInfo.moneyCouponPrice; }else{ window.location.href = '/pay/success.html?pageType=www&type='+state+'&payAmount='+_self.payAmount; } }, payTypeText:function(state){//处理支付记录文字 var stateText = '', stateTextObject={ 12:'网银', 13:'微信支付', 14:'支付宝', 15:'微信支付', 16:'余额抵扣', 20:'大额银联转账', }; Object.keys(stateTextObject).forEach(function(key) { if(key == state){ stateText = stateTextObject[key] } }); return stateText; }, toFixedFn:function(text){//处理小数点后两位数 return Number(text).toFixed(2); }, }, mounted: function () { var _self = this; // 判断当前支付是订单支付 this.pageType = CAIMEI.getUrlParam('pageType'); if (this.pageType === '1') {//二手 this.productID = CAIMEI.getUrlParam('productID'); this.payAmount = _self.toFixedFn(100); this.isRequest = true; this.payStatusText = ''; this.orderFlag = 0; } else if (this.pageType === '2') { // 支付会员 this.orderFlag = 0; this.vipRecordId = parseInt(CAIMEI.getUrlParam('vipRecordId')); this.PayOrderOnLineSwitch(); // 从本地获取选中的svip套餐信息后删除本地信息 this.comboInfo = JSON.parse(CAIMEI.Storage.getItem('comboInfo')); // CAIMEI.Storage.removeItem('comboInfo'); // 设置支付金额 this.payAmount = this.toFixedFn(this.comboInfo.price); // 获取银行列表 this.getBankList(); } else if(this.pageType === '3') {// 支付优惠券 this.orderFlag = 0; this.couponId = parseInt(CAIMEI.getUrlParam('couponId')); this.couponRecordId = parseInt(CAIMEI.getUrlParam('couponRecordId')); this.initCouponDetail(this.couponId); this.PayOrderOnLineSwitch(); this.getBankList(); }else{ this.orderFlag = 1; this.payInfo.shopOrderId = CAIMEI.getUrlParam('shopOrderId'); // 获取银行列表 this.getBankList(); //正常订单初始化 this.infoPayOrderCheckoutCounter(); } var viewer = window.navigator.userAgent.toLowerCase(); if(viewer.match(/MicroMessenger/i) == 'micromessenger'){ this.is_Wechat_bowcr = true; this.payInfo.payBankNum = 'WEIXIN'; this.mobileTabIndex = 1; }else{ this.is_Wechat_bowcr = false; this.payInfo.payBankNum = 'ALIPAY'; this.mobileTabIndex = 0; } } });