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; 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); } }); } });