Browse Source

feat(page):后支付确定订单,支付

Zhenghanjv 2 tháng trước cách đây
mục cha
commit
efb47dd11a
5 tập tin đã thay đổi với 106 bổ sung51 xóa
  1. 4 3
      js/api.js
  2. 1 39
      pages/login/login.js
  3. 74 3
      pages/orderConfirm/orderConfirm.js
  4. 12 5
      pages/scan/scan.js
  5. 15 1
      utils/util.js

+ 4 - 3
js/api.js

@@ -3,7 +3,7 @@ const SM4Exten = require('../js/SM4Exten');
 const miniprogramsm4 = require("../miniprogram_npm/miniprogram-sm-crypto/index").sm4;
 const secretId = "D2BCF8DE-AA24-4BF6-9C34-C8DD325E412B";//小程序应用ID
 const Secret = "6C680A47B87740138DFB299FC69A64E1";//小程序应用密钥
-const api_root = 'http://192.168.88.140:5006/'
+const api_root = 'http://192.168.0.202:5006/'
 const CurrentBuId = '12345678-9abc-def0-1234-56789abcdef0';
 
 function request(path, method = 'GET', data = null) {
@@ -171,7 +171,7 @@ function request_GetMiniProgramTransactionsUnpaidQuery(data) {
 
 //小程序用户根据抢号查询未支付订单
 function request_GetMiniProgramTransactionsUnpaidNozzle(data) {
-  return request('api/Transactions/GetMiniProgramTransactionsUnpaidNozzle', "GET",data);
+  return request('api/Transactions/GetMiniProgramTransactionsUnpaidNozzle?NozzleId='+data, "GET",data);
 }
 //小程序登录
 function request_Wechatlogin(data) {
@@ -202,5 +202,6 @@ export default {
   request_NozzleAuthorization,
   request_CancelNozzleAuthorization,
   request_GetMiniProgramTransactionsUnpaidQuery,
-  request_GetMiniProgramTransactionsUnpaidNozzle
+  request_GetMiniProgramTransactionsUnpaidNozzle,
+  request_AddMiniprogramUser
 }

+ 1 - 39
pages/login/login.js

@@ -65,44 +65,7 @@ Page({
   onShareAppMessage() {
 
   },
-  pay() {
-    api.request_wechatPay(1)
-      .then(res => {
-        wx.requestPayment({
-          timeStamp: res.data.data.unifiedOrderResult.timeStamp,
-          nonceStr: res.data.data.unifiedOrderResult.nonceStr,
-          package: res.data.data.unifiedOrderResult.package,
-          signType: res.data.data.unifiedOrderResult.signType,
-          paySign: res.data.data.unifiedOrderResult.paySign,
-          success: res => {
-            wx.hideLoading()
-            wx.showToast({
-              title: '支付成功!',
-            })
-            setTimeout(function () {
-              wx.redirectTo({
-                url: '../scan/scan',
-              })
-            }, 2000)
-          },
-          fail: res => {
-            wx.hideLoading()
-            wx.showModal({
-              title: '支付失败',
-              content: res.errMsg + '请稍后再试',
-              showCancel: false,
-              success(res) {
-                if (res.confirm) {
-                  wx.switchTab({
-                    url: '../home/home',
-                  })
-                }
-              }
-            })
-          }
-        })
-      });
-  },
+  
   handleAuthLogin(e) {
     console.log('一键授权登录按钮被点击');
     wx.showLoading({
@@ -159,7 +122,6 @@ Page({
               wx.setStorageSync('WachatID', res.data.data)
               return api.request_AddMiniprogramUser(that.data.userInfo)
             }).then(res => {
-              debugger
               console.log("添加user",res)
               wx.hideLoading()
               wx.redirectTo({

+ 74 - 3
pages/orderConfirm/orderConfirm.js

@@ -1,3 +1,6 @@
+const { default: api } = require("../../js/api");
+const util = require('../../utils/util.js')
+
 // pages/orderConfirm/orderConfirm.js
 Page({
 
@@ -5,6 +8,7 @@ Page({
    * 页面的初始数据
    */
   data: {
+    nozzle:0,
     type:'后支付',
     order:{
       oilName:"92#",
@@ -24,7 +28,11 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-
+    console.log("未支付页",options)
+    this.setData({
+      nozzle:options.nozzle
+    })
+    this.getOrder()
   },
 
   /**
@@ -76,6 +84,30 @@ Page({
 
   },
 
+  /** 获取订单信息 */
+  getOrder() {
+    api.request_GetMiniProgramTransactionsUnpaidNozzle(Number(this.data.nozzle))
+    .then(res => {
+      console.log("获取到未支付订单",res)
+      var order = res.data.data[0];
+      var time = util.formatDateNotSecond(order.fuelItemTransactionEndTime);
+      this.setData({
+        order:{
+          oilName:order.productName,
+          nozzle:order.nozzleId,
+          volume:order.originalQty,
+          amount:order.originalAmount,
+          payAmount:order.actualPaymentAmount,
+          discount:order.originalAmount - order.actualPaymentAmount,
+          orderId:order.id,
+          time:time
+        }
+      })
+    }).catch(err => {
+      console.log("未获取到未支付订单")
+    })
+  },
+
   /** 后支付查看更多交易 */
   toMordOrderPage(){
     wx.navigateTo({
@@ -85,6 +117,45 @@ Page({
 
   /** 支付按钮点击事件 */
   toPay(){
-    console.log("点击了支付")
-  }
+    api.request_wechatPay(this.data.order.orderId).then(res => {
+      console.log("支付结果",res)
+      this.pay()
+    }).catch(err => {
+      console.log("支付失败",err)
+    })
+  },
+  pay() {
+    api.request_wechatPay(this.data.order.orderId)
+      .then(res => {
+        wx.requestPayment({
+          timeStamp: res.data.data.unifiedOrderResult.timeStamp,
+          nonceStr: res.data.data.unifiedOrderResult.nonceStr,
+          package: res.data.data.unifiedOrderResult.package,
+          signType: res.data.data.unifiedOrderResult.signType,
+          paySign: res.data.data.unifiedOrderResult.paySign,
+          success: res => {
+            wx.hideLoading()
+            wx.showToast({
+              title: '支付成功!',
+            })
+            setTimeout(function () {
+              wx.redirectTo({
+                url: '../scan/scan',
+              })
+            }, 2000)
+          },
+          fail: res => {
+            wx.hideLoading()
+            wx.showModal({
+              title: '支付失败',
+              content: res.errMsg + '请稍后再试',
+              showCancel: false,
+              success(res) {
+                
+              }
+            })
+          }
+        })
+      });
+  },
 })

+ 12 - 5
pages/scan/scan.js

@@ -18,6 +18,9 @@ Page({
     api.request_GetSiteInfo().then(res => {
       if(res.data.statusCode != 200) return
       console.log("站点信息",res)
+      wx.redirectTo({
+        url: '../orderConfirm/orderConfirm?nozzle=1',
+      })
       this.setData({
         isLoggedIn: true,
         userInfo: res.data.data.userInfo,
@@ -47,11 +50,15 @@ Page({
     const that = this;
     wx.scanCode({
       success(res) {
-        console.log('扫码结果:', res.result);
-        wx.showToast({
-          title: res.result,
-          icon: 'none'
-        });
+        wx.redirectTo({
+          url: res.result,
+          fail(err){
+            wx.showToast({
+              title: '跳转页面失败',
+              icon: 'none'
+            });
+          }
+        })
       },
       fail(err) {
         console.error('扫码失败:', err);

+ 15 - 1
utils/util.js

@@ -9,11 +9,25 @@ const formatTime = date => {
   return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
 }
 
+const formatDateNotSecond = isoString => {
+  const date = new Date(isoString);
+
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0'); // Months are zero-based
+  const day = String(date.getDate()).padStart(2, '0');
+  
+  const hours = String(date.getHours()).padStart(2, '0');
+  const minutes = String(date.getMinutes()).padStart(2, '0');
+
+  return `${year}-${month}-${day} ${hours}:${minutes}`;
+}
+
 const formatNumber = n => {
   n = n.toString()
   return n[1] ? n : `0${n}`
 }
 
 module.exports = {
-  formatTime
+  formatTime,
+  formatDateNotSecond
 }