web-base-pc/src/views/bfPay.vue

117 lines
3.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
* @Descripttion:
* @version:
* @Author: kBank
* @Date: 2023-04-03 16:49:49
-->
<!--
* @Descripttion:
* @version:
* @Author: kBank
* @Date: 2023-02-11 17:26:55
-->
<template>
<div class="contain">
<img src="../assets/images/pay_i2.png"
alt="" />
<div>宝付支付中...</div>
</div>
</template>
<script>
import wx from 'weixin-js-sdk'
import * as pay from '@/api/pay.js'
export default {
data() {
return {
code: '',
state: '',
}
},
mounted() {
let allData = decodeURIComponent(window.location.href).split('=')
console.log(
'%c [ allData ]-34',
'font-size:13px; background:#a3905c; color:#e7d4a0;',
allData
)
this.code = allData[1].split('&')[0]
this.state = allData[2].split('#')[0]
this.getFiveCode()
},
methods: {
getFiveCode() {
pay
.baoFuPay({
code: this.code,
state: this.state,
})
.then((res) => {
let obj = res.data
this.onBridgeReady(obj)
// wx.chooseWXPay({
// appId: obj.appId,
// timeStamp: obj.timeStamp, // 支付签名时间戳,注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符
// nonceStr: obj.nonceStr, // 支付签名随机串,不长于 32 位
// package: obj.package, // 统一支付接口返回的prepay_id参数值提交格式如prepay_id=\*\*\*
// signType: obj.signType, // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致
// paySign: obj.paySign, // 支付签名
// success: function (res) {
// console.log(
// '%c [ res ]-48',
// 'font-size:13px; background:#71e3dc; color:#b5ffff;',
// res
// )
// // 支付成功后的回调函数
// },
// })
})
},
onBridgeReady(data) {
console.log('调用微信支付WeixinJSBridge')
var vm = this
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
{
// 下面参数内容都是后台返回的
appId: data.appId, // 公众号名称,由商户传入
timeStamp: data.timeStamp, // 时间戳
nonceStr: data.nonceStr, // 随机串
package: data.package, // 预支付id
signType: data.signType, // 微信签名方式
paySign: data.paySign, // 微信签名
},
function (res) {
// 使用以上方式判断前端返回,微信团队郑重提示res.err_msg将在用户支付成功后返回ok但并不保证它绝对可靠。
if (res.err_msg === 'get_brand_wcpay_request:ok') {
this.$message({
message: '支付成功',
type: 'success',
})
} else {
this.$message({
message: '支付失败',
type: 'warning',
})
}
}
)
},
},
}
</script>
<style lang="scss" scoped>
.contain {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 200px;
font-size: 16px;
img {
width: 60px;
height: 60px;
margin-bottom: 20px;
}
}
</style>