confirmOrder.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. // pages/order/confirmOrder/confirmOrder.js
  2. import { API } from "../../../service/api";
  3. import {formatPrice} from "../../../utils/utils";
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. prods:[],
  10. totalPrice:0, // 订单总金额
  11. address:""
  12. },
  13. // 获取地址列表
  14. getAddressList(){
  15. API.getAddressList().then(res=>{
  16. let address = res.userAddressList.filter(item=>item.defaultFlag === "1");
  17. if(address.length === 0){
  18. address = res.userAddressList[0];
  19. }else{
  20. address = address[0];
  21. }
  22. this.setData({
  23. address
  24. })
  25. })
  26. },
  27. // 去地址管理页面
  28. goAddressMange(){
  29. wx.navigateTo({
  30. url: '/pages/my/addressManage/addressManage',
  31. })
  32. },
  33. // 确认订单
  34. submitOrder(){
  35. let data = {
  36. orderItemDTOS:this.data.orderItemDTOS,
  37. userAddressId:this.data.address.userAddressId
  38. }
  39. API.createOrder(data).then(res=>{
  40. this.requestPayment(res.orderPaySignDTO);
  41. })
  42. },
  43. // 拉起微信支付
  44. requestPayment(paymentParams) {
  45. wx.requestPayment({
  46. timeStamp: paymentParams.timeStamp,
  47. nonceStr: paymentParams.nonceStr,
  48. package: paymentParams.prepayId,
  49. signType: "MD5",
  50. paySign: paymentParams.wxpaySign,
  51. success(res) {
  52. console.log('支付成功', res);
  53. wx.showToast({ title: '支付成功' });
  54. // 跳转到订单详情或返回
  55. },
  56. fail(err) {
  57. console.error('支付失败', err);
  58. wx.showToast({ title: '支付取消', icon: 'none' });
  59. }
  60. });
  61. },
  62. /**
  63. * 生命周期函数--监听页面加载
  64. */
  65. onLoad(options) {
  66. let list = JSON.parse(decodeURIComponent(options.prods));
  67. let total = 0;
  68. let orderItemDTOS = [];
  69. list.forEach(item=>{
  70. total += item.quantity*item.price;
  71. orderItemDTOS.push({
  72. cartsId:item.cartsId,
  73. mercId:item.mercId || item.mercProdId,
  74. prodId:item.id,
  75. prodAttrId:item.prodAttrId,
  76. count:item.quantity
  77. })
  78. })
  79. this.setData({
  80. prods:list,
  81. totalPrice:formatPrice(total),
  82. orderItemDTOS
  83. })
  84. },
  85. /**
  86. * 生命周期函数--监听页面初次渲染完成
  87. */
  88. onReady() {
  89. },
  90. /**
  91. * 生命周期函数--监听页面显示
  92. */
  93. onShow() {
  94. this.getAddressList();
  95. },
  96. /**
  97. * 生命周期函数--监听页面隐藏
  98. */
  99. onHide() {
  100. },
  101. /**
  102. * 生命周期函数--监听页面卸载
  103. */
  104. onUnload() {
  105. },
  106. /**
  107. * 页面相关事件处理函数--监听用户下拉动作
  108. */
  109. onPullDownRefresh() {
  110. },
  111. /**
  112. * 页面上拉触底事件的处理函数
  113. */
  114. onReachBottom() {
  115. },
  116. /**
  117. * 用户点击右上角分享
  118. */
  119. onShareAppMessage() {
  120. }
  121. })