Explorar el Código

网银支付接口调用

yuwenjun hace 4 años
padre
commit
13f529f4b0

+ 1 - 1
src/main/resources/config/dev/application-dev.yml

@@ -53,7 +53,7 @@ logging:
 # 服务域名
 caimei:
   siteEnv: 0 #网站环境,(2:正式环境,1:测试环境,0:开发环境)
-  spiServer: https://spi-b.caimei365.com
+  spiServer: http://192.168.2.67:8008
   imageDomain: https://img-b.caimei365.com
   wwwDomain: https://www-b.caimei365.com
 

+ 15 - 3
src/main/resources/static/css/pay/caimei-pay.css

@@ -3,7 +3,7 @@
  */
 /*@media screen and (min-width:768px){*/
     .inner{width: 1184px;margin: 0 auto;}
-    .container{width: 100%;height: auto;float: left;margin-bottom: 30px;}
+    .container{width: 100%;height: auto;}
     .head-wrap{width: 100%;height: 81px;float: left;background-color: #FFFFFF;margin-bottom: 26px;}
     .head-wrap .inner{width:1184px;height: 81px;margin: 0 auto;    background-color: #FFFFFF;}
     .head-wrap .logo{width:68px;height: 81px;float: left;}
@@ -33,6 +33,11 @@
     .pay-goods .good-top .bot-right .bot-num span{font-size: 14px;color: #333333;}
     .pay-goods .good-top .bot-right .bot-num span.p{color: #333333;}
     .pay-goods .good-top .bot-right .bot-num span.red{color: #FF2A2A;}
+    .pay-goods .good-top .ws-count-price{font-size: 24px;padding-top: 25px}
+    .pay-goods .good-top .ws-count-price span.red{color: #FF2A2A;font-weight: bold}
+    .pay-goods .good-top .ws-bot-right{padding: 20px 0;float: left}
+    .pay-goods .good-top .ws-bot-right .bot-num{float: left;margin-right: 30px;}
+    .pay-goods .good-top .good-top-inner{float: unset;height: auto}
     .pay-goods{width: 100%;height: auto;float: left;background: #ffffff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
     .pay-goods .good-main{width: 100%;height: auto;float: left;}
     .pay-goods .good-main .list-title{width: 100%;height: 40px;padding: 0 20px;float: left;box-sizing: border-box;}
@@ -43,11 +48,12 @@
     .pay-goods .good-main .list-title .t-li:nth-child(4){width: 15%;}
     .pay-goods .good-main .list-title .t-li:nth-child(5){width: 15%;}
     .pay-goods .good-main .list-title .t-li:nth-child(6){width: 20%;}
+
     .pay-goods .good-main .list-container{width: 100%;height: auto;background: #ffffff;padding: 10px 20px;float: left;border-bottom: 1px solid #F7F7F7;opacity: 1;box-sizing: border-box;}
     .pay-goods .good-main .list-container.active{height: 0;opacity: 0;}
     .pay-goods .good-main .list-container .list-main{width: 100%;height: 48px;float: left;}
     .pay-goods .good-main .list-container .list-main.active{background-color: #F7F7F7;}
-    .pay-goods .good-main .list-container .list-main .t-li{font-size: 14px;color: #333333;line-height: 48px;float: left;text-align: center;display: flex;align-items: center;flex-direction: column;}
+    .pay-goods .good-main .list-container .list-main .t-li{position: relative; font-size: 14px;color: #333333;line-height: 48px;float: left;text-align: center;display: flex;align-items: center;flex-direction: column;}
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(1){width: 8%;}
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(2){width: 15%;}
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(3){width: 27%;text-align: justify;text-overflow:ellipsis;display: -webkit-box;word-break: break-all;-webkit-box-orient: vertical;-webkit-line-clamp: 1;overflow: hidden;}
@@ -55,6 +61,11 @@
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(5){width: 15%;}
     .pay-goods .good-main .list-container .list-main .t-li:nth-child(6){width: 20%;}
     .pay-goods .good-main .list-container .list-main .t-li img{width: 30px;height: 30px;border-radius: 5px;background-color: #f7f7f7;margin-top: 9px;}
+    .pay-goods .good-main .list-container .list-main .t-li .tag{display: block; position: absolute;z-index: 10;left: 50%;top: 33px;transform: translateX(-50%);width: 40px;font-size: 12px;background: #FF2A2A;color: #fff;line-height: 18px;text-align: center;border-radius: 0 0 4px 4px}
+    .pay-goods .good-main .ws-list-container .list-main {height: 60px !important;}
+    .pay-goods .good-main .ws-list-container .list-main .t-li img{width:40px;height: 40px;}
+    .pay-goods .good-main .list-total{text-align: right;font-size: 18px;padding: 20px 25px;float: right;margin-right: 60px}
+    .pay-goods .good-main .list-total span.red{color: #FF2A2A}
     .pay-ment{width: 100%;height: auto;float: left;margin-top: 20px;}
     .pay-ment .pay-message{width: 100%;height: 48px;box-sizing: border-box;line-height: 48px;float: left;background: #FFFFFF;padding: 0 20px;margin-bottom: 20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
     .pay-ment .pay-message .message-num{float: left;margin-right: 80px;font-size: 14px;color: #333333;}
@@ -93,11 +104,12 @@
     .pay-alert-content .pay-alert .content p{text-align: left;font-size: 14px;color: #666666;font-weight: normal;}
     .pay-alert-content .pay-alert .button{width: 100%;height: 32px;float: left;padding: 0 14px;box-sizing: border-box;}
     .pay-alert-content .pay-alert .button a{width: 90px;height: 32px;display: block;background: #E15616;border-radius: 2px;font-size: 14px;text-align: center;line-height: 32px;color: #FFFFFF;float: right;}
-    .pay-button-main{width: 100%;height: 72px;box-sizing: border-box;padding: 11px 0;background-color: #FFFFFF;float: left;border-bottom: 1px solid #EBEBEB;}
+    .pay-button-main{margin-top:30px;width: 100%;height: 72px;box-sizing: border-box;padding: 11px 0;background-color: #FFFFFF;float: left;border-bottom: 1px solid #EBEBEB;}
     .pay-button-main .pay-button{width: 100%;height: 50px;float: left;}
     .pay-button-main .pay-button a{width: 232px;height: 50px;display: block;background:linear-gradient(135deg,rgba(242,143,49,1) 0%,rgba(225,86,22,1) 100%);border-radius: 2px;font-size: 14px;line-height: 50px;text-align: center;color: #FFF6D9;float: right;}
     .pay-button-main .pay-button a.disabled{background: #EFEFEF;color:#999999;}
     .footTop{margin-top: 0;}
+
 /*}*/
 
 /**

+ 1 - 2
src/main/resources/static/js/common/ajax.service.js

@@ -11,8 +11,7 @@
 */
 var Http = {
         AjaxService : function(option){
-            // var NODE_ENV_BASE_URL = $("#spiServer").val();
-            var NODE_ENV_BASE_URL = 'http://192.168.2.68:8008';
+            var NODE_ENV_BASE_URL = $("#spiServer").val();
             var REV_TOKEN_ENV = '',REV_TOKEN_USERID='';
             var GET_LOGIN_STAUS = JSON.parse(window.localStorage.getItem("userInfo"));
             if (GET_LOGIN_STAUS != null) {

+ 11 - 2
src/main/resources/static/js/pay/caimei-pay.js

@@ -89,8 +89,11 @@ var payContainer = new Vue({
         isErrorShow:false,
         iconErrorClass:'',
         iconErrorText:'',
-        iconErrorMsgnone:''
-
+        iconErrorMsgnone:'',
+        organizeID:'',  //组织机构id
+        orderNo:'',      //订单号
+        orderTotalFee:'',
+        unpaidAmount:''  //真正的付款金额
     },
     filters: {
         NumFormat :function(value) {
@@ -117,12 +120,14 @@ var payContainer = new Vue({
             PayApi.PayOrderLinkData({linkLogo:linkLogo},function(response){
                 if(response.code == 0){
                     var _data = response.data;
+                    console.log(_data);
                     _self.payInfo.PAY_ORDERID = _data.orderPayLink.orderId;
                     _self.payInfo.PAY_UNPAIDAMOUNT = _data.orderPayLink.unpaidAmount;
                     _self.payInfo.PAY_TIME = decodeURI(_data.time);
                     _self.payInfo.PAY_PAYLINKTYPE = _data.orderPayLink.payType;
                     _self.payInfo.PAY_PAYLINKTYPETEXT =  _self.payInfo.PAY_PAYLINKTYPE == '1' ? '企业网银' : '个人网银';
                     _self.payInfo.PAY_USERTYPE =  _self.payInfo.PAY_PAYLINKTYPE == '1' ? 'ENTERPRISE' : 'USER';
+                    _self.unpaidAmount = _data.orderPayLink.unpaidAmount;
                     if(_data.code == 0){
                         setTimeout(function () {  //支付倒计时
                             _self.countTime(_self.payInfo.PAY_TIME)
@@ -163,6 +168,7 @@ var payContainer = new Vue({
         infoPayOrderCheckoutCounter:function(){//初始化订单数据
             var _self = this;
             PayApi.PayOrderCheckoutCounter({orderId:_self.payInfo.PAY_ORDERID},function(response){
+                console.log(response);
                 if(response.code == 0){
                     var data = response.data;
                     _self.discernReceiptList = data.discernReceipt;
@@ -174,6 +180,9 @@ var payContainer = new Vue({
                     _self.payTotalFee =  data.order.payTotalFee;
                     _self.receiptAmount=  data.order.receiptAmount;
                     _self.payableAmount =  _self.payInfo.PAY_UNPAIDAMOUNT;
+                    _self.organizeID = data.order.organizeID;
+                    _self.orderNo = data.order.orderNo;
+                    _self.orderTotalFee = data.order.orderTotalFee;
                     if(data.order.status == '7'){
                         _self.payment = _self.toFixedFn(_self.payTotalFee - _self.payableAmount);
                     }else{

+ 311 - 0
src/main/resources/static/js/pay/caimei-weisapay.js

@@ -0,0 +1,311 @@
+/**
+ *Created by ZHJY on 2020/7/14.
+ */
+var payContainer = new Vue({
+    el:"#payContainer",
+    data: {
+        isSubMitStatus:false,
+        payInfo:{
+            PAY_BANK_NUM:'ICBC_B2B',//银行网管信息
+            PAY_CODE:'',//链接状态
+            PAY_ORDERID:'',//主订单ID
+            PAY_UNPAIDAMOUNT:0,//本次支付金额
+            PAY_TIME:'',//链接失效时间
+            PAY_LINKLOGO:'',
+            PAY_PAYLINKTYPE:'',
+            PAY_USERTYPE:'',//网银支付类型
+            PAY_PAYLINKTYPETEXT:''//文案
+        },
+        B2BbankData:[
+            {imgUrl:'/img/pay/iconbank-01@2x.png',bankName:'中国工商银行',B2bNum:'ICBC_B2B',B2cNum:'ICBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-02@2x.png',bankName:'招商银行',B2bNum:'CMBCHINA_B2B',B2cNum:'CMBCHINA_B2C'},
+            {imgUrl:'/img/pay/iconbank-03@2x.png',bankName:'中国建设银行',B2bNum:'CCB_B2B',B2cNum:'CCB_B2C'},
+            {imgUrl:'/img/pay/iconbank-05@2x.png',bankName:'兴业银行',B2bNum:'CIB_B2B',B2cNum:'CIB_B2C'},
+            {imgUrl:'/img/pay/iconbank-06@2x.png',bankName:'中国民生银行',B2bNum:'CMBC_B2B',B2cNum:'CMBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-07@2x.png',bankName:'中国光大银行',B2bNum:'CEB_B2B',B2cNum:'CEB_B2C'},
+            {imgUrl:'/img/pay/iconbank-08@2x.png',bankName:'中国银行',B2bNum:'BOC_B2B',B2cNum:'BOC_B2C'},
+            {imgUrl:'/img/pay/iconbank-09@2x.png',bankName:'平安银行',B2bNum:'SZPA_B2B',B2cNum:'SZPA_B2C'},
+            {imgUrl:'/img/pay/iconbank-10@2x.png',bankName:'中信银行',B2bNum:'ECITIC_B2B',B2cNum:'ECITIC_B2C'},
+            {imgUrl:'/img/pay/iconbank-11@2x.png',bankName:'上海浦东发展银行',B2bNum:'SPDB_B2B',B2cNum:'SPDB_B2C'},
+            {imgUrl:'/img/pay/iconbank-12@2x.png',bankName:'华夏银行',B2bNum:'HXB_B2B',B2cNum:'HXB_B2C'},
+            {imgUrl:'/img/pay/iconbank-13@2x.png',bankName:'北京银行',B2bNum:'BCCB_B2B',B2cNum:'BCCB_B2C'},
+            {imgUrl:'/img/pay/iconbank-14@2x.png',bankName:'中国农业银行',B2bNum:'ABC_B2B',B2cNum:'ABC_B2C'},
+            {imgUrl:'/img/pay/iconbank-15@2x.png',bankName:'中国邮政储蓄银行',B2bNum:'PSBC_B2B',B2cNum:'PSBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-16@2x.png',bankName:'徽商银行',B2bNum:'HSB_B2B',B2cNum:'HSB_B2C'},
+            {imgUrl:'/img/pay/iconbank-17@2x.png',bankName:'青岛银行',B2bNum:'QDYH_B2B',B2cNum:'QDYH_B2C'},
+            {imgUrl:'/img/pay/iconbank-18@2x.png',bankName:'浙商银行',B2bNum:'CZ_B2B',B2cNum:'CZ_B2C'},
+            {imgUrl:'/img/pay/iconbank-19@2x.png',bankName:'齐鲁银行',B2bNum:'QLYH_B2B',B2cNum:'QLYH_B2C'},
+            {imgUrl:'/img/pay/iconbank-20@2x.png',bankName:'上海银行',B2bNum:'SHB_B2B',B2cNum:'SHB_B2C'},
+            {imgUrl:'/img/pay/iconbank-21@2x.png',bankName:'莱商银行',B2bNum:'ISBC_B2B',B2cNum:null},
+            {imgUrl:'/img/pay/iconbank-22@2x.png',bankName:'厦门银行',B2bNum:'XMCCB_B2B',B2cNum:null},
+            {imgUrl:'/img/pay/iconbank-23@2x.png',bankName:'晋商银行',B2bNum:null,B2cNum:'JSHB_B2C'}
+
+        ],
+        B2CbankData:[
+            {imgUrl:'/img/pay/iconbank-01@2x.png',bankName:'中国工商银行',B2bNum:'ICBC_B2B',B2cNum:'ICBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-02@2x.png',bankName:'招商银行',B2bNum:'CMBCHINA_B2B',B2cNum:'CMBCHINA_B2C'},
+            {imgUrl:'/img/pay/iconbank-03@2x.png',bankName:'中国建设银行',B2bNum:'CCB_B2B',B2cNum:'CCB_B2C'},
+            {imgUrl:'/img/pay/iconbank-05@2x.png',bankName:'兴业银行',B2bNum:'CIB_B2B',B2cNum:'CIB_B2C'},
+            {imgUrl:'/img/pay/iconbank-06@2x.png',bankName:'中国民生银行',B2bNum:'CMBC_B2B',B2cNum:'CMBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-07@2x.png',bankName:'中国光大银行',B2bNum:'CEB_B2B',B2cNum:'CEB_B2C'},
+            {imgUrl:'/img/pay/iconbank-08@2x.png',bankName:'中国银行',B2bNum:'BOC_B2B',B2cNum:'BOC_B2C'},
+            {imgUrl:'/img/pay/iconbank-09@2x.png',bankName:'平安银行',B2bNum:'SZPA_B2B',B2cNum:'SZPA_B2C'},
+            {imgUrl:'/img/pay/iconbank-10@2x.png',bankName:'中信银行',B2bNum:'ECITIC_B2B',B2cNum:'ECITIC_B2C'},
+            {imgUrl:'/img/pay/iconbank-11@2x.png',bankName:'上海浦东发展银行',B2bNum:'SPDB_B2B',B2cNum:'SPDB_B2C'},
+            {imgUrl:'/img/pay/iconbank-12@2x.png',bankName:'华夏银行',B2bNum:'HXB_B2B',B2cNum:'HXB_B2C'},
+            {imgUrl:'/img/pay/iconbank-13@2x.png',bankName:'北京银行',B2bNum:'BCCB_B2B',B2cNum:'BCCB_B2C'},
+            {imgUrl:'/img/pay/iconbank-14@2x.png',bankName:'中国农业银行',B2bNum:'ABC_B2B',B2cNum:'ABC_B2C'},
+            {imgUrl:'/img/pay/iconbank-15@2x.png',bankName:'中国邮政储蓄银行',B2bNum:'PSBC_B2B',B2cNum:'PSBC_B2C'},
+            {imgUrl:'/img/pay/iconbank-16@2x.png',bankName:'徽商银行',B2bNum:'HSB_B2B',B2cNum:'HSB_B2C'},
+            {imgUrl:'/img/pay/iconbank-17@2x.png',bankName:'青岛银行',B2bNum:'QDYH_B2B',B2cNum:'QDYH_B2C'},
+            {imgUrl:'/img/pay/iconbank-18@2x.png',bankName:'浙商银行',B2bNum:'CZ_B2B',B2cNum:'CZ_B2C'},
+            {imgUrl:'/img/pay/iconbank-19@2x.png',bankName:'齐鲁银行',B2bNum:'QLYH_B2B',B2cNum:'QLYH_B2C'},
+            {imgUrl:'/img/pay/iconbank-20@2x.png',bankName:'上海银行',B2bNum:'SHB_B2B',B2cNum:'SHB_B2C'},
+            {imgUrl:'/img/pay/iconbank-21@2x.png',bankName:'莱商银行',B2bNum:'ISBC_B2B',B2cNum:null},
+            {imgUrl:'/img/pay/iconbank-22@2x.png',bankName:'厦门银行',B2bNum:'XMCCB_B2B',B2cNum:null},
+            {imgUrl:'/img/pay/iconbank-23@2x.png',bankName:'晋商银行',B2bNum:null,B2cNum:'JSHB_B2C'}
+        ],
+        userName :'',
+        goodList:'',
+        freight :'',       //运费
+        discountFee:'',//经理折扣
+        balancePayFee:'',//余额抵扣
+        payTotalFee: '',   //合计
+        payableAmount:'',//本次支付金额
+        payment:'', //剩余支付金额
+        receiptAmount:'',//已支付金额
+        discernReceipt:'',//支付记录
+        discernReceiptList:[],//支付记录列表
+        orderProductList:[],//商品列表
+        paySuccessCounter:0,
+        tabIndex:0,
+        downHour:'00',//倒计时
+        downMinute:'00',//倒计分
+        downSecond:'00',//倒计秒
+        isSiled:false,
+        mbOrderId:'',
+        isRequest:false,
+        isPayAlert:false,
+        isErrorShow:false,
+        iconErrorClass:'',
+        iconErrorText:'',
+        iconErrorMsgnone:''
+
+    },
+    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){
+                console.log(response);
+                if(response.code === 0){
+                    var _data = response.data;
+                    _self.payInfo.PAY_ORDERID = _data.orderPayLink.orderId;
+                    _self.payInfo.PAY_UNPAIDAMOUNT = _data.orderPayLink.unpaidAmount;
+                    _self.payInfo.PAY_TIME = decodeURI(_data.time);
+                    _self.payInfo.PAY_PAYLINKTYPE = _data.orderPayLink.payType;
+                    _self.payInfo.PAY_PAYLINKTYPETEXT =  _self.payInfo.PAY_PAYLINKTYPE == '1' ? '企业网银' : '个人网银';
+                    _self.payInfo.PAY_USERTYPE =  _self.payInfo.PAY_PAYLINKTYPE == '1' ? 'ENTERPRISE' : 'USER';
+                    if(_data.code === 0){
+                        setTimeout(function () {  //支付倒计时
+                            _self.countTime(_self.payInfo.PAY_TIME)
+                        }, 1000);
+                        _self.infoPayOrderCheckoutCounter();
+                    }else{
+                        _self.isErrorShow = true;
+                        _self.isRequest = true;
+                        switch (_self.payInfo.PAY_CODE) {
+                            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.PayOrderCheckoutCounter({orderId:_self.payInfo.PAY_ORDERID},function(response){
+                if(response.code === 0){
+                    var data = response.data;
+                    _self.discernReceiptList = data.discernReceipt;
+                    _self.orderProductList = data.orderProductList;
+                    _self.userName =  data.userName;
+                    _self.freight =  _self.freightText(data.order.freight);
+                    _self.discountFee =  data.order.discountFee;
+                    _self.balancePayFee =  data.order.balancePayFee;
+                    _self.payTotalFee =  data.order.payTotalFee;
+                    _self.receiptAmount=  data.order.receiptAmount;
+                    _self.payableAmount =  _self.payInfo.PAY_UNPAIDAMOUNT;
+                    if(data.order.status === '7'){
+                        _self.payment = _self.toFixedFn(_self.payTotalFee - _self.payableAmount);
+                    }else{
+                        _self.payment = _self.toFixedFn(_self.payTotalFee - _self.receiptAmount - _self.payableAmount);
+                    }
+                    _self.paySuccessCounter = data.order.paySuccessCounter;
+                    _self.isRequest = true;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        PaySubmitFn:function(){//立即支付
+            var _self = this;
+            if(_self.payInfo.PAY_BANK_NUM == ''){
+                layer.msg('请选择银行!');
+                return;
+            }
+            var params = {
+                    payWay:'UNIONPAY',
+                    payAmount: _self.payInfo.PAY_UNPAIDAMOUNT*100,
+                    bankCode:_self.payInfo.PAY_BANK_NUM,
+                    returnUrl:'https://www.caimei365.com/',
+                    orderId:_self.payInfo.PAY_ORDERID,
+                    userType:_self.payInfo.PAY_USERTYPE
+                };
+            _self.PayOrderPcMallPay(params);
+        },
+        PayOrderPcMallPay:function(params){//网银支付请求
+            var _self = this;
+            _self.isSubMitStatus=true;
+            PayApi.PayOrderPcMallPay(params,function(response){
+                if(response.code == 0){
+                    _self.isPayAlert = true;
+                    _self.mbOrderId = response.data.data.mbOrderId;
+                    window.open(response.data.data.payUrl);
+                    _self.isSubMitStatus=false;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                    _self.isSubMitStatus=false;
+                }
+            })
+        },
+        RefreshBody:function(){//刷新弹窗
+            var _self = this;
+            _self.isPayAlert = false;
+            PayApi.PayOrderFindOrderStatus({mbOrderId:_self.mbOrderId},function(response){
+                _self.isPayAlert = false;
+                var data = response.data.data;
+                if(data.status === '1'){
+                    window.location.href = '/pay/success.html?pageType=wechat&type=success&payAmount='+ _self.payInfo.PAY_UNPAIDAMOUNT;
+                }else{
+                    window.location.href = '/pay/success.html?pageType=wechat&type=error&payAmount='+ _self.payInfo.PAY_UNPAIDAMOUNT;
+                }
+            });
+        },
+        changeTab:function(index,item){// 选择银行
+            this.tabIndex = index;
+            if( this.payInfo.PAY_PAYLINKTYPE == '1'){
+                this.payInfo.PAY_BANK_NUM = item.B2bNum;
+            }else{
+                this.payInfo.PAY_BANK_NUM = item.B2cNum;
+            }
+        },
+        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:function(state){//处理支付记录文字
+            var stateText = '',
+                stateTextObject={
+                    12:'企业网银',
+                    13:'微信支付',
+                    14:'支付宝',
+                    15:'微信支付',
+                    16:'余额抵扣'
+                };
+            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;
+        _self.payInfo.PAY_LINKLOGO= CAIMEI.getUrlParam('linkLogo');
+        _self.LinkInfoOrderBank(_self.payInfo.PAY_LINKLOGO);
+
+    }
+});

+ 2 - 0
src/main/resources/static/js/product/qualityauthorize.js

@@ -35,6 +35,7 @@ var qualityAuthorize = new Vue({
            ProductApi.GetAuthProductDeatil({productId:this.productId},function(res){
                 if(res.code === 0){
                     _that.parameters = res.data;
+                    console.log(_that.parameters)
                 }
            });
         },
@@ -61,5 +62,6 @@ var qualityAuthorize = new Vue({
         var pathname = window.location.pathname;
         this.productId = pathname.split('-')[1].split('.')[0];
         this.initParams();
+
     }
 });

+ 95 - 46
src/main/resources/templates/pay/caimei-pay.html

@@ -27,63 +27,112 @@
                     </div>
                 </div>
             </div>
-            <div class="pay-goods">
-                <div class="good-top">
-                    <div class="good-top-inner">
-                        <div class="bot-right">
-                            <div class="bot-num"><span>运费:</span><span class="p" id="freight">{{freight}}</span></div>
-                            <div class="bot-num"><span>经理折扣:</span><span class="p" id="discountFee">¥{{discountFee | NumFormat}}</span></div>
-                            <div class="bot-num"><span>余额抵扣:</span><span class="p" id="balancePayFee">¥{{balancePayFee | NumFormat}}</span></div>
-                            <div class="bot-num"><span>合计:</span><span class="red" id="payTotalFee">¥{{payTotalFee | NumFormat}}</span></div>
+            <!-- 维沙 -->
+             <template v-if="organizeID === 3">
+                <div class="pay-goods">
+                    <div class="good-top">
+                        <div class="good-top-inner ws">
+                            <div class="ws-count-price"><span>支付总额:</span><span class="red">¥{{unpaidAmount | NumFormat}}</span></div>
+                            <div>
+                                <div class="ws-bot-right">
+                                    <div class="bot-num"><span>订单号:</span><span class="p">{{orderNo}}</span></div>
+                                    <div class="bot-num"><span>运费:</span><span class="p" id="freight">{{freight}}</span></div>
+                                    <div class="bot-num"><span>经理折扣:</span><span class="p" id="discountFee">¥{{discountFee | NumFormat}}</span></div>
+                                    <div class="bot-num"><span>订单金额:</span><span class="red" id="payTotalFee">¥{{unpaidAmount | NumFormat}}</span></div>
+                                    <div style="clear:both"></div>
+                                </div>
+                                <div class="bot-left" id="goodSlideToggle"@click="slideToggleContent">
+                                    <i class="icon-down" :class="isSiled ? 'roter' : '' "></i>
+                                    <p id="iconText">{{isSiled ? '点击箭头收起订单商品' :'点击箭头展开订单商品'}}</p>
+                                </div>
+                                <div style="clear:both"></div>
+                            </div>
                         </div>
-                        <div class="bot-left" id="goodSlideToggle"@click="slideToggleContent">
-                            <i class="icon-down" :class="isSiled ? 'roter' : '' "></i>
-                            <p id="iconText">{{isSiled ? '点击箭头收起订单商品' :'点击箭头展开订单商品'}}</p>
+                    </div>
+                    <div class="good-main" v-if="isSiled">
+                        <div class="list-title">
+                            <div class="t-li"><p>序号</p></div>
+                            <div class="t-li"><p>商品图片</p></div>
+                            <div class="t-li"><p>商品名称</p></div>
+                            <div class="t-li"><p>单价</p></div>
+                            <div class="t-li"><p>数量</p></div>
+                            <div class="t-li"><p>总价</p></div>
+                        </div>
+                        <div class="list-container ws-list-container" id="goodsContainer">
+                            <div class="list-main" v-for="(item, index) in orderProductList" :key="index" :class="{'active':index%2 != 1}">
+                                <div class="t-li"><p>{{index+1}}</p></div>
+                                <div class="t-li"><span class="tag" v-if="item.productType === '1' || item.productType === '2'">赠品</span> <img :src="item.productImage" :alt="item.name"></div>
+                                <div class="t-li"><p>{{item.name}}</p></div>
+                                <div class="t-li"><p>¥{{item.price | NumFormat}}</p></div>
+                                <div class="t-li"><p>{{item.num}}</p></div>
+                                <div class="t-li"><p>¥{{item.totalFee | NumFormat}}</p></div>
+                            </div>
                         </div>
+                        <div class="list-total"> <span>合计:</span><span class="red">¥{{orderTotalFee | NumFormat}}</span></div>
+                        <div style="clear: both"></div>
                     </div>
                 </div>
-                <div class="good-main" v-if="isSiled">
-                    <div class="list-title">
-                        <div class="t-li"><p>序号</p></div>
-                        <div class="t-li"><p>商品图片</p></div>
-                        <div class="t-li"><p>商品名称</p></div>
-                        <div class="t-li"><p>单价</p></div>
-                        <div class="t-li"><p>数量</p></div>
-                        <div class="t-li"><p>总价</p></div>
+            </template>
+            <!-- 采美 -->
+            <template v-else>
+                <div class="pay-goods">
+                    <div class="good-top">
+                        <div class="good-top-inner">
+                            <div class="bot-right">
+                                <div class="bot-num"><span>运费:</span><span class="p" id="freight">{{freight}}</span></div>
+                                <div class="bot-num"><span>经理折扣:</span><span class="p" id="discountFee">¥{{discountFee | NumFormat}}</span></div>
+                                <div class="bot-num"><span>余额抵扣:</span><span class="p" id="balancePayFee">¥{{balancePayFee | NumFormat}}</span></div>
+                                <div class="bot-num"><span>合计:</span><span class="red" id="payTotalFee">¥{{payTotalFee | NumFormat}}</span></div>
+                            </div>
+                            <div class="bot-left" id="goodSlideToggle"@click="slideToggleContent">
+                                <i class="icon-down" :class="isSiled ? 'roter' : '' "></i>
+                                <p id="iconText">{{isSiled ? '点击箭头收起订单商品' :'点击箭头展开订单商品'}}</p>
+                            </div>
+                        </div>
                     </div>
-                    <div class="list-container" id="goodsContainer">
-                        <div class="list-main" v-for="(item, index) in orderProductList" :key="index" :class="{'active':index%2 != 1}">
-                            <div class="t-li"><p>{{index+1}}</p></div>
-                            <div class="t-li"><img :src="item.productImage" :alt="item.name"></div>
-                            <div class="t-li"><p>{{item.name}}</p></div>
-                            <div class="t-li"><p>¥{{item.price | NumFormat}}</p></div>
-                            <div class="t-li"><p>{{item.num}}</p></div>
-                            <div class="t-li"><p>¥{{item.totalFee | NumFormat}}</p></div>
+                    <div class="good-main" v-if="isSiled">
+                        <div class="list-title">
+                            <div class="t-li"><p>序号</p></div>
+                            <div class="t-li"><p>商品图片</p></div>
+                            <div class="t-li"><p>商品名称</p></div>
+                            <div class="t-li"><p>单价</p></div>
+                            <div class="t-li"><p>数量</p></div>
+                            <div class="t-li"><p>总价</p></div>
+                        </div>
+                        <div class="list-container" id="goodsContainer">
+                            <div class="list-main" v-for="(item, index) in orderProductList" :key="index" :class="{'active':index%2 != 1}">
+                                <div class="t-li"><p>{{index+1}}</p></div>
+                                <div class="t-li"><img :src="item.productImage" :alt="item.name"></div>
+                                <div class="t-li"><p>{{item.name}}</p></div>
+                                <div class="t-li"><p>¥{{item.price | NumFormat}}</p></div>
+                                <div class="t-li"><p>{{item.num}}</p></div>
+                                <div class="t-li"><p>¥{{item.totalFee | NumFormat}}</p></div>
+                            </div>
                         </div>
                     </div>
                 </div>
-            </div>
-            <div class="pay-ment">
-                <div class="pay-message">
-                    <div class="message-num"><span>本次支付金额:</span><span class="red" id="payableAmount">¥{{payableAmount | NumFormat}}</span></div>
-                    <div class="message-num"><span>剩余支付金额:</span><span class="red" id="payment">¥{{payment | NumFormat}}</span></div>
-                    <div class="message-num"><span>已支付:</span><span class="red" id="receiptAmount">¥{{receiptAmount | NumFormat}}</span></div>
-                </div>
-                <div class="pay-record">
-                    <div class="record-title">支付记录</div>
-                    <div class="record-content clear" id="discernReceipt">
-                        <div class="record-li none" v-if="discernReceiptList.length== 0">暂无支付记录</div>
-                        <div class="record-li" v-for="(item, index) in discernReceiptList" :key="index" v-else>
-                            <div class="record-tb">¥{{item.receiptAmount | NumFormat}}</div>
-                            <div class="record-tb">{{payTypeText(item.payType)}}</div>
-                            <div class="record-tb">{{item.receiptDate}}</div>
-                            <div class="record-tb"></div>
-                            <div class="record-tb"></div>
-                            <div class="record-tb"></div>
+                <div class="pay-ment">
+                    <div class="pay-message">
+                        <div class="message-num"><span>本次支付金额:</span><span class="red" id="payableAmount">¥{{payableAmount | NumFormat}}</span></div>
+                        <div class="message-num"><span>剩余支付金额:</span><span class="red" id="payment">¥{{payment | NumFormat}}</span></div>
+                        <div class="message-num"><span>已支付:</span><span class="red" id="receiptAmount">¥{{receiptAmount | NumFormat}}</span></div>
+                    </div>
+                    <div class="pay-record">
+                        <div class="record-title">支付记录</div>
+                        <div class="record-content clear" id="discernReceipt">
+                            <div class="record-li none" v-if="discernReceiptList.length== 0">暂无支付记录</div>
+                            <div class="record-li" v-for="(item, index) in discernReceiptList" :key="index" v-else>
+                                <div class="record-tb">¥{{item.receiptAmount | NumFormat}}</div>
+                                <div class="record-tb">{{payTypeText(item.payType)}}</div>
+                                <div class="record-tb">{{item.receiptDate}}</div>
+                                <div class="record-tb"></div>
+                                <div class="record-tb"></div>
+                                <div class="record-tb"></div>
+                            </div>
                         </div>
                     </div>
                 </div>
-            </div>
+            </template>
             <div class="pay-bank">
                 <div class="bank-title">请选择以下一家银行进行付款<span class="color">(请在倒计时时间内使用<span class="big"> {{ payInfo.PAY_PAYLINKTYPETEXT }} </span>完成本次支付)</span></div>
                 <div class="bank-list" id="bankContent" v-if="payInfo.PAY_PAYLINKTYPE == '1'">

+ 1 - 1
src/main/resources/templates/pay/caimei-wisapay.html

@@ -130,6 +130,6 @@
 <script src="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/pay.service.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/lib/qrcode.min.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/pay/caimei-pay.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/pay/caimei-weisapay.js(v=${version})}"></script>
 </body>
 </html>

+ 1 - 1
src/main/resources/templates/product/qualityauthorize.html

@@ -60,7 +60,7 @@
             </div>
           </div>
 
-          <p>该仪器由{{parameters.agentName ? parameters.agentName : parameters.name}}授予{{parameters.authParty}}正品拥有</p>
+          <p>该仪器由{{parameters.agentName ? parameters.agentName : parameters.brandName}}授予{{parameters.authParty}}正品拥有</p>
 
           <div class="pink-box sn-number">
             <div class="item-row">