jinshihui 2 dni temu
rodzic
commit
b73e6f4985

+ 11 - 3
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/PayController.java

@@ -211,6 +211,10 @@ public class PayController {
         return R.ok(JSONUtil.toJsonStr(response));
     }
 
+    /**
+     * 获取商户API证书序列号
+     * @return String 证书序列号
+     */
     private String getSerialNumber() {
         if (StrUtil.isEmpty(serialNo)) {
             // 获取证书序列号
@@ -514,13 +518,16 @@ public class PayController {
      */
     @GetMapping("/query/order/{outTradeNo}")
     @ApiOperation("根据商户订单号查询微信支付订单")
-    public R<String> queryOrderByOutTradeNo(@PathVariable("outTradeNo") String outTradeNo) {
+    public R queryOrderByOutTradeNo(@PathVariable("outTradeNo") String outTradeNo) {
         try {
             log.info("查询微信支付订单,商户订单号:{}", outTradeNo);
 
             // V3 API:根据商户订单号查询订单接口路径
             // GET /v3/pay/transactions/out-trade-no/{out_trade_no}
             String queryUrl = String.format("/v3/pay/transactions/out-trade-no/%s", outTradeNo);
+            log.info("查询订单URL:{}", queryUrl);
+            Map<String, String> queryParams = new HashMap<>();
+            queryParams.put("mchid", wxPayProperties.getMchId());
             // 调用微信支付V3接口查询订单
             IJPayHttpResponse response = WxPayApi.v3(
                     RequestMethodEnum.GET,
@@ -530,7 +537,7 @@ public class PayController {
                     getSerialNumber(),
                     null,
                     wxPayProperties.getCertKeyPath(),
-                    ""
+                    queryParams
             );
             log.info("查询订单响应状态:{},响应体:{}", response.getStatus(), response.getBody());
             // 处理响应
@@ -541,7 +548,8 @@ public class PayController {
 
                 if (verifySignature) {
                     log.info("商户订单号 {} 查询成功,订单信息:{}", outTradeNo, response.getBody());
-                    return R.ok(response.getBody());
+                    JSONObject result = JSONUtil.parseObj(response.getBody());
+                    return R.ok(result);
                 } else {
                     log.error("商户订单号 {} 查询响应签名验证失败", outTradeNo);
                     return R.fail("查询订单响应签名验证失败");