|
|
@@ -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("查询订单响应签名验证失败");
|