var api = require('../../utils/api') var config = require('../../config/env') Page({ data: { statusBarHeight: 44, plans: [ { key: 'monthly', name: '月卡', price: 99, priceLabel: '¥99', desc: '约3.3元/天' }, { key: 'yearly', name: '年卡', price: 899, priceLabel: '¥899', desc: '省¥289', tag: '推荐' } ], selected: 'yearly', purchasing: false, subscription: null, subRemaining: 0 }, onBack: function () { wx.navigateBack({ fail: function () { wx.reLaunch({ url: '/pages/index/index' }) } }) }, onLoad: function () { var app = getApp() this.setData({ statusBarHeight: app.globalData.statusBarHeight }) }, onShow: function () { this.loadSubscription() }, loadSubscription: function () { var self = this api.getSubscription().then(function (sub) { self.setData({ subscription: sub, subRemaining: sub.remaining_days || 0 }) }).catch(function () {}) }, onSelect: function (e) { this.setData({ selected: e.currentTarget.dataset.plan }) }, onPurchase: function () { var self = this var selected = this.data.selected var plan = null for (var i = 0; i < this.data.plans.length; i++) { if (this.data.plans[i].key === selected) { plan = this.data.plans[i] break } } if (!plan) return wx.showModal({ title: '确认支付', content: '模拟支付 ¥' + plan.price + '?(测试环境)', success: function (res) { if (res.confirm) { self.doPurchase(plan) } } }) }, doPurchase: function (plan) { var self = this self.setData({ purchasing: true }) api.purchase(plan.key).then(function (order) { self.setData({ purchasing: false }) wx.showToast({ title: '支付成功', icon: 'success' }) setTimeout(function () { wx.redirectTo({ url: '/pages/subscribe-success/subscribe-success?plan=' + plan.key }) }, 1000) }).catch(function (err) { self.setData({ purchasing: false }) wx.showToast({ title: err.message || '支付失败', icon: 'none' }) }) } })