@@ -1,858 +0,0 @@
< template >
< div class = "pay" >
< div v-if = "!isScan" >
< van -cell -group >
< van-field v-model = "underWriteData.riskName" type="textarea" autosize readonly label="产品名称:" class="projuct" / >
< van-field v-model = "underWriteData.schemeName" readonly label="保障方案:" class="projuct" / >
< van-field v-if = "!isWeixin" v-model="underWriteData.appntName" readonly label="投保人姓名:" class="projuct" / >
< div v-for = "(item, index) in underWriteData.insuredName" :key="index" >
< van -field v-if = "!isWeixin" v-model="item.name" readonly label="被保人姓名:" class="projuct" / >
< / div >
< van-field : value = "underWriteData.orderAmount == undefined ? '' : `${underWriteData.orderAmount} 元`" readonly label = "支付金额:" / >
< / van-cell-group >
<!-- 银行卡支付开始 -- >
<!-- < div class = "money" >
< div >
< img src = "../../../assets/images/u10280.png" alt style = "margin-top:-5px;margin-right:10px;" / >
< span class = "oi" > 银行卡支付 < / span >
< / div >
< div class = "i mr20" >
< van-radio-group v-model = "radio" class="flex justify-content-fe"><van-radio name="1" > < / van -radio > < / van-radio-group >
< / div >
< / div > -- >
< div v-if = "isWeixin" >
< van -cell -group class = "flex align-items-c" >
< img :src = "src" class = "pl10" / >
< van-cell title = "银行卡支付" clickable >
<!-- < van-checkbox v-model = "checked" class="flex justify-content-fe" > < / van -checkbox > -- >
< van-radio-group v-model = "radio" class="flex justify-content-fe" >
< van -radio name = "" > < / van-radio >
< / van-radio-group >
< / van-cell >
< / van-cell-group >
< van-cell-group class = "flex align-items-c" >
< img :src = "vxSrc" class = "vximg" / >
< van-cell title = "微信支付" clickable >
< van-radio-group v-model = "radio" class="flex justify-content-fe" >
< van -radio name = "3" @click ="vxVerify" > < / van -radio >
< / van-radio-group >
< / van-cell >
< / van-cell-group >
< / div >
<!-- 银行卡支付结束 -- >
< van-cell-group v-if = "radio != '3'" >
< van -field
v-model = "underWriteData.appntName"
label = "姓名"
name = "姓名"
readonly
placeholder = "请输入"
v-validate = "'required|name'"
maxlength = "6"
clearable
required
/ >
< template v-if = "noEdit" >
< van -field
v-model = "underWriteData.bankCode"
maxlength = "19"
readonly
label = "银行卡号"
name = "银行卡号"
placeholder = "请输入"
required
clearable
v-validate = "'required|bankCard'"
data -vv -name = " 银行卡号 "
>
< / van-field >
< van-field
:value = "bankListName"
label = "开户银行"
name = "开户银行"
placeholder = "请输入"
v-validate = "'required'"
readonly
right -icon = " arrow "
data -vv -name = " 开户银行 "
required
/ >
< / template >
< template v-else >
< van -field
v-model = "underWriteData.bankCode"
maxlength = "19"
label = "银行卡号"
name = "银行卡号"
placeholder = "请输入"
required
clearable
v-validate = "'required|bankCard'"
data -vv -name = " 银行卡号 "
>
< van-button v-if = "!isWeixin" slot="button" size="small" type="danger" round @click="cardScanning('0')" > 银行卡扫描 < / van -button >
< / van-field >
< van-field
:value = "bankListName"
label = "开户银行"
name = "开户银行"
placeholder = "请输入"
v-validate = "'required'"
readonly
@click ="focus"
right -icon = " arrow "
data -vv -name = " 开户银行 "
required
/ >
< van-field
v-model = "areaStr"
label = "开户银行省市"
placeholder = "请选择"
required
@click ="areaSelect"
readonly
v-validate = "'required'"
data -vv -name = " 开户银行省市 "
/ >
< / template >
<!-- < van-field v-model = "bank" label="开户银行" placeholder="请选择" required @click="focus" readonly v-validate="'required'" data-vv-name="开户银行" / > -- >
< / van-cell-group >
<!-- 第三方支付所需表单 -- >
< form ref = "payForm" :action = "formActionUrl" method = "post" >
< input name = "TransSource" type = "hidden" v-model = "payParam.TransSource" / >
< input name = "TransDate" type = "hidden" v-model = "payParam.TransDate" / >
< input name = "TransTime" type = "hidden" v-model = "payParam.TransTime" / >
< input name = "TransSeq" type = "hidden" v-model = "payParam.TransSeq" / >
< input name = "Version" type = "hidden" v-model = "payParam.Version" / >
< input name = "RdSeq" type = "hidden" v-model = "payParam.RdSeq" / >
< input name = "PaymentCode" type = "hidden" v-model = "payParam.PaymentCode" / >
< input name = "PayType" type = "hidden" v-model = "payParam.PayType" / >
< input name = "SettleMode" type = "hidden" v-model = "payParam.SettleMode" / >
< input name = "ApplyEntity" type = "hidden" v-model = "payParam.ApplyEntity" / >
< input name = "Cur" type = "hidden" v-model = "payParam.Cur" / >
< input name = "OurAmount" type = "hidden" v-model = "payParam.OurAmount" / >
< input name = "FixUser" type = "hidden" v-model = "payParam.FixUser" / >
< input name = "Insurer" type = "hidden" v-model = "payParam.Insurer" / >
< input name = "CertType" type = "hidden" v-model = "payParam.CertType" / >
< input name = "CertNum" type = "hidden" v-model = "payParam.CertNum" / >
< input name = "OppBank" type = "hidden" v-model = "payParam.OppBank" / >
< input name = "OppAct" type = "hidden" v-model = "payParam.OppAct" / >
< input name = "OppActName" type = "hidden" v-model = "payParam.OppActName" / >
< input name = "CellPhone" type = "hidden" v-model = "payParam.CellPhone" / >
< input name = "ExpireDate" type = "hidden" v-model = "payParam.ExpireDate" / >
< input name = "Purpose" type = "hidden" v-model = "payParam.Purpose" / >
< input name = "Memo" type = "hidden" v-model = "payParam.Memo" / >
< input name = "Description" type = "hidden" v-model = "payParam.Description" / >
< input name = "SourceNotecode" type = "hidden" v-model = "payParam.SourceNotecode" / >
< input name = "ReturnURL" type = "hidden" v-model = "payParam.ReturnURL" / >
< input name = "NotifyURL" type = "hidden" v-model = "payParam.NotifyURL" / >
< input name = "SaleChannel" type = "hidden" v-model = "payParam.SaleChannel" / >
< input name = "ReqReserved1" type = "hidden" v-model = "payParam.ReqReserved1" / >
< input name = "ReqReserved2" type = "hidden" v-model = "payParam.ReqReserved2" / >
< input name = "ReqReserved3" type = "hidden" v-model = "payParam.ReqReserved3" / >
< input name = "ReqReserved4" type = "hidden" v-model = "payParam.ReqReserved4" / >
< input name = "ReqReserved5" type = "hidden" v-model = "payParam.ReqReserved5" / >
< input name = "S3Sign" type = "hidden" v-model = "payParam.S3Sign" / >
< / form >
< div class = "bg-white bottom-btn" v-if = "!isWeixin" >
< ! - - < van -button type = "danger" style = "width: 100vw;height: 13vw" @click ="pay" v-no-more-click = "1000" > 支付 < / van -button > -- >
< van-button type = "danger" style = "width: 100vw; height: 13vw" @click ="share" v-no-more-click = "1000" > 支付分享 < / van -button >
< / div >
< div class = "bg-white bottom-btn" v-else >
< van -button type = "danger" size = "large" @click ="pay" v-no-more-click = "1000" > 支付 < / van -button >
< / div >
< / div >
<!-- 银行卡扫描按钮 -- >
< van-popup v-model = "isScan" style="height: 100vh" position="bottom" >
< BankCardScan :scanShow = "isScan" :clear = "isClear" @getScanInfo ="getBankCardInfo" > < / BankCardScan >
< / van -popup >
<!-- 开户银行选择 -- >
< van-popup v-model = "show" position="bottom" style="height: 354px" >
< van -list >
< van-cell v-for = "item in bankList" :key="item.code" :title="item.bankName" class="text-center" @click="clickList(item.bankName, item.code)" / >
< / van-list >
< / van-popup >
< van-popup position = "bottom" v-model = "isAreaListShow" :lazy-render="false" >
< van -area
ref = "areaSelect"
title = "请选择省市"
:visible-item-count = "4"
:columns-num = "2"
:area-list = "areaList"
@confirm ="setBankArea"
@cancel ="isAreaListShow = false"
/ >
< / van-popup >
<!-- 分享到微信的页面loading -- >
<!-- < Loading :isLoading = "isLoading" > < / Loading > -- >
< / div >
< / template >
< script >
import Vue from 'vue'
import { Field , Checkbox , CheckboxGroup , RadioGroup , Radio , Popup , CellGroup , Button , List , Cell , Dialog } from 'vant'
Vue . use ( Checkbox ) . use ( CheckboxGroup )
Vue . use ( Field )
Vue . use ( Button )
import { acceptInsurance , getBankList , underWrite , getOrderDetail } from '@/api/ebiz/sale/sale'
import { saveOrUpdateAccount , getPayTemp , getShareParam } from '@/api/ebiz/cardList/cardList.js'
import BankCardScan from '@/components/ebiz/sale/BankCardScan'
import areaList from '@/assets/js/utils/area'
import Loading from '@/components/ebiz/Loading'
import config from '@/config'
export default {
name : 'pay' ,
components : {
BankCardScan ,
[ Popup . name ] : Popup ,
[ CellGroup . name ] : CellGroup ,
[ Field . name ] : Field ,
[ List . name ] : List ,
[ Cell . name ] : Cell ,
[ RadioGroup . name ] : RadioGroup ,
[ Radio . name ] : Radio ,
Loading
} ,
data ( ) {
let isWeixin = this . $utils . device ( ) . isWeixin //判断环境
return {
// 银行卡支付图片地址
src : this . $assetsUrl + 'images/cardImg.png' ,
// 微信支付图片地址
vxSrc : this . $assetsUrl + 'images/vxImg.png' ,
// trialList: JSON.parse(localStorage.trialList),
// 核保数据
orderStatus : '' ,
underWriteData : {
appntName : '' , //产品名称
orderAmount : '' , //支付金额
name : '' ,
bankCode : '' , //银行卡号
bankName : '' , //开户银行
schemeName : '' //保障金额
} ,
radio : '3' ,
result : [ ] ,
isScan : false , //是否显示证件扫描组件
isClear : false , //是否清空
show : false , // 银行列表弹框
bankList : [ ] , // 银行卡列表
bankListName : '' , // 银行列表ID
formActionUrl : config . payUrl , // 支付表单
payParam : {
TransSource : '' , // 对接系统
TransDate : '' , // 请求日期
TransTime : '' , // 请求时间
TransSeq : '' , // 时间戳
Version : '' , // 版本号
RdSeq : '' , // 指令流水号
PaymentCode : '' , // 业务唯一号
PayType : '' , // 交易类型
SettleMode : '' , // 支付方式
ApplyEntity : '' , // 业务发生机构
Cur : '' , // 币种
OurAmount : '' , // 金额
FixUser : '' , // 实名认证标识
Insurer : '' , // 对接系统
CertType : '' , // 证件类型
CertNum : '' , // 证件号码
OppBank : '' , // 交易方银行
OppAct : '' , // 交易方账号
OppActName : '' , // 交易方名称
CellPhone : '' , // 手机号码
ExpireDate : '' , // 订单失效时间
Purpose : '' , // 用途
Memo : '' , // 备注
Description : '' , // 描述
SourceNotecode : '' , // 外部系统业务单据号
ReturnURL : '' , // 页面跳转同步通知地址
NotifyURL : '' , // 后台通知地址
SaleChannel : '' , // 销售渠道
ReqReserved1 : '' , // 备用字段1
ReqReserved2 : '' , // 备用字段2
ReqReserved3 : '' , // 备用字段3
ReqReserved4 : '' , // 备用字段4
ReqReserved5 : '' , // 备用字段5
S3Sign : '' , // 验签信息
tradeState : '' // 状态
} ,
gotPayParam : false , // 是否已正确获取支付参数,
payStatus : '' , // 接口返回的支付状态
noEdit : false , //是否为编辑
isWeixin , // 是否为微信环境
isLoading : false , // 分享到微信后的页面loading
areaList ,
isAreaListShow : false ,
accBankProvince : '' ,
accBankCity : '' ,
areaStr : '' ,
isGroupCard : '' //1 团险标识
}
} ,
created ( ) {
if ( this . isWeixin ) {
let orderDetail = JSON . parse ( sessionStorage . orderDetail )
this . underWriteData = {
riskName : orderDetail . insuredDTOs [ 0 ] . riskDTOLst [ 0 ] . riskName ,
appntName : orderDetail . appntDTO . name ,
insuredName : orderDetail . insuredDTOs ,
orderAmount : orderDetail . orderInfoDTO . orderAmount ,
schemeName : orderDetail . insuredDTOs [ 0 ] . riskDTOLst [ 0 ] . proScheme ,
idType : orderDetail . appntDTO . idType ,
bankCode : orderDetail . orderAccountDTO . cardBookCode ,
cardBookCode : orderDetail . orderAccountDTO . cardBookCode ,
bankName : orderDetail . orderAccountDTO . bankCode
}
this . bankListName = orderDetail . orderAccountDTO . bankName
this . orderStatus = orderDetail . orderInfoDTO . orderStatus
localStorage . orderNo = orderDetail . orderInfoDTO . orderNo
// this.radio = '3'
// this.isLoading = true
// this.$toast.loading({
// duration: 0, // 持续展示 toast
// forbidClick: true, // 禁用背景点击
// loadingType: 'spinner',
// message: '加载中……'
// })
// setTimeout(() => {
// this.pay()
// }, 500)
} else {
document . title = '支付分享'
// 再次支付 调详情 获取信息
this . getOrderDetail ( )
}
} ,
mounted ( ) {
setTimeout ( ( ) => {
// eslint-disable-next-line no-undef
EWebBridge . webCallAppInJs ( 'webview_left_button' , {
img : this . $assetsUrl + 'images/del-close-btn@3x.png' ,
intercept : '1' //是否拦截原生返回事件 1是 其他否
} )
} , 100 )
// window.appCallBack = this.appCallBack
// console.log('trialList', this.trialList[0].prem)
// this.underWrite.orderAmount = this.trialList[0].prem
document . body . style . backgroundColor = '#fff'
window . appCallBack = this . appCallBack
// 获取银行卡
this . getBankList ( )
// 不在微信环境下
if ( ! this . isWeixin ) {
// this.getOrderDetail()
// console.log('----保融form.action', config.payUrl)
// if (localStorage.salelist == '1') {
// 第一次支付 调核保获取
// this.underWrite()
// this.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
// } else {
// 再次支付 调详情 获取信息
this . getOrderDetail ( )
// this.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
// }
// console.log('--自核结果--支付信息:', JSON.stringify(this.underWriteData))
this . getPayTemp ( )
}
} ,
beforeRouteLeave ( to , from , next ) {
document . body . style . backgroundColor = ''
next ( )
} ,
destroyed ( ) {
setTimeout ( ( ) => {
// eslint-disable-next-line no-undef
EWebBridge . webCallAppInJs ( 'webview_left_button' , {
intercept : '0' //是否拦截原生返回事件 1是 其他否
} )
// window.appCallBack = this.appCallBack
} , 100 )
} ,
methods : {
appCallBack ( data ) {
if ( data . trigger == 'left_button_click' ) {
return this . $dialog
. confirm ( {
className : 'dialog-delete' ,
title : '提示' ,
message : '是否确认退出?' ,
cancelButtonColor : '#E9332E' ,
confirmButtonColor : '#FFFFFF'
} )
. then ( ( ) => {
this . $jump ( {
flag : 'h5' ,
extra : {
title : '产品列表' ,
forbidSwipeBack : 1 , //当前页面禁止右滑返回
url : location . origin + ` /#/cardList/CardTotreasure `
} ,
routerInfo : {
path : ` /cardList/CardTotreasure ` ,
type : '1'
}
} )
} )
. catch ( ( ) => {
return
} )
} else {
// 筛选按钮的点击事件
this . $jump ( {
flag : 'navigation' ,
extra : {
title : '支付' ,
hiddenRight : '1'
}
} )
this . isScan = false
}
} ,
areaSelect ( ) {
this . isAreaListShow = true
this . $refs [ 'areaSelect' ] . reset ( '450000' )
} ,
//选择开户银行省市
setBankArea ( areaInfo ) {
let province = areaInfo [ 0 ]
let city = areaInfo [ 1 ]
this . accBankProvince = province . code
this . accBankCity = city . code
this . isAreaListShow = false
this . areaStr = ` ${ province . name } - ${ city . name } `
} ,
//获取银行卡扫描信息
getBankCardInfo ( data ) {
this . underWriteData . bankCode = data . name
this . $jump ( {
flag : 'navigation' ,
extra : {
title : '账户信息' ,
hiddenRight : '1'
}
} )
this . isScan = false
} ,
// 银行卡扫描
cardScanning ( cardScanningType ) {
window . localStorage . setItem ( 'cardScanningType' , cardScanningType )
document . body . style . backgroundColor = '#F5F5F5'
let title = ''
this . isclear = false
; [ this . isScan , title ] = [ true , '银行卡扫描' ]
setTimeout ( ( ) => {
this . $jump ( {
flag : 'navigation' ,
extra : {
title ,
hiddenLeft : '1'
}
} )
this . closeBtn ( )
} , 400 )
} ,
closeBtn ( ) {
// 筛选按钮的显示
this . $jump ( {
flag : 'webview_right_button' ,
extra : {
btns : [
{
img : this . $assetsUrl + 'images/del-close.png' ,
route : { flag : '' , extra : { } }
}
]
}
} )
} ,
// 获取银行列表的focus
focus ( ) {
// if (this.orderStatus == '56') {
this . show = true
// }
} ,
// 获取银行卡列表
getBankList ( ) {
let self = this
let data = {
operateType : 'bank_type'
}
getBankList ( data ) . then ( res => {
if ( res . result == '0' ) {
console . log ( '银行卡列表' , res . content )
self . bankList = res . content
} else {
this . $toast ( res . resultMessage )
}
} )
} ,
// 选择银行卡
clickList ( item , bankCode ) {
console . log ( '英航卡' , item , bankCode )
this . bankListName = item
this . underWriteData . bankName = bankCode
this . show = false
} ,
getPayTemp ( ) {
getPayTemp ( { orderNo : window . localStorage . getItem ( 'orderNo' ) } )
. then ( res => {
if ( res . result == '0' ) {
this . noEdit = res . content . flag != 'false'
}
} )
. catch ( e => {
console . error ( e )
} )
} ,
// 获取支付详情
getOrderDetail ( ) {
getOrderDetail ( { orderNo : window . localStorage . getItem ( 'orderNo' ) } ) . then ( res => {
if ( res . result == '0' ) {
this . orderStatus = res . orderDTO . orderInfoDTO . orderStatus
try {
if ( this . noEdit ) {
if ( res . orderDTO . paymentDTO . cardBookType == '3' ) {
this . radio = '3'
} else {
this . radio = ''
}
}
} catch ( e ) {
//TODO handle the exception
}
this . $toast . clear ( )
this . underWriteData = {
riskName : res . orderDTO . insuredDTOs [ 0 ] . riskDTOLst [ 0 ] . riskName ,
appntName : res . orderDTO . appntDTO . name ,
insuredName : res . orderDTO . insuredDTOs ,
// bankName: res.orderDTO.orderAccountDTO.bankCode,
// bankCode: res.orderDTO.orderAccountDTO.cardBookCode,
// cardBookCode: res.orderDTO.orderAccountDTO.cardBookCode,
schemeName : res . orderDTO . insuredDTOs [ 0 ] . riskDTOLst [ 0 ] . proScheme ,
idType : res . orderDTO . appntDTO . idType ,
orderAmount : res . orderDTO . orderInfoDTO . orderAmount ,
orderNo : res . orderDTO . orderAccountDTO . orderNo ,
result : '' ,
resultMessage : '交易处理成功' ,
uwResult : '02'
}
// this.bankListName = res.orderDTO.orderAccountDTO.bankName
this . underWriteData . bankCode =
res . orderDTO . orderAccountDTO . cardBookCode !== null ? res . orderDTO . orderAccountDTO . cardBookCode : this . $route . query . bankCode
this . underWriteData . bankName = res . orderDTO . orderAccountDTO . bankCode !== null ? res . orderDTO . orderAccountDTO . bankCode : this . $route . query . bankName
this . underWriteData . cardBookCode =
res . orderDTO . orderAccountDTO . cardBookCode !== null ? res . orderDTO . orderAccountDTO . cardBookCode : this . $route . query . bankCode
this . bankListName = res . orderDTO . orderAccountDTO . bankName !== null ? res . orderDTO . orderAccountDTO . bankName : this . $route . query . bankListName
// isGroupCard 1 团险标识
this . isGroupCard = res . orderDTO . orderInfoDTO . isGroupCard
// if (this.isWeixin) {
// this.pay()
// }
} else {
this . underWriteData = {
accountName : '' ,
riskName : '' ,
appntName : '' ,
insuredName : [ ] ,
idType : '' ,
bankCode : '' ,
bankName : '' ,
cardBookCode : '' ,
orderAmount : '' ,
orderNo : '' ,
result : '' ,
resultMessage : '交易处理失败' ,
uwResult : '00'
}
// window.localStorage.setItem('underWriteData', JSON.stringify(underWriteData))
this . $toast ( res . resultMessage )
}
} )
} ,
// 获取支付信息
// async underWrite() {
// let data = {
// platform: 'app',
// type: '1',
// orderDTO: {
// orderInfoDTO: {
// orderNo: window.localStorage.getItem('orderNo')
// }
// }
// }
// return underWrite(data)
// // .then(res => {
// // console.log(res);
// // if (res.result == '0') {
// // this.$toast.clear()
// // if (res.uwResult == '33') {
// // window.localStorage.setItem('uwResult', res.uwResult)
// // window.localStorage.setItem('resultMessage', res.message)
// // } else {
// // window.localStorage.setItem('uwResult', res.uwResult)
// // }
// // this.underWriteData = res
// // return true
// // } else {
// // return false
// // this.$toast(res.resultMessage)
// // }
// // })
// },
async pay ( ) {
let valid = await this . $validator . validate ( )
if ( true !== valid ) {
return this . $toast ( this . $validator . errors . all ( ) [ 0 ] )
}
switch ( this . orderStatus ) {
case '56' :
case '57' :
this . payMent ( )
break
// case '02':
// break
default :
if ( ! this . noEdit ) {
this . payMent ( true )
return true
} else {
this . acceptInsurance ( )
return this . $toast ( '当前不可支付' )
}
}
} ,
acceptInsurance ( ) {
let data = {
orderNo : window . localStorage . getItem ( 'orderNo' ) ,
cardOrder : 'cardOrder' ,
payType : this . radio
}
acceptInsurance ( data ) . then ( res => {
// this.$jump({
// flag: 'h5',
// extra: {
// forbidSwipeBack: 1, //当前页面禁止右滑返回
// url: location.origin + `/#/cardList/payLoser`,
// },
// routerInfo: {
// path: `/cardList/payLoser`,
// type: '1',
// },
// })
// return;
// this.$jump({
// flag: 'h5',
// extra: {
// forbidSwipeBack: 1, //当前页面禁止右滑返回
// url: location.origin + `/#/cardList/PayResult`,
// },
// routerInfo: {
// path: `/cardList/PayResult`,
// type: '1',
// },
// })
// return
// res = {'result':'0','resultMessage':'','content':null,'prtNo':'8186270000000008','payStatus':'4','amnt':'63700.00','appntName':'投保人','message':null,'brPayReturnData':{'result':'','resultMessage':'','content':null,'businessId':'1569125393518','businessNo':'8186270000000008','tradeSubType':'COMM','businessType':'SALE','systemType':'GF','money':63700,'businessSubType':'XDCB','thirdType':'0002','thirdName':null,'bankCode':'ABC','epayOrderNo':'1909221209536259999900','companyAccount':null,'tradeState':'TRADING','standardCode':'DEALING','standardMsg':null,'thirdOrderNo':null,'respRemark':null,'tradeTime':'2019-09-22T04:09:53.518+0000','description':'','version':'1','sourceNotecode':'8186270000000008','payType':'MIT01','expireDate':'20191010101010','transSeq':'20190922120953782','transSource':'MIT','applyEntity':'11860000','paymentCode':'8186270000000008','transDate':'20190922','rdSeq':'1909221209536259999900','settleMode':null,'cur':'CNY','transTime':'120953','ourAmount':63700,'fixUser':'1','insurer':'投保人','certType':'0','certNum':'110101199009210011','oppBank':'ABC','oppAct':'6228481200290317812','oppActName':'投保人','cellPhone':null,'purpose':null,'memo':null,'returnURL':'http://139.199.50.151/#/sale/payResult','notifyURL':'http://139.199.50.151:7000/api/v1/epay/epay/payResult','s3Sign':'e3f0581ec6b751337e8eca360a0746bc'}}
if ( res . result == '0' ) {
// 1成 4支付中 2支付失败 8转批扣(无此情况)
this . payStatus = res . payStatus
if ( this . payStatus == '1' ) {
this . $toast ( { message : '当前投保单已支付成功,请返回列表页查询' , duration : 5000 } )
return
}
// 支付参数大小写转换
let keyMap = { }
for ( let key in this . payParam ) {
keyMap [ key . toLowerCase ( ) ] = key
}
let paramKey
for ( let rKey in res . brPayReturnData ) {
if ( keyMap . hasOwnProperty ( rKey . toLowerCase ( ) ) ) {
paramKey = keyMap [ rKey . toLowerCase ( ) ]
this . payParam [ paramKey ] = res . brPayReturnData [ rKey ]
}
}
console . log ( '----支付参数: this.payParam:' , JSON . stringify ( this . payParam ) )
this . gotPayParam = true
this . $forceUpdate ( )
window . localStorage . setItem ( 'resMessage' , res . resultMessage )
window . localStorage . setItem ( 'payStatus' , res . payStatus )
window . localStorage . setItem ( 'payInfo' , JSON . stringify ( res ) )
this . underWriteData . bankListName = this . bankListName
if ( this . radio == '3' ) {
this . underWriteData . bankCode = ''
}
localStorage [ 'cardList-detail' ] = JSON . stringify ( this . underWriteData )
let thisRef = this
this . $nextTick ( ( ) => {
thisRef . $refs . payForm . submit ( ) // 表单提交,发起支付,跳至收银台
setTimeout ( ( ) => {
// eslint-disable-next-line no-undef
EWebBridge . webCallAppInJs ( 'webview_left_button' , {
intercept : '0' //是否拦截原生返回事件 1是 其他否
} )
} , 100 )
} )
} else {
if ( ! this . isWeixin ) {
this . $toast . clear ( )
} else {
this . isLoading = false
}
this . $toast ( res . resultMessage )
}
} )
} ,
// 点击支付
async payMent ( flag ) {
if ( this . radio == '' ) {
let data = {
orderDTO : {
orderInfoDTO : {
orderNo : window . localStorage . getItem ( 'orderNo' )
} ,
orderAccountDTO : {
accountType : '0' ,
accountName : this . underWriteData . appntName ,
bankName : this . bankListName ,
bankCode : this . underWriteData . bankName ,
cardBookType : '1' ,
cardBookCode : this . underWriteData . bankCode ,
isAutoPay : '0' ,
isAutoRenewal : '1' ,
accBankProvince : this . accBankProvince ,
accBankCity : this . accBankCity
}
}
}
this . $toast . loading ( {
duration : 0 , // 持续展示 toast
forbidClick : true , // 禁用背景点击
loadingType : 'spinner' ,
message : '加载中……'
} )
/*
支付之前要先保存银行账户信息
*/
let res = await saveOrUpdateAccount ( data )
// .then(res => {
console . log ( 'res' , res )
this . $toast . clear ( )
if ( res . result == '0' ) {
this . $toast . loading ( {
duration : 0 , // 持续展示 toast
forbidClick : true , // 禁用背景点击
loadingType : 'spinner' ,
message : '加载中……'
} )
// if (!flag) {
// let rs = await this.underWrite()
// if (rs.result != '0') {
// this.$toast.clear()
// return this.$toast(rs.resultMessage)
// }
// if (rs.uwResult != '02') {
// return this.$toast(rs.message)
// }
// }
this . acceptInsurance ( )
} else {
this . $toast ( res . resultMessage )
this . isLoading = false
}
// })
} else {
this . $toast . loading ( {
duration : 0 , // 持续展示 toast
forbidClick : true , // 禁用背景点击
loadingType : 'spinner' ,
message : '加载中……'
} )
// if (!flag) {
// let rs = await this.underWrite()
// if (rs.result != '0') {
// this.$toast.clear()
// return this.$toast(rs.resultMessage)
// }
// if (rs.uwResult != '02') {
// return this.$toast(rs.message)
// }
// }
this . acceptInsurance ( )
}
} ,
// 选择微信支付校验身份证类型
vxVerify ( ) {
if ( this . underWriteData . idType != '1' ) {
this . $dialog
. confirm ( {
message : '证件类型不是身份证,无法使用微信支付' ,
showCancelButton : false
} )
. then ( ( ) => {
this . radio = ''
} )
}
} ,
async share ( ) {
let valid = await this . $validator . validate ( )
console . log ( valid )
if ( true !== valid ) {
console . log ( this . $validator )
return this . $toast ( this . $validator . errors . all ( ) [ 0 ] )
}
let shareName = this . underWriteData . appntName
localStorage . name = this . underWriteData . appntName
localStorage . bankName = this . underWriteData . bankName
localStorage . bankCode = this . underWriteData . bankCode
localStorage . bankListName = this . bankListName
let res = await getShareParam ( { shareType : 'card_pay' } )
let url = location . origin + '/#/cardList/phoneCode?orderNo=' + localStorage . orderNo + '&token=' + res . content + '&isGroupCard=' + this . isGroupCard
if ( res . result == '0' ) {
EWebBridge . webCallAppInJs ( 'bridge' , {
flag : 'share' ,
extra : {
title : ` 国富人寿卡单投保( ${ shareName } )付款 ` ,
shareScene : '0' ,
content : '付款进行' ,
url : url ,
img : this . $assetsUrl + 'images/logo.png'
}
} )
} else {
return this . $toast ( res . resultMessage )
}
}
}
}
< / script >
<!-- Add "scoped" attribute to limit CSS to this component only -- >
< style lang = "scss" scoped >
* {
box - sizing : border - box ;
}
. vximg {
width : 23 px ;
height : 23 px ;
padding - left : 13 px ;
padding - right : 3 px ;
box - sizing : content - box ;
}
. bottom - btn {
display : flex ;
justify - content : center ;
}
< / style >