12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import authorize from '@/common/authorize.js'
- // 调用微信支付
- function wxRequestPayment(payment) {
- return new Promise((resolve, reject) => {
- uni.requestPayment({
- timeStamp: payment.timeStamp,
- nonceStr: payment.nonceStr,
- package: payment.package,
- signType: payment.signType,
- paySign: payment.paySign,
- success: () => {
- resolve(true)
- },
- fail: () => {
- reject({ msg: 'error' })
- }
- })
- })
- }
- // 微信支付
- const wechatPay = {
- data() {
- return {
- loadingText: '请稍等...',
- isSubLoading: false,
- }
- },
- methods: {
- // 验证微信支付是否可用
- miniWxPayFor(data) {
- this.isSubLoading = true
- this.PayService.PayOrderOnLineSwitch().then(response => {
- if (response.data === 1) {
- this.weChatMiniWxPay(data)
- } else {
- this.isSubLoading = false
- this.$api.navigateTo(`/pages/user/order/order-payment?money=${data.payableAmount}`)
- }
- })
- },
- // 获取微信支付payment
- async weChatMiniWxPay(data) {
- if (this.loadingText) this.loadingText = '等待支付中'
- try {
- // 获取微信code
- const wechatCode = await authorize.getCode('weixin')
- // 微信支付请求 返回支付信息
- const response = await this.PayService.WeChatMiniWxPay({
- payAmount: data.payableAmount * 100,
- payWay: 'WEIXIN',
- code: wechatCode,
- orderId: data.orderId
- })
- // 处理支付信息 调用微信支付
- const payment = JSON.parse(response.data.data.payInfo)
- const payFlag = await wxRequestPayment(payment)
- // 支付成功重定向
- uni.setStorageSync('orderInfo', this.hanldOrder.order)
- if (payFlag) {
- uni.redirectTo({ url: '/pages/user/order/success' })
- } else {
- uni.redirectTo({ url: '/pages/user/order/error' })
- }
- } catch (error) {
- // 微信支付失败
- if (error.msg === 'error') {
- uni.setStorageSync('orderInfo', this.hanldOrder.order)
- uni.redirectTo({ url: '/pages/user/order/error' })
- } else this.$util.msg(error.msg, 2000)
- } finally {
- this.isSubLoading = false
- }
- }
- }
- }
- export default wechatPay
|