123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- import {
- createStoreBindings
- } from 'mobx-miniprogram-bindings'
- import {
- store
- } from '~/store/index'
- import {
- getProducts,
- userEvent
- } from '~/api/global'
- import {
- buyVip,
- androidbuyVip,
- } from '~/api/user'
- import event from '~/mixins/event'
- Page({
- behaviors: [event],
- data: {
- products: [],
- product: {},
- mask: false
- },
- onLoad() {
- // 手工绑定
- this.storeBindings = createStoreBindings(this, {
- store,
- actions: {
- setUser: 'setUser'
- }
- })
- },
- onShow() {
- this.getProducts()
- },
- async getProducts() {
- let {
- productList: products,
- } = await getProducts()
- this.setData({
- products,
- product: products[0]
- })
- },
- selected({
- currentTarget
- }) {
- this.setData({
- product: currentTarget.dataset.product
- })
- },
- async toBuy() {
- if (!this.data.active) {
- return
- }
- wx.showLoading({
- title: '提交中',
- mask: true
- })
- // #if MP
- let res = await buyVip({
- productId: this.data.active
- }).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) => {
- setTimeout(() => {
- this.setUserInfo()
- this.setData({
- mask: true
- })
- }, 1500)
- userEvent({
- action: 'ANDROID_PAY_SUCCESS',
- })
- },
- fail(res) {
- wx.showToast({
- title: "支付失败",
- icon: "none",
- duration: 3000
- })
- }
- })
- // #elif ANDROID
- let res = await androidbuyVip({
- productId: this.data.active
- }).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) => {
- setTimeout(() => {
- this.setUserInfo()
- this.setData({
- mask: true
- })
- }, 1500)
- userEvent({
- action: 'ANDROID_PAY_SUCCESS',
- })
- },
- fail(res) {
- wx.showToast({
- title: "支付失败",
- icon: "none",
- duration: 3000
- })
- },
- complete: (res) => {
- console.error('wx.miniapp.requestPayment complete:', res)
- }
- })
- // #endif
- },
- paySuccess() {
- this.setUserInfo()
- this.setData({
- mask: true
- })
- },
- openDonutBuy() {
- let product = this.data.product
- console.log(product);
- this.selectComponent('#donutBuy').open(product)
- },
- // 设置用户信息及vip状态
- async setUserInfo() {
- let userInfo = await getMyInfo()
- this.setUser(userInfo.user)
- },
- closeMask() {
- this.setData({
- mask: false,
- })
- // this.getWxCode()
- },
- onUnload() {
- this.storeBindings.destroyStoreBindings();
- }
- })
|