From 267b06a00c00857d98d694e9f282a1256149a4a7 Mon Sep 17 00:00:00 2001 From: SelfRidicule Date: Tue, 19 Mar 2024 11:44:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=8F=E8=BF=B0=EF=BC=9A=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/meeting/WxPayController.java | 25 +++++++++++++ .../controller/mobile/pay/wx/WxPayCommon.java | 36 +++++++++++++++++-- .../pay/wx/constant/WxApiConstants.java | 6 ++++ 3 files changed, 65 insertions(+), 2 deletions(-) diff --git a/ics-web/src/main/java/com/ics/controller/mobile/meeting/WxPayController.java b/ics-web/src/main/java/com/ics/controller/mobile/meeting/WxPayController.java index 65955c3..1395e3a 100644 --- a/ics-web/src/main/java/com/ics/controller/mobile/meeting/WxPayController.java +++ b/ics-web/src/main/java/com/ics/controller/mobile/meeting/WxPayController.java @@ -82,4 +82,29 @@ public class WxPayController extends BaseController { return returnParam; } + + /** + * 订单支付后回调 + */ + @PostMapping("wxMerchantOrderQuery") + public HashMap wxMerchantOrderQuery(@RequestBody Map paramMap) { + HashMap resultMap = wxPayCommon.wxMerchantOrderQuery(paramMap.get("outTradeNo")); + // 商户订单号 + String out_trade_no = resultMap.get("out_trade_no"); + // 微信支付订单号 + String transaction_id = resultMap.get("transaction_id"); + // 交易状态 + // * SUCCESS:支付成功 + // * REFUND:转入退款 + // * NOTPAY:未支付 + // * CLOSED:已关闭 + // * REVOKED:已撤销(仅付款码支付会返回) + // * USERPAYING:用户支付中(仅付款码支付会返回) + // * PAYERROR:支付失败(仅付款码支付会返回) + String trade_state = resultMap.get("trade_state"); + + return R.data(resultMap); + } + + } diff --git a/ics-web/src/main/java/com/ics/controller/mobile/pay/wx/WxPayCommon.java b/ics-web/src/main/java/com/ics/controller/mobile/pay/wx/WxPayCommon.java index cbb4f0f..931dfa6 100644 --- a/ics-web/src/main/java/com/ics/controller/mobile/pay/wx/WxPayCommon.java +++ b/ics-web/src/main/java/com/ics/controller/mobile/pay/wx/WxPayCommon.java @@ -7,6 +7,7 @@ import com.ics.controller.mobile.pay.wx.dto.WxChatPayDto; import com.wechat.pay.contrib.apache.httpclient.util.PemUtil; import org.apache.commons.lang3.StringUtils; import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.util.EntityUtils; @@ -72,6 +73,20 @@ public class WxPayCommon { return httpPost; } + /** + * 获取请求对象(Get请求) + * + * @return Get请求 + */ + public HttpGet getHttpGet(String url) { + // 1.设置请求地址 + HttpGet httpGet = new HttpGet(wxPayConfig.getDomain().concat(url)); + // 3.设置请求信息 + httpGet.setHeader("Accept", "application/json"); + return httpGet; + } + + /** * 解析响应数据 * @@ -164,8 +179,6 @@ public class WxPayCommon { } - - /** * 创建微信支付订单-jsapi方式 * @@ -217,5 +230,24 @@ public class WxPayCommon { } + /** + * 商户订单号查询订单 + */ + public HashMap wxMerchantOrderQuery(String outTradeNo) { + // 创建请求 + HttpGet httpGet = getHttpGet(WxApiConstants.MERCHANT_ORDER_NUMBER_QUERY + "/" + outTradeNo + "?mchid=" + wxPayConfig.getMchId()); + // 完成签名并执行请求 + CloseableHttpResponse response = null; + try { + response = wxPayConfig.getWxPayClient().execute(httpGet); + } catch (IOException e) { + e.printStackTrace(); + throw new RuntimeException("商户订单号查询订单请求失败"); + } + // 解析response对象 + HashMap resultMap = resolverResponse(response); + return resultMap; + } + } diff --git a/ics-web/src/main/java/com/ics/controller/mobile/pay/wx/constant/WxApiConstants.java b/ics-web/src/main/java/com/ics/controller/mobile/pay/wx/constant/WxApiConstants.java index c3a997c..47657fa 100644 --- a/ics-web/src/main/java/com/ics/controller/mobile/pay/wx/constant/WxApiConstants.java +++ b/ics-web/src/main/java/com/ics/controller/mobile/pay/wx/constant/WxApiConstants.java @@ -12,4 +12,10 @@ public class WxApiConstants { public static final String JSAPI_PAY = "/v3/pay/transactions/jsapi"; + /** + * 商户订单号查询订单 + */ + public static final String MERCHANT_ORDER_NUMBER_QUERY = "/v3/pay/transactions/out-trade-no"; + + } \ No newline at end of file