Ver código fonte

fix: 支付分订单详情使用正确的 payScoreOrderId 字段

之前误用 outTradeNo(商户订单号),应使用 payScoreOrderId(微信支付分服务订单号)。
修复后已退款/已完成/待支付的支付分订单均可查看订单详情页。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline 1 semana atrás
pai
commit
02b985e2b5

+ 4 - 4
haha-miniapp/src/main/java/com/haha/miniapp/controller/PayScoreController.java

@@ -37,11 +37,11 @@ public class PayScoreController {
     @PostMapping("/detail-sign")
     public Result<Map<String, Object>> getPayscoreDetailSign(@RequestBody Map<String, Object> params) {
         try {
-            if (!params.containsKey("outTradeNo")) {
-                return com.haha.common.constant.ResponseEnum.PARAM_FORMAT_ERROR.toResult("缺少必填参数 outTradeNo");
+            if (!params.containsKey("outOrderNo")) {
+                return com.haha.common.constant.ResponseEnum.PARAM_FORMAT_ERROR.toResult("缺少必填参数 outOrderNo");
             }
-            String outTradeNo = params.get("outTradeNo").toString();
-            Map<String, Object> data = payScoreService.getPayscoreDetailSign(outTradeNo);
+            String outOrderNo = params.get("outOrderNo").toString();
+            Map<String, Object> data = payScoreService.getPayscoreDetailSign(outOrderNo);
             return Result.success(data);
         } catch (Exception e) {
             log.error("获取支付分详情签名失败", e);

+ 1 - 1
haha-mp/src/api/payscore.ts

@@ -95,7 +95,7 @@ export const queryPayscoreByOutNo = (outOrderNo: string): Promise<{ outOrderNo:
  * 获取微信支付分订单详情签名参数(用于 wx.openBusinessView)
  */
 export interface PayscoreDetailSignRequest {
-  outTradeNo: string;
+  outOrderNo: string;
 }
 
 export interface PayscoreDetailSignResponse {

+ 3 - 3
haha-mp/src/pages/orderDetail/orderDetail.vue

@@ -129,7 +129,7 @@
             <text class="info-label">支付方式</text>
             <text class="info-value">微信</text>
           </view>
-          <view v-if="order.outTradeNo" class="info-row">
+          <view v-if="order.payScoreOrderId" class="info-row">
             <text class="info-label">支付详情</text>
             <view class="info-link" @click="viewPayDetail">
               <text class="link-text">查看详情</text>
@@ -273,11 +273,11 @@ const viewVideo = (url: string) => {
 };
 
 const viewPayDetail = async () => {
-  if (!order.value?.outTradeNo) return;
+  if (!order.value?.payScoreOrderId) return;
 
   try {
     uni.showLoading({ title: '加载中...' });
-    const signData = await getPayscoreDetailSign({ outTradeNo: order.value.outTradeNo });
+    const signData = await getPayscoreDetailSign({ outOrderNo: order.value.payScoreOrderId });
     uni.hideLoading();
 
     wx.openBusinessView({