// pages/order/confirmOrder/confirmOrder.js import { API } from "../../../service/api"; import {formatPrice} from "../../../utils/utils"; Page({ /** * 页面的初始数据 */ data: { prods:[], totalPrice:0, // 订单总金额 address:"" }, // 获取地址列表 getAddressList(){ API.getAddressList().then(res=>{ let address = res.userAddressList.filter(item=>item.defaultFlag === "1"); if(address.length === 0){ address = res.userAddressList[0]; }else{ address = address[0]; } this.setData({ address }) }) }, // 去地址管理页面 goAddressMange(){ wx.navigateTo({ url: '/pages/my/addressManage/addressManage?moldify=true', }) }, // 确认订单 submitOrder(){ let data = { orderItemDTOS:this.data.orderItemDTOS, userAddressId:this.data.address.userAddressId } API.createOrder(data).then(res=>{ this.requestPayment(res.orderPaySignDTO); }) }, // 拉起微信支付 requestPayment(paymentParams) { wx.requestPayment({ timeStamp: paymentParams.timeStamp, nonceStr: paymentParams.nonceStr, package: paymentParams.prepayId, signType: "MD5", paySign: paymentParams.wxpaySign, success(res) { console.log('支付成功', res); wx.showToast({ title: '支付成功' }); // 跳转到订单详情或返回 }, fail(err) { console.error('支付失败', err); wx.showToast({ title: '支付取消', icon: 'none' }); setTimeout(()=>{ wx.redirectTo({ url: '/pages/my/myOrder/myOrder', }) },3000) } }); }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { let list = JSON.parse(decodeURIComponent(options.prods)); let total = 0; let orderItemDTOS = []; list.forEach(item=>{ total += item.quantity*item.price; orderItemDTOS.push({ cartsId:item.cartsId, mercId:item.mercId || item.mercProdId, prodId:item.id, prodAttrId:item.prodAttrId, count:item.quantity }) }) this.setData({ prods:list, totalPrice:formatPrice(total), orderItemDTOS }) }, // 修改收货地址 editAddress(){ const pages = getCurrentPages() const currentPage = pages[pages.length - 1] if (currentPage.data.returnData) { let address = currentPage.data.returnData; // console.log('收到返回参数:', currentPage.data.returnData) // 清除参数避免重复触发 currentPage.setData({ returnData: null }) this.setData({address}) }else{ this.getAddressList(); } }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { this.editAddress(); }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })