213 lines
5.9 KiB
JavaScript
Raw Normal View History

2025-04-14 14:25:41 +08:00
var util = require('../../utils/util.js');
var api = require('../../config/api.js');
var app = getApp();
Page({
data: {
checkedGoodsList: [],
checkedAddress: {},
availableCouponLength: 0, // 可用的优惠券数量
goodsTotalPrice: 0.00, //商品总价
freightPrice: 0.00, //快递费
couponPrice: 0.00, //优惠券的价格
grouponPrice: 0.00, //团购优惠价格
orderTotalPrice: 0.00, //订单总价
actualPrice: 0.00, //实际需要支付的总价
cartId: 0,
addressId: 0,
couponId: 0,
userCouponId: 0,
message: '',
grouponLinkId: 0, //参与的团购
grouponRulesId: 0 //团购规则ID
},
onLoad: function(options) {
// 页面初始化 options为页面跳转所带来的参数
},
//获取checkou信息
getCheckoutInfo: function() {
let that = this;
util.request(api.CartCheckout, {
cartId: that.data.cartId,
addressId: that.data.addressId,
couponId: that.data.couponId,
userCouponId: that.data.userCouponId,
grouponRulesId: that.data.grouponRulesId
}).then(function(res) {
if (res.errno === 0) {
that.setData({
checkedGoodsList: res.data.checkedGoodsList,
checkedAddress: res.data.checkedAddress,
availableCouponLength: res.data.availableCouponLength,
actualPrice: res.data.actualPrice,
couponPrice: res.data.couponPrice,
grouponPrice: res.data.grouponPrice,
freightPrice: res.data.freightPrice,
goodsTotalPrice: res.data.goodsTotalPrice,
orderTotalPrice: res.data.orderTotalPrice,
addressId: res.data.addressId,
couponId: res.data.couponId,
userCouponId: res.data.userCouponId,
grouponRulesId: res.data.grouponRulesId,
});
}
wx.hideLoading();
});
},
selectAddress() {
wx.navigateTo({
url: '/pages/ucenter/address/address',
})
},
selectCoupon() {
wx.navigateTo({
url: '/pages/ucenter/couponSelect/couponSelect',
})
},
bindMessageInput: function(e) {
this.setData({
message: e.detail.value
});
},
onReady: function() {
// 页面渲染完成
},
onShow: function() {
// 页面显示
wx.showLoading({
title: '加载中...',
});
try {
var cartId = wx.getStorageSync('cartId');
if (cartId === "") {
cartId = 0;
}
var addressId = wx.getStorageSync('addressId');
if (addressId === "") {
addressId = 0;
}
var couponId = wx.getStorageSync('couponId');
if (couponId === "") {
couponId = 0;
}
var userCouponId = wx.getStorageSync('userCouponId');
if (userCouponId === "") {
userCouponId = 0;
}
var grouponRulesId = wx.getStorageSync('grouponRulesId');
if (grouponRulesId === "") {
grouponRulesId = 0;
}
var grouponLinkId = wx.getStorageSync('grouponLinkId');
if (grouponLinkId === "") {
grouponLinkId = 0;
}
this.setData({
cartId: cartId,
addressId: addressId,
couponId: couponId,
userCouponId: userCouponId,
grouponRulesId: grouponRulesId,
grouponLinkId: grouponLinkId
});
} catch (e) {
// Do something when catch error
console.log(e);
}
this.getCheckoutInfo();
},
onHide: function() {
// 页面隐藏
},
onUnload: function() {
// 页面关闭
},
submitOrder: function() {
if (this.data.addressId <= 0) {
util.showErrorToast('请选择收货地址');
return false;
}
util.request(api.OrderSubmit, {
cartId: this.data.cartId,
addressId: this.data.addressId,
couponId: this.data.couponId,
userCouponId: this.data.userCouponId,
message: this.data.message,
grouponRulesId: this.data.grouponRulesId,
grouponLinkId: this.data.grouponLinkId
}, 'POST').then(res => {
if (res.errno === 0) {
// 下单成功重置couponId
try {
wx.setStorageSync('couponId', 0);
} catch (error) {
}
const orderId = res.data.orderId;
const grouponLinkId = res.data.grouponLinkId;
const payed = res.data.payed
if (payed) {
wx.redirectTo({
url: '/pages/payResult/payResult?status=1&orderId=' + orderId
});
return
}
util.request(api.OrderPrepay, {
orderId: orderId
}, 'POST').then(function(res) {
if (res.errno === 0) {
const payParam = res.data;
console.log("支付过程开始");
wx.requestPayment({
'timeStamp': payParam.timeStamp,
'nonceStr': payParam.nonceStr,
'package': payParam.packageValue,
'signType': payParam.signType,
'paySign': payParam.paySign,
'success': function(res) {
console.log("支付过程成功");
if (grouponLinkId) {
setTimeout(() => {
wx.redirectTo({
url: '/pages/groupon/grouponDetail/grouponDetail?id=' + grouponLinkId
})
}, 1000);
} else {
wx.redirectTo({
url: '/pages/payResult/payResult?status=1&orderId=' + orderId
});
}
},
'fail': function(res) {
console.log("支付过程失败");
wx.redirectTo({
url: '/pages/payResult/payResult?status=0&orderId=' + orderId
});
},
'complete': function(res) {
console.log("支付过程结束")
}
});
} else {
wx.redirectTo({
url: '/pages/payResult/payResult?status=0&orderId=' + orderId
});
}
});
} else {
util.showErrorToast(res.errmsg);
}
});
}
});