import { buyVip, buyNum, } from '~/api/user' import { getProducts, getVoucher } from '~/api/global' Component({ /** * 组件的属性列表 */ properties: { }, /** * 组件的初始数据 */ data: { state: false, // 红包类型 type: '', // 优惠金额 preferential: '', productVip: 0, productNum: 0, // 红包id id: '', voucherType: '' }, /** * 组件的方法列表 */ methods: { open(data) { this.getProducts() let { type, id, voucherType, preferential } = data this.setData({ state: true, type, id, voucherType, preferential }) }, close() { this.setData({ state: false }) this.triggerEvent('reload') }, async getProducts() { let products = await getProducts() let productVip = products.find(item => { return item.type == 1 }) let productNum = products.find(item => { return item.type == 2 }) this.setData({ productVip, productNum }) }, async getVoucher() { if (!this.data.voucherType) { let res = await getVoucher({ id: this.data.id }) this.toBuy(res.type == 1 ? '1001' : '1010') } else { this.toBuy(this.data.voucherType == 1 ? '1001' : '1010') } }, //购买vip和购买次数不是一个接口 type 1001是vip,1010是次数 async toBuy(productId) { wx.showLoading({ title: '提交中', mask: true }) let res = '' if (productId == '1001') { res = await buyVip({ productId }).finally(() => { wx.hideLoading() }) } else if (productId == '1010') { res = await buyNum({ productId }).finally(() => { wx.hideLoading() }) } else { wx.hideLoading() wx.showToast({ title: "支付失败,请重试", icon: "none" }) } let { timeStamp, nonceStr, signType, paySign } = res // package保留字 wx.requestPayment({ timeStamp, nonceStr, package: res.package, signType, paySign, success: (res) => { wx.showToast({ title: "支付成功", duration: 2500 }) this.close() }, fail(res) { wx.showToast({ title: "支付失败", icon: "none" }) } }) }, } })