import { androidbuyVip, aliPay, buyVip, } from '~/api/user' import { userEvent } from '~/api/global' let app = getApp() Component({ /** * 组件的属性列表 */ properties: { }, data: { state: false, product: {}, type: "wxpay", items: [{ value: 'wxpay', name: '微信', checked: true }, { value: 'alipay', name: '支付宝', checked: false }, ] }, methods: { open(product) { if (!product) { return } this.setData({ product }) // #if MP this.toBuy() // #elif ANDROID if (this.getTabBar()) { this.getTabBar().setData({ mask: true }) } this.setData({ state: true, }) // #endif }, radioChange(e) { const items = this.data.items for (let i = 0, len = items.length; i < len; ++i) { items[i].checked = items[i].value === e.detail.value } this.setData({ items, type: e.detail.value }) }, closeTranscript() { if (this.getTabBar()) { this.getTabBar().setData({ mask: true }) } this.setData({ state: false }) }, async toBuy() { // #if MP wx.showLoading({ title: '提交中', mask: true }) let res = await buyVip({ productId: this.data.product.id }).finally(() => { wx.hideLoading() }) userEvent({ action: 'ANDROID_PAY_ACTIVITY', }) let { timeStamp, nonceStr, signType, paySign } = res // package保留字 wx.requestPayment({ timeStamp, nonceStr, package: res.package, signType, paySign, success: async (res) => { userEvent({ action: 'ANDROID_PAY_SUCCESS', }) setTimeout(() => { this.triggerEvent('reload') this.closeTranscript() }, 1500) }, fail(res) { wx.showToast({ title: "支付失败", icon: "none", duration: 3000 }) } }) // #elif ANDROID if (this.data.type == 'wxPay') { let res = await androidbuyVip({ productId: this.data.product.id }).finally(() => { wx.hideLoading() }) wx.miniapp.requestPayment({ timeStamp: res.timestamp, mchId: res.partnerid, prepayId: res.prepayid, package: res.package, nonceStr: res.noncestr, sign: res.sign, success: async (res) => { userEvent({ action: 'ANDROID_PAY_SUCCESS', }) setTimeout(() => { this.triggerEvent('reload') this.closeTranscript() }, 1500) }, fail(res) { wx.showToast({ title: "支付失败", icon: "none", duration: 3000 }) }, complete: (res) => { console.error('wx.miniapp.requestPayment complete:', res) } }) } else { let res = await aliPay({ productId: this.data.product.id }).finally(() => { wx.hideLoading() }) app.globalData.plugin.aliPay({ orderInfo: res }, (res) => { userEvent({ action: 'ANDROID_PAY_SUCCESS', }) setTimeout(() => { this.triggerEvent('reload') this.closeTranscript() }, 1500) }) } // #endif }, } })