|
|
@@ -219,16 +219,23 @@ export default {
|
|
|
if (this.paying) return
|
|
|
this.paying = true
|
|
|
var couponId = this.selectedCoupon ? this.selectedCoupon.id : null
|
|
|
- createOrder(this.levelCode, 'pay', this.period, couponId).then(function(res) {
|
|
|
+ var openid = uni.getStorageSync('openid') || ''
|
|
|
+ createOrder(this.levelCode, 'pay', this.period, couponId, openid).then(function(res) {
|
|
|
var data = res.data || {}
|
|
|
- if (data.orderInfo && data.sign) {
|
|
|
- self.orderNo = data.orderNo || (data.orderInfo && data.orderInfo.outTradeNo)
|
|
|
+ self.orderNo = data.orderNo
|
|
|
+ var payType = data.payType || 'virtual'
|
|
|
+
|
|
|
+ if (payType === 'virtual' && data.orderInfo && data.sign) {
|
|
|
+ // 虚拟支付(现有逻辑不变)
|
|
|
self.totalPeriods = data.totalPeriods || 1
|
|
|
self.currentPeriod = data.currentPeriod || 1
|
|
|
- self.splitAmount = data.orderInfo && data.orderInfo.goodsPrice ? data.orderInfo.goodsPrice : (self.finalPrice / self.totalPeriods)
|
|
|
+ self.splitAmount = data.orderInfo.goodsPrice || (self.finalPrice / (self.totalPeriods || 1))
|
|
|
self.payInstallments(data)
|
|
|
+ } else if (payType === 'wechat' && data.wechatPayParams) {
|
|
|
+ // 普通微信支付(新增分支)
|
|
|
+ self.payWechat(data.wechatPayParams)
|
|
|
} else {
|
|
|
- // testMode 或试用:模拟支付成功
|
|
|
+ // testMode/trial:模拟支付成功
|
|
|
self.orderNo = data.orderNo
|
|
|
uni.showToast({ title: '支付成功,开通中…', icon: 'none' })
|
|
|
setTimeout(function() {
|
|
|
@@ -245,6 +252,40 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ payWechat: function(pp) {
|
|
|
+ var self = this
|
|
|
+ if (!pp || !pp.package) {
|
|
|
+ self.paying = false
|
|
|
+ uni.showToast({ title: '支付参数异常', icon: 'none' })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ uni.requestPayment({
|
|
|
+ provider: 'wxpay',
|
|
|
+ timeStamp: pp.timeStamp,
|
|
|
+ nonceStr: pp.nonceStr,
|
|
|
+ package: pp.package,
|
|
|
+ signType: pp.signType || 'RSA',
|
|
|
+ paySign: pp.paySign || pp.sign,
|
|
|
+ success: function() {
|
|
|
+ uni.showToast({ title: '支付成功,开通中…', icon: 'none' })
|
|
|
+ setTimeout(function() {
|
|
|
+ self.paying = false
|
|
|
+ uni.redirectTo({ url: '/pages/membership/result?orderNo=' + (self.orderNo || '') + '&status=success' })
|
|
|
+ }, 800)
|
|
|
+ },
|
|
|
+ fail: function(err) {
|
|
|
+ self.paying = false
|
|
|
+ var errCode = err && err.errCode
|
|
|
+ var msg = '支付取消'
|
|
|
+ if (errCode === -15007 || errCode === -15005) msg = '登录态已过期,请重新登录'
|
|
|
+ else if (err && err.errMsg) msg = err.errMsg
|
|
|
+ uni.showToast({ title: msg, icon: 'none' })
|
|
|
+ setTimeout(function() {
|
|
|
+ uni.redirectTo({ url: '/pages/membership/result?orderNo=' + (self.orderNo || '') + '&status=fail' })
|
|
|
+ }, 800)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
payInstallments: function(dto) {
|
|
|
var self = this
|
|
|
var current = dto.currentPeriod || 1
|