Files
dtx_store/pages/pay/pay.vue

159 lines
6.2 KiB
Vue

<template>
<view>
<oct-pay :price="price" :coins="coins" :payNo="payNo" color="#34CE98" price-color="#e6576b"
:payPlatform="platform" @onPay="pay" />
</view>
</template>
<script>
import {
wxPAY,
alPAY,
dtPAY
} from '@/apis/interfaces/pay'
export default {
data() {
return {
payNo: "",
price: "",
coins: "",
platform: ['dtpay']
}
},
mounted() {
this.payNo = this.$Route.query.orderNo
this.price = Number(this.$Route.query.price).toFixed(2)
this.coins = this.$Route.query.coins
},
methods: {
pay(e) {
if (e.platform === 'dtpay') return this.getDTPAY(e.platform);
uni.getProvider({
service: 'payment',
success: res => {
if (res.provider.findIndex(val => val === e.platform) < 0) {
switch (e.platform) {
case 'wxpay':
uni.showToast({
title: '支付失败,您暂未安装微信',
icon: 'none'
})
break;
case 'alipay':
uni.showToast({
title: '支付失败,您暂未安装支付宝',
icon: 'none'
})
break;
}
return
}
if (e.platform === 'wxpay') this.getWXPAY(e.platform)
if (e.platform === 'alipay') this.getALPAY(e.platform)
}
})
},
getDTPAY() {
console.log('dt 支付。。。')
dtPAY(this.payNo).then(res => {
console.log(res);
// this.callPay(res, payType)
if (res.state === 'warning') {
uni.showModal({
title: '当前DT积分不足',
content: '不能支付该订单,是否放弃当前支付',
confirmText: '立即充值',
confirmColor: "#34CE98",
cancelText: '放弃支付',
cancelColor: "#666666",
success: (res) => {
if (res.confirm) {
this.$Router.push({
name: "AccountRecharge"
})
} else {
uni.navigateBack();
}
}
})
} else {
uni.showModal({
title: '支付成功',
content: '该订单已支付成功',
confirmText: '我的订单',
confirmColor: "#34CE98",
cancelText: '再逛逛',
cancelColor: "#666666",
success: (res) => {
// if (res.confirm) {
// this.$Router.push({
// name: "AccountRecharge"
// })
// } else {
// uni.navigateBack();
// }
}
})
}
}).catch(err => {
uni.showToast({
title: err.message,
icon: "none",
mask: true,
})
})
},
getALPAY(payType) {
alPAY(this.payNo).then(res => {
this.callPay(res, payType)
})
},
getWXPAY(payType) {
wxPAY(this.payNo).then(res => {
let config = JSON.parse(res)
this.callPay(config, payType)
})
},
callPay(orderInfo, payType) {
uni.requestPayment({
provider: payType,
orderInfo,
success: payRes => {
uni.showModal({
title: '支付成功',
content: '订单已支付,我们将尽快为您安排发货,可在订单管理查询订单动态',
showCancel: false,
success: onRes => {
if (onRes.confirm) {
if (this.$Route.query.oepnType === 'order') {
this.$store.commit('setRefresh', 1)
}
this.$Router.back()
}
}
})
},
fail: payErr => {
if (payErr.errCode == '-100') {
uni.showToast({
title: '支付被取消',
icon: 'none'
})
} else {
uni.showToast({
title: payErr.errMsg,
icon: 'none'
})
}
}
})
}
}
}
</script>
<style>
</style>