wangming 1 개월 전
부모
커밋
8278de8ee3
1개의 변경된 파일45개의 추가작업 그리고 0개의 파일을 삭제
  1. 45 0
      yami-shop-wx/src/main/java/com/yami/shop/wx/service/impl/WxProviderServiceImpl.java

+ 45 - 0
yami-shop-wx/src/main/java/com/yami/shop/wx/service/impl/WxProviderServiceImpl.java

@@ -28,6 +28,7 @@ import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.util.EntityUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.PathVariable;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -124,6 +125,50 @@ public class WxProviderServiceImpl implements WxProviderService {
         return Base64.getEncoder().encodeToString(sign.sign());
     }
 
+    /**
+     * 订单号查询订单
+     *
+     * @param orderNo orderNo
+     * @return Map
+     */
+    public Map<String, Object> getPayResultByOrderNo(String orderNo) {
+        log.info("根据订单号查询订单,订单号: {}", orderNo);
+        String url = WxConstants.BASE_URL.concat("/pay/partner/transactions/out-trade-no/".concat(orderNo))
+                .concat("?sp_mchid=").concat(WxConstants.SP_MCH_ID)
+                .concat("&sub_mchid=").concat(WxConstants.SUB_MCH_ID);
+        String res = wechatHttpGet(url);
+        log.info("查询订单结果:{}", res);
+        Map<String, Object> resMap = JSONObject.parseObject(res, new TypeReference<Map<String, Object>>() {
+        });
+        String outTradeNo = resMap.get("out_trade_no").toString();
+        String appId = resMap.get("sp_appid").toString();
+        String mchId = resMap.get("sp_mchid").toString();
+        String subMchId = resMap.get("sub_mchid").toString();
+        // 支付后才返回参数
+        Object payer = resMap.get("payer");
+        Object attach = resMap.get("attach");
+        /*
+                  交易状态,枚举值:
+                  SUCCESS:支付成功
+                  REFUND:转入退款
+                  NOTPAY:未支付
+                  CLOSED:已关闭
+                  REVOKED:已撤销(仅付款码支付会返回)
+                  USERPAYING:用户支付中(仅付款码支付会返回)
+                  PAYERROR:支付失败(仅付款码支付会返回)
+         */
+        String tradeState = resMap.get("trade_state").toString();
+        log.info("outTradeNo:" + outTradeNo);
+        log.info("appId:" + appId);
+        log.info("mchId:" + mchId);
+        log.info("tradeState:" + tradeState);
+        log.info("payer:" + payer);
+        log.info("payer:" + attach);
+        log.info("subMchId:" + subMchId);
+        return resMap;
+    }
+
+
     /**
      * 关闭(取消)订单
      *