var config = require('../../../config/config.js'); var app = getApp() const Http = require("../../../utils/HttpBasics") Page({ data: { data: {}, couponId: null, orderId: '' }, onLoad(e) { console.log(e) wx.showLoading({ title: '加载中...', }) Http.get({ url: Http.config.api.couponDetail, data: { id: e.id } }).then(res => { wx.hideLoading(); this.setData({ data: res, couponId: e.id }) }) }, /** * 支付订单更新 */ payOrderUpdate: (orderId, payOrderId, status, reason) => { // 支付成功 return Http.post({ url: Http.config.api.payOrderUpdate, data: { payOrderId: payOrderId, orderId: orderId, status: status, reason: reason } }) }, newOrderfunc() { wx.showLoading({ title: '加载中...', }) Http.post({ url: Http.config.api.orderSave, data: { couponId: this.data.couponId } }).then(res => { const orderId = '' + res.id; this.setData({ orderId: orderId }) if (res.payment > 0) { return Http.post({ url: Http.config.api.payOrderCreate, data: { orderId: orderId } }) } else { // 免费券 this.payOrderUpdate(orderId, "0", 1) // 支付成功 .then(res => { wx.showToast({ title: "支付成功", duration: 3000 }) }) } }).then(res => { console.log(res) if (res) { var payOrderId = '' + res.payOrderId; wx.hideLoading(); wx.requestPayment({ timeStamp: res.timeStamp, nonceStr: res.nonceStr, package: res.package, signType: 'MD5', paySign: res.paySign, 'success': (res) => { this.payOrderUpdate(this.data.orderId, payOrderId, 1)// 支付成功 console.log(res); console.log('支付成功'); wx.showToast({ title: '购买成功', duration: 2500 }) wx.navigateBack({ delta: 2 }) }, 'fail': (res) => { this.payOrderUpdate(this.data.orderId, payOrderId, 2)// 支付失败 console.log(res) console.log('支付失败'); return; }, 'complete': (res) => { console.log(res); console.log('支付完成'); var url = this.data.url; console.log('get url', url) if (res.errMsg == 'requestPayment:ok') { wx.showModal({ title: '提示', content: '支付成功' }); if (url) { setTimeout(function () { wx.redirectTo({ url: '/pages' + url }); }, 2000) } else { setTimeout(() => { wx.navigateBack() }, 2000) } } else { wx.showModal({ title: '错误提示', content: res.errMsg }); } return; } }) } }) }, })