123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- /**
- *Created by ZHJY on 2020/7/14.
- */
- var payContainer = new Vue({
- el:"#payContainer",
- mixins: [hlbPayMixin,mhPayMixin],
- data: {
- paymentChannel:'HLB',
- isSubMitStatus:false,
- payInfo:{
- payBankNum:'',//银行网管信息
- payCode:'',//链接状态
- shopOrderId:'',//主订单ID
- payUnpaidAmount:0,//本次支付金额
- payTime:'',//链接失效时间
- payLinkLogo:'',
- payLinkType:'',
- payUserType:'',//网银支付类型
- payLinkTypeText:'',//文案
- },
- iframe:'',
- orderFlag:1,// 是否是订单 0非订单 1订单
- bankListB2BData:[],// 企业网银银行列表
- bankListB2CData:[],// 个人网银银行列表
- userName :'',
- goodList:'',
- totalAmount: '', //合计
- payableAmount:'',//剩余支付金额
- payAmount:'', //本次支付金额
- obligation:'',// 本次待付金额
- eachDiscount:'',// 子订单优惠金额
- receiptAmount:'',//已支付金额
- discernReceipt:'',//支付记录
- discernReceiptList:[],//支付记录列表
- orderProductList:[],//商品列表
- bankTabIndex:0,
- downHour:'00',//倒计时
- downMinute:'00',//倒计分
- downSecond:'00',//倒计秒
- isSiled:false,
- mbOrderId:'',
- isRequest:false,
- isPayAlert:false,
- isErrorShow:false,
- iconErrorClass:'',
- iconErrorText:'',
- iconErrorMsgnone:'',
- organizeId:'', //组织机构id
- orderNo:'', //订单号
- orderTotalFee:'',
- unpaidAmount:'', //真正的付款金额
- comboInfo: [], // 会员套餐
- type: 1,
- vipMonth: 0,
- vipRecordId: undefined
- },
- 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: {
- LinkInfoOrderBank:function(linkLogo){//初始化支付订单加密数据
- var _self = this;
- PayApi.PayOrderLinkData({linkLogo:linkLogo},function(response){
- if(response.code === 0){
- var data = response.data;
- console.log(data);
- _self.payInfo.shopOrderId = data.orderPayLink.shopOrderId;
- _self.orderFlag = data.orderFlag;
- _self.payInfo.payUnpaidAmount = _self.payAmount = data.orderPayLink.unpaidAmount;
- _self.payInfo.payTime = decodeURI(data.time);
- _self.payInfo.payLinkType = data.orderPayLink.payType;
- _self.payInfo.payLinkTypeText = _self.payInfo.payLinkType === 1 ? '企业网银' : '个人网银';
- if(_self.paymentChannel === 'HLB'){
- _self.payInfo.payUserType = _self.payInfo.payLinkType === 1 ? 'B2B' : 'B2C';
- }else{
- _self.payInfo.payUserType = _self.payInfo.payLinkType === 1 ? 'ENTERPRISE' : 'USER';
- }
- _self.getBankList();
- _self.unpaidAmount = data.orderPayLink.unpaidAmount;
- _self.type = data.type;
- if(data.code === 0){
- setTimeout(function () { //支付倒计时
- _self.countTime(_self.payInfo.payTime)
- }, 1000);
- if(_self.type === 1){
- _self.infoPayOrderCheckoutCounter();
- }else{
- console.log('本次支付链接是支付超级会员');
- _self.userName = data.userName;
- _self.vipMonth = data.orderPayLink.vipMonth;
- _self.vipRecordId = data.orderPayLink.vipRecordId;
- _self.isRequest = true;
- }
- }else{
- _self.isErrorShow = true;
- _self.isRequest = true;
- switch (_self.payInfo.payCode) {
- case -2:
- _self.iconErrorClass = 'offline';
- _self.iconErrorText = '订单已通过线下转账方式付款';
- _self.iconErrorMsgnone = '不能再使用网银支付';
- break;
- case -3:
- _self.iconErrorClass = 'fail';
- _self.iconErrorText = '链接超过24小时未完成支付,已失效';
- _self.iconErrorMsgnone = '请重新生成支付链接,继续支付';
- break;
- case 5:
- _self.iconErrorClass = 'paid';
- _self.iconErrorText = '款项已支付完成,无需重复支付';
- _self.iconErrorMsgnone = '';
- break;
- }
- }
- }else if(response.code === -1){
- _self.isErrorShow = true;
- _self.isRequest = true;
- _self.iconErrorClass = 'again';
- _self.iconErrorText = '链接已更新,请联系业务人员获取最新链接再进行支付';
- _self.iconErrorMsgnone = '';
- }else{
- CAIMEI.Alert(response.msg,'确定',false);
- }
- });
- },
- infoPayOrderCheckoutCounter:function(){//初始化订单数据
- var _self = this;
- PayApi.PayOrderCheckoutShoporders({shopOrderId:_self.payInfo.shopOrderId},function(response){
- console.log(response);
- if(response.code === 0){
- var data = response.data;
- _self.discernReceiptList = data.discernReceipt;// 支付记录
- _self.orderProductList = data.orderProductList;// 自订单商品信息
- _self.obligation = data.shopOrder.obligation; // 待付金额
- _self.eachDiscount = data.shopOrder.eachDiscount; //优惠金额
- _self.payableAmount = (data.shopOrder.obligation*100 - _self.payInfo.payUnpaidAmount*100)/100; //剩余支付金额 = 子订单待付金额 - 本次支付金额
- _self.userName = data.userName;
- _self.totalAmount = data.shopOrder.totalAmount; // 子订单金额合计
- _self.receiptAmount= data.shopOrder.receiptAmount; // 已支付金额
- _self.isRequest = true;
- }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;
- if( _self.payInfo.payLinkType === 1){
- _self.payInfo.payBankNum = _self.bankListB2BData[0].b2B;
- }else{
- _self.payInfo.payBankNum = _self.bankListB2CData[0].b2C;
- }
- }else{
- console.log('获取网银支付银行列表异常')
- }
- })
- },
- PaySubmitFn:function(){//立即支付
- var _self = this;
- if(_self.payInfo.payBankNum === ''){
- CAIMEI.dialog('请选择银行!');
- return;
- }
- if (_self.type === 2){
- // 支付超级会员
- console.log('支付超级会员');
- if(this.paymentChannel === 'HLB'){
- _self.hlb_PayVipPcMallPay();
- }else{
- _self.mh_PayVipPcMallPay();
- }
- }else {
- // 普通订单
- console.log('支付普通订单');
- if(this.paymentChannel === 'HLB'){
- _self.hlb_PayOrderPcMallPay();
- }else{
- _self.mh_PayOrderPcMallPay();
- }
- }
- },
- RefreshBody:function(){//刷新弹窗
- var _self = this;
- 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;
- var pageType = _self.type === 1 ? 'www' : 'vip&payFlag=1'; // 1 普通订单 2 vip订单
- var type = data.rt10_orderStatus === 'SUCCESS' ? 'success' : 'error'; // 成功 or 失败
- window.location.href = '/pay/success.html?pageType='+ pageType +'&type='+ type +'&payAmount=' + _self.payInfo.payUnpaidAmount;
- }else{
- CAIMEI.Alert(response.msg,'确定',false);
- }
- });
- },
- checkBankPay:function(index,item){// 选择银行
- this.bankTabIndex = index;
- if( this.payInfo.payLinkType === 1){
- this.payInfo.payBankNum = item.b2B;
- }else{
- this.payInfo.payBankNum = item.b2C;
- }
- },
- slideToggleContent:function(){
- this.isSiled = !this.isSiled;
- },
- countTime:function(value){//支付链接倒计时
- var _self = this;
- //获取当前时间
- var date = new Date();
- var now = date.getTime();
- //设置截止时间
- var endDate = new Date(value);
- var end = endDate.getTime();
- //时间差
- var differTime = end - now;
- //定义变量,h,m,s保存倒计时的时间
- var h, m, s;
- if (differTime >= 0) {
- h = Math.floor(differTime / 1000 / 60 / 60);
- m = Math.floor(differTime / 1000 / 60 % 60);
- s = Math.floor(differTime / 1000 % 60);
- _self.downHour = h < 10 ? ("0" + h) : h;
- _self.downMinute = m < 10 ? ("0" + m) : m;
- _self.downSecond = s < 10 ? ("0" + s) : s;
- //递归调用函数所以是延时器不是定时器
- setTimeout(function () {
- _self.countTime(value)
- }, 1000);
- } else {
- _self.downHour = '00';
- _self.downMinute = '00';
- _self.downSecond = '00';
- }
- },
- freightText:function (type) {//处理邮费显示
- var text ="";
- if(type > 0){
- text = '¥'+type.toFixed(2);
- }else if(type === -1){
- text = '到付';
- }else{
- text = '包邮';
- }
- return text
- },
- payTypeText(record) {
- //处理支付记录文字
- const map = {
- 12: '企业网银',
- 13: '微信支付',
- 14: '支付宝',
- 15: '微信支付',
- 16: '余额抵扣',
- }
- if(record.payType === 28 || record.payType === 29 ){
- return record.quickPayStr
- }else{
- return map[record.payType]
- }
- },
- toFixedFn:function(text){
- return Number(text).toFixed(2);
- },
- },
- mounted: function () {
- var _self = this;
- _self.payInfo.payLinkLogo= CAIMEI.getUrlParam('linkLogo');
- _self.LinkInfoOrderBank(_self.payInfo.payLinkLogo);
- }
- });
|