You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.5 KiB
126 lines
3.5 KiB
import { getTradeOrder, paymentFor } from "../api/payment"
|
|
const util = require('../../utils/util')
|
|
const event = require('../../utils/event')
|
|
const app = getApp()
|
|
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
backUrl: null,
|
|
status: null,
|
|
payType: 0,
|
|
payIndex: 2,
|
|
payText: '',
|
|
payment: '',
|
|
requesting: false,
|
|
paymodel: {
|
|
channelId: '478256441266933760'
|
|
}
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
if (options.orderId) {
|
|
this.data.paymodel.tradeOrderId = options.orderId
|
|
this.fetchPaymentInfo(options.orderId)
|
|
this.data.payType = Number(options.type)
|
|
if (options.url) {
|
|
this.data.backUrl = options.url
|
|
}
|
|
if (options.status) {
|
|
this.data.status = options.status
|
|
}
|
|
} else {
|
|
util.showToast('数据错误,无法支付')
|
|
wx.navigateBack({ delta: 1 })
|
|
}
|
|
},
|
|
fetchPaymentInfo: function (orderId) {
|
|
wx.showLoading({ title: '加载中', mask: true })
|
|
getTradeOrder(orderId).then(result => {
|
|
this.setData({ payment: result.data.amount, payText: result.data.comment })
|
|
wx.hideLoading()
|
|
}).catch(err => {
|
|
//异常回调
|
|
wx.hideLoading()
|
|
util.showToast(err)
|
|
})
|
|
},
|
|
checkRadio: function (e) {
|
|
this.setData({ payIndex: parseInt(e.currentTarget.id) })
|
|
},
|
|
submitForm: function () {
|
|
if (this.data.requesting) {
|
|
return
|
|
}
|
|
wx.showLoading({ title: '加载中', mask: true })
|
|
this.data.requesting = true
|
|
paymentFor(this.data.paymodel).then(result => {
|
|
wx.hideLoading()
|
|
this.requestPayment(result.data.extra)
|
|
}).catch(err => {
|
|
wx.hideLoading()
|
|
this.data.requesting = false
|
|
util.showToast(err)
|
|
})
|
|
},
|
|
// 微信支付流程
|
|
requestPayment: function (data) {
|
|
var that = this
|
|
data.success = function (res) {
|
|
util.showToast('支付成功')
|
|
wx.requestSubscribeMessage({
|
|
tmplIds: app.tmplIds,
|
|
complete(res) {
|
|
that.handlePayment()
|
|
}
|
|
})
|
|
}
|
|
data.fail = function (res) {
|
|
util.showToast('支付失败')
|
|
that.data.requesting = false
|
|
}
|
|
wx.requestPayment(data)
|
|
},
|
|
handlePayment: function(){
|
|
if(this.data.payType == 2){
|
|
// Vip购买成功
|
|
app.globalData.userInfo.isVIP = 1
|
|
event.emit('EventMessage', { what: 200, desc: 'Vip' })
|
|
} else if(this.data.payType == 11 || this.data.payType == 14){
|
|
event.emit('EventMessage', { what: 320, desc: 'OrderChange' })
|
|
}
|
|
if (!util.isEmpty(this.data.backUrl)) {
|
|
if (!util.isEmpty(this.data.status)) {
|
|
this.data.backUrl += '?status=' + this.data.status
|
|
}
|
|
wx.redirectTo({ url: this.data.backUrl })
|
|
} else if(this.data.payType == 2){
|
|
wx.navigateBack({ delta: 1 })
|
|
} else if(this.data.payType == 11 || this.data.payType == 14){
|
|
this.wuxDialog = this.wuxDialog || this.selectComponent('#wux-dialog')
|
|
var contentString = ''
|
|
if(this.data.payType == 11){
|
|
contentString = '您已成功支付订单诚意金,请等待卖家上传的商品磅单,并核对磅单信息是否正确'
|
|
} else {
|
|
contentString = '您已成功支付尾款,请等待卖家送货,收到货后请及时点击确认收货'
|
|
}
|
|
this.wuxDialog.open({
|
|
maskClosable: false,
|
|
title: '温馨提示',
|
|
content: contentString,
|
|
buttons: [{
|
|
text: '确定',
|
|
type: 'primary',
|
|
onTap(e) {
|
|
wx.navigateBack({ delta: 1 })
|
|
}
|
|
}]
|
|
})
|
|
}
|
|
}
|
|
|
|
})
|