Browse Source

移出订单状态查询功能到公众号服务器。

lighter 4 years ago
parent
commit
262d08c207

+ 1 - 19
pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <groupId>thyyxxk</groupId>
     <artifactId>web-server</artifactId>
-    <version>2.1</version>
+    <version>2.2</version>
     <name>web-server</name>
     <description>server for yibao-web</description>
 
@@ -125,24 +125,6 @@
             <artifactId>wechatpay-apache-httpclient</artifactId>
             <version>0.2.1</version>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.retry</groupId>
-            <artifactId>spring-retry</artifactId>
-            <version>1.2.5.RELEASE</version>
-        </dependency>
-        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
-        <dependency>
-            <groupId>org.aspectj</groupId>
-            <artifactId>aspectjweaver</artifactId>
-            <version>1.9.5</version>
-        </dependency>
-        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
-        <dependency>
-            <groupId>org.aspectj</groupId>
-            <artifactId>aspectjrt</artifactId>
-            <version>1.9.5</version>
-        </dependency>
-
     </dependencies>
 
     <build>

+ 0 - 2
src/main/java/thyyxxk/webserver/WebServerApplication.java

@@ -3,7 +3,6 @@ package thyyxxk.webserver;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.retry.annotation.EnableRetry;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
@@ -11,7 +10,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableTransactionManagement
 @EnableScheduling
 @EnableConfigurationProperties
-@EnableRetry
 public class WebServerApplication {
 
     public static void main(String[] args) {

+ 1 - 1
src/main/java/thyyxxk/webserver/controller/mzpayqrcode/MzPayQrcodeController.java

@@ -28,7 +28,7 @@ public class MzPayQrcodeController {
 
     @PassToken
     @PostMapping("/getDetailFees")
-    public ResultVo<JSONObject> getDetailFees(@RequestBody RoughIndexPojo param) throws Exception {
+    public ResultVo<JSONObject> getDetailFees(@RequestBody RoughIndexPojo param) {
         return service.getDetailFees(param);
     }
 

+ 2 - 65
src/main/java/thyyxxk/webserver/controller/wxapi/SendWxInfoController.java

@@ -2,34 +2,16 @@ package thyyxxk.webserver.controller.wxapi;
 
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.client.RestTemplate;
 import thyyxxk.webserver.config.auth.PassToken;
-import thyyxxk.webserver.config.exception.ExceptionEnum;
-import thyyxxk.webserver.dao.wxapi.WxApiDao;
-import thyyxxk.webserver.pojo.ResultVo;
-import thyyxxk.webserver.pojo.wxapi.PushMessageParam;
-import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.TokenUtil;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 @Slf4j
 @RestController
 @RequestMapping("/sendWxInfo")
 public class SendWxInfoController {
     private static final String SEND_MSG_URL = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN";
-    private final WxApiDao dao;
-
-    @Autowired
-    public SendWxInfoController(WxApiDao dao) {
-        this.dao = dao;
-    }
 
     @PassToken
     @GetMapping("/send")
@@ -46,56 +28,11 @@ public class SendWxInfoController {
         param.put("msgtype", "text");
         param.put("text", msgObj);
         param.put("safe", 0);
-        log.info("send wx info >>> {}", param);
+        log.info("推送企业信息消息 >>> {}", param);
         RestTemplate restTemplate = new RestTemplate();
         String resStr = restTemplate.postForObject(requestUrl, param, String.class);
         JSONObject retObj = JSONObject.parseObject(resStr);
-        log.info("wx response >>> {}", retObj);
+        log.info("推送企业信息消息结果 >>> {}", retObj);
         return retObj;
     }
-
-    @PassToken
-    @GetMapping("/setGzhToken")
-    public ResultVo<String> setGzhToken(@RequestParam("token") String token) {
-        log.info("被动设置微信公众号ACCESS_TOKEN:{}", token);
-        TokenUtil.setGzhToken(token);
-        return ResultVoUtil.success("设置公众号TOKEN成功。");
-    }
-
-    @PassToken
-    @PostMapping("/pushGzhMessage")
-    public ResultVo<List<Map<String, Object>>> pushMessage(@RequestBody @Validated PushMessageParam param) {
-        String token = TokenUtil.getGzhToken();
-        RestTemplate template = new RestTemplate();
-        if (token.equals("")) {
-            String getTokenUrl = "http://192.168.200.3:8805/wxserver/wxApi/getGzhToken?from=THYYXXK-DJ";
-            ResultVo<String> res = template.getForObject(getTokenUrl, ResultVo.class);
-            if (res.getCode() == ExceptionEnum.SUCCESS.getCode()) {
-                TokenUtil.setGzhToken(res.getData());
-            } else {
-                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "无效的token");
-            }
-        }
-        JSONObject content = param.getMsgContext();
-        final String wxUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + TokenUtil.getGzhToken();
-        List<String> openIds = dao.selectOpenIdByIcCardNo(param.getCardNo());
-        if (null == openIds || openIds.isEmpty()) {
-            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "未找到卡号【" + param.getCardNo() + "】的openId。");
-        }
-        List<Map<String, Object>> resMapArr = new ArrayList<>();
-        for (String openId : openIds) {
-            content.replace("touser", openId);
-            log.info("推送消息:{}", content);
-            String res = template.postForObject(wxUrl, content, String.class);
-            log.info("推送消息结果:{}", res);
-            JSONObject resObj = JSONObject.parseObject(res);
-            Map<String, Object> map = new HashMap<>();
-            map.put("wxReturnCode", resObj.getIntValue("errcode"));
-            map.put("wxReturnMessage", resObj.getString("errmsg"));
-            map.put("openId", openId);
-            map.put("cardNo", param.getCardNo());
-            resMapArr.add(map);
-        }
-        return ResultVoUtil.success(resMapArr);
-    }
 }

+ 0 - 27
src/main/java/thyyxxk/webserver/controller/wxorderstate/QueryWxOrderStateController.java

@@ -1,27 +0,0 @@
-package thyyxxk.webserver.controller.wxorderstate;
-
-import com.alibaba.fastjson.JSONObject;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import thyyxxk.webserver.config.auth.PassToken;
-import thyyxxk.webserver.service.wxorderstate.QueryWxOrderStateService;
-
-import java.io.IOException;
-
-@RestController
-@RequestMapping("/queryWxOrderState")
-public class QueryWxOrderStateController {
-    private final QueryWxOrderStateService service;
-
-    public QueryWxOrderStateController(QueryWxOrderStateService service) {
-        this.service = service;
-    }
-
-    @PassToken
-    @GetMapping("/start")
-    public JSONObject queryOrderState(@RequestParam("tradeNo") String tradeNo) throws IOException {
-        return service.queryOrderState(tradeNo);
-    }
-}

+ 1 - 16
src/main/java/thyyxxk/webserver/dao/mzpayqrcode/MzPayQrcodeDao.java

@@ -1,26 +1,11 @@
 package thyyxxk.webserver.dao.mzpayqrcode;
 
-import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
-import thyyxxk.webserver.pojo.wxapi.WxPayOrder;
 
 @Mapper
 public interface MzPayQrcodeDao {
     @Select("select ltrim(rtrim(social_no)) from mz_patient_mi where patient_id=#{patientId}")
-    String getSocialNo(@Param("patientId") String patientId);
-
-    @Select("select rtrim(name) from mz_patient_mi where patient_id=#{patientId}")
-    String selectPatientName(@Param("patientId") String patientId);
-
-    @Insert("insert into t_wechat_pay_order (body, open_id, total_fee, patient_id, " +
-            "patient_name, inpatient_no, admiss_times, app_id, mch_id, prepay_id, " +
-            "time_stamp, trade_no, create_order_sign, pay_sign, spbill_create_ip, " +
-            "create_datetime, pay_status, serial_no, order_type, his_ord_num) " +
-            "values (#{body},#{openId},#{totalFee},#{patientId},#{patientName},#{inpatientNo}," +
-            "#{admissTimes},#{appId},#{mchId},#{prepayId},#{timeStamp},#{tradeNo}," +
-            "#{createOrderSign},#{paySign},#{spbillCreateIp},#{createDatetime}," +
-            "0,#{serialNo},#{orderType},#{hisOrdNum})")
-    void insertNewOrder(WxPayOrder param);
+    String selectSocialNoByPatientId(@Param("patientId") String patientId);
 }

+ 0 - 3
src/main/java/thyyxxk/webserver/dao/wxapi/WxApiDao.java

@@ -24,7 +24,4 @@ public interface WxApiDao {
     @Update("update t_wechat_pay_order set refund_id=#{refundId}, refund_op_code=#{refundOpCode}, " +
             "refund_op_datetime=#{refundDatetime}, refund_reason=#{refundReason}, pay_status=4 where id=#{id}")
     void updateRefundId(RefundParam param);
-
-    @Select("select open_id from t_wechat_patient_bind where ic_card_no=#{cardNo} and del_flag=0")
-    List<String> selectOpenIdByIcCardNo(@Param("cardNo") String cardNo);
 }

+ 2 - 2
src/main/java/thyyxxk/webserver/pojo/mzpayqrcode/RoughIndexPojo.java

@@ -7,9 +7,9 @@ public class RoughIndexPojo {
     private String patientId;
     private String deptName;
     private String doctorName;
-    private Double totalAmt;
+    private Integer totalAmt;
     private String patName;
-    private Double selfAmt;
+    private Integer selfAmt;
     private String payName;
     private String priceTime;
     private String hisOrdNum;

+ 0 - 17
src/main/java/thyyxxk/webserver/pojo/wxapi/PushMessageParam.java

@@ -1,17 +0,0 @@
-package thyyxxk.webserver.pojo.wxapi;
-
-import com.alibaba.fastjson.JSONObject;
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-@Data
-public class PushMessageParam {
-    private String serviceCode;
-    @NotBlank(message = "诊疗卡号不能为空。")
-    private String cardNo;
-    @NotNull(message = "消息内容不能为空。")
-    private JSONObject msgContext;
-    private String channel;
-}

+ 0 - 2
src/main/java/thyyxxk/webserver/scheduled/FetchClockinDataTask.java

@@ -33,7 +33,6 @@ public class FetchClockinDataTask {
 
     @Scheduled(cron = "0 0 8 ? * *")
     public void queryClockInData() {
-
         try {
             InetAddress addr = InetAddress.getLocalHost();
             String address=addr.getHostName();
@@ -43,7 +42,6 @@ public class FetchClockinDataTask {
         } catch (Exception e) {
             e.printStackTrace();
         }
-
         final String yesterday = getYesterdayDate();
         ClockinPojo param = new ClockinPojo();
         param.setTimes(yesterday, yesterday);

+ 8 - 68
src/main/java/thyyxxk/webserver/service/mzpayqrcode/MzPayQrcodeService.java

@@ -3,10 +3,6 @@ package thyyxxk.webserver.service.mzpayqrcode;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
@@ -16,11 +12,8 @@ import thyyxxk.webserver.pojo.HrgResponse;
 import thyyxxk.webserver.pojo.ResultVo;
 import thyyxxk.webserver.pojo.mzpayqrcode.PatInfoPojo;
 import thyyxxk.webserver.pojo.mzpayqrcode.RoughIndexPojo;
-import thyyxxk.webserver.pojo.wxapi.WxPayOrder;
 import thyyxxk.webserver.utils.*;
 
-import java.nio.charset.StandardCharsets;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -36,7 +29,7 @@ public class MzPayQrcodeService {
     }
 
     private PatInfoPojo getPatientInfo(String patientId) {
-        String socialNo = dao.getSocialNo(patientId);
+        String socialNo = dao.selectSocialNoByPatientId(patientId);
         JSONObject obj = new JSONObject();
         obj.put("patIdType", 11);
         obj.put("patIdNo", socialNo);
@@ -68,7 +61,8 @@ public class MzPayQrcodeService {
         return ResultVoUtil.success(list);
     }
 
-    public ResultVo<JSONObject> getDetailFees(RoughIndexPojo param) throws Exception {
+    @SuppressWarnings("unchecked")
+    public ResultVo<JSONObject> getDetailFees(RoughIndexPojo param) {
         PatInfoPojo patInfo = getPatientInfo(param.getPatientId());
         if (null == patInfo || null == patInfo.getResultCode() || 0 != patInfo.getResultCode()) {
             return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR, "无法获取到患者个人信息!");
@@ -89,11 +83,13 @@ public class MzPayQrcodeService {
         List<Map<String, String>> list = FilterUtil.cast(hrgRes.getData());
         JSONObject retObj = new JSONObject();
         retObj.put("list", makeSimpleData(list));
-        String wxQrcode = createOrder(param.getTotalAmt().intValue(), param.getPatientId(), param.getHisOrdNum());
-        if (null == wxQrcode) {
+        RestTemplate restTemplate = new RestTemplate();
+        String url = "http://192.168.200.3:8805/wxserver/wxApi/createOrderForMzGuideBill";
+        ResultVo<String> qrResult = restTemplate.postForObject(url, param, ResultVo.class);
+        if (null == qrResult || qrResult.getCode() != ExceptionEnum.SUCCESS.getCode()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请求微信支付二维码失败,请联系管理员。");
         }
-        retObj.put("wxQrcode", wxQrcode);
+        retObj.put("wxQrcode", qrResult.getData());
         return ResultVoUtil.success(retObj);
     }
 
@@ -131,60 +127,4 @@ public class MzPayQrcodeService {
         }
         return array;
     }
-
-    private String createOrder(Integer totalAmt, String patientId, String hisOrdNum) throws Exception {
-        String outTradeNo = SnowFlakeId.instance().nextId();
-        JSONObject body = new JSONObject();
-        body.put("appid", WxPayUtil.APP_ID);
-        body.put("mchid", WxPayUtil.MERCHANT_ID);
-        body.put("description", "湖南泰和医院-门诊缴费");
-        body.put("attach", "湖南泰和医院-门诊缴费");
-        body.put("out_trade_no", outTradeNo);
-        body.put("notify_url", WxPayUtil.NOTIFY_URL);
-        JSONObject cny = new JSONObject();
-        cny.put("total", totalAmt);
-        cny.put("currency", "CNY");
-        body.put("amount", cny);
-        String reqdata = JSONObject.toJSONString(body);
-        log.info("请求微信支付二维码:{}", reqdata);
-        HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/v3/pay/transactions/native");
-        StringEntity entity = new StringEntity(reqdata, StandardCharsets.UTF_8);
-        entity.setContentEncoding("UTF-8");
-        entity.setContentType("application/json");
-        httpPost.setEntity(entity);
-        httpPost.addHeader("Content-Type", "application/json;charset=UTF-8");
-        httpPost.addHeader("Accept", "application/json");
-        //完成签名并执行请求
-        CloseableHttpResponse response = WxPayUtil.getClosableHttpClient().execute(httpPost);
-        int statusCode = response.getStatusLine().getStatusCode();
-        String ret = EntityUtils.toString(response.getEntity());
-        if (statusCode == 200) {
-            insertIntoDb(outTradeNo, totalAmt, patientId, hisOrdNum);
-            JSONObject retObj = JSONObject.parseObject(ret);
-            return retObj.getString("code_url");
-        } else {
-            log.error("请求失败:{}", ret);
-            return null;
-        }
-    }
-
-    private void insertIntoDb(String outTradeNo, Integer total, String patientId, String hisOrdNum) {
-        long timesStamp = System.currentTimeMillis() / 1000;
-        WxPayOrder order = new WxPayOrder();
-        order.setAppId(WxPayUtil.APP_ID);
-        order.setBody("门诊缴费");
-        order.setOpenId("");
-        order.setTotalFee(DecimalUtil.moneyFenToYuan(total));
-        order.setPatientId(patientId);
-        order.setPatientName(dao.selectPatientName(patientId));
-        order.setMchId(WxPayUtil.MERCHANT_ID);
-        order.setTimeStamp(String.valueOf(timesStamp));
-        order.setTradeNo(outTradeNo);
-        order.setCreateDatetime(new Date());
-        order.setPayStatus(0);
-        order.setSerialNo(SnowFlakeId.instance().nextId());
-        order.setOrderType(2);
-        order.setHisOrdNum(hisOrdNum);
-        dao.insertNewOrder(order);
-    }
 }

+ 3 - 4
src/main/java/thyyxxk/webserver/service/wxapi/WxApiService.java

@@ -118,12 +118,11 @@ public class WxApiService {
         WxPayUtil wxPayUtil = new WxPayUtil();
         char[] password = WxPayUtil.MERCHANT_ID.toCharArray();
         InputStream certStream = wxPayUtil.getCertStream();
-        KeyStore ks = KeyStore.getInstance("PKCS12");
-        ks.load(certStream, password);
+        KeyStore keyStore = KeyStore.getInstance("PKCS12");
+        keyStore.load(certStream, password);
 
         KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
-        kmf.init(ks, password);
-
+        kmf.init(keyStore, password);
         SSLContext sslContext = SSLContext.getInstance("TLS");
         sslContext.init(kmf.getKeyManagers(), null, new SecureRandom());
 

+ 0 - 44
src/main/java/thyyxxk/webserver/service/wxorderstate/QueryWxOrderStateService.java

@@ -1,44 +0,0 @@
-package thyyxxk.webserver.service.wxorderstate;
-
-import com.alibaba.fastjson.JSONObject;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.util.EntityUtils;
-import org.springframework.retry.annotation.Backoff;
-import org.springframework.retry.annotation.Recover;
-import org.springframework.retry.annotation.Retryable;
-import org.springframework.stereotype.Service;
-import thyyxxk.webserver.utils.WxPayUtil;
-
-import java.io.IOException;
-
-@Slf4j
-@Service
-public class QueryWxOrderStateService {
-
-    @Retryable(value = Exception.class, maxAttempts = 5, backoff = @Backoff(delay = 1000, multiplier = 1.5))
-    public JSONObject queryOrderState(String tradeNo) throws IOException {
-        log.info("spring-retry任务:查询订单状态:{}", tradeNo);
-        String url = "https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/" +
-                tradeNo + "?mchid=" + WxPayUtil.MERCHANT_ID;
-        HttpGet httpGet = new HttpGet(url);
-        httpGet.addHeader("Accept", "application/json");
-        CloseableHttpResponse response = WxPayUtil.getClosableHttpClient().execute(httpGet);
-        String ret = EntityUtils.toString(response.getEntity());
-        JSONObject obj = JSONObject.parseObject(ret);
-        log.info("spring-retry任务:查询订单状态结果: {}", obj);
-        if (null == obj || null == obj.getString("trade_state")) {
-            throw new NullPointerException("spring-retry任务:服务异常,未查询到内容。");
-        }
-        return obj;
-    }
-
-    @Recover
-    public JSONObject recover(Exception e) {
-        JSONObject obj = new JSONObject();
-        obj.put("trade_state", "UNREACHABLE");
-        log.info("spring-retry任务:查询订单状态失败。{}", e.getLocalizedMessage());
-        return obj;
-    }
-}

+ 0 - 6
src/main/java/thyyxxk/webserver/utils/DecimalUtil.java

@@ -32,10 +32,4 @@ public class DecimalUtil {
         BigDecimal hundred = new BigDecimal("100");
         return fee.multiply(hundred).setScale(0, BigDecimal.ROUND_CEILING).toPlainString();
     }
-
-    public static BigDecimal moneyFenToYuan(Integer fee) {
-        BigDecimal cents = new BigDecimal(fee);
-        BigDecimal hundred = new BigDecimal("100");
-        return cents.divide(hundred, 2, BigDecimal.ROUND_DOWN);
-    }
 }

+ 0 - 9
src/main/java/thyyxxk/webserver/utils/TokenUtil.java

@@ -11,7 +11,6 @@ public class TokenUtil {
     private static String corpWechatToken = "";
     private static String clockinToken = "";
     private static String sendCorpWxMsgToken = "";
-    private static String gzhToken = "";
 
     public static String getTokenUserId() {
         String token = Objects.requireNonNull(getRequest()).getHeader("token");// 从 http 请求头中取出 token
@@ -47,12 +46,4 @@ public class TokenUtil {
     public static void setSendCorpWxMsgToken(String token) {
         sendCorpWxMsgToken = token;
     }
-
-    public static String getGzhToken() {
-        return gzhToken;
-    }
-
-    public static void setGzhToken(String token) {
-        gzhToken = token;
-    }
 }

+ 0 - 63
src/main/java/thyyxxk/webserver/utils/WxPayUtil.java

@@ -1,36 +1,13 @@
 package thyyxxk.webserver.utils;
 
-import com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;
-import com.wechat.pay.contrib.apache.httpclient.auth.AutoUpdateCertificatesVerifier;
-import com.wechat.pay.contrib.apache.httpclient.auth.PrivateKeySigner;
-import com.wechat.pay.contrib.apache.httpclient.auth.WechatPay2Credentials;
-import com.wechat.pay.contrib.apache.httpclient.auth.WechatPay2Validator;
-import com.wechat.pay.contrib.apache.httpclient.util.PemUtil;
-import org.apache.http.impl.client.CloseableHttpClient;
-
 import java.io.*;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.security.PrivateKey;
-//import org.apache.commons.codec.binary.Base64;
-//import java.security.KeyFactory;
-//import java.security.NoSuchAlgorithmException;
-//import java.security.spec.InvalidKeySpecException;
-//import java.security.spec.PKCS8EncodedKeySpec;
 
 public class WxPayUtil {
-
     public static final String APP_ID = "wxbde6b16acad84204";
     public static final String MERCHANT_ID = "1574204121";
     public static final String MERCHANT_KEY = "lilaiwflzIOLJI2320JLZL2Llisd02ak";
-    public static final String MERCHANT_SERIAL_NO = "6574E696C4DB0B93EBD0D29B5DE809F31E04FC6D";
-    public static final String API_V3_KEY = "zxkkOIL9Z909lkjl2lzczi2KLsol2wct";
     public static final String CERT_PATH = "D:\\a.snapshot\\zwxcert\\apiclient_cert.p12";
-    public static final String PERM_KEY = "D:\\a.snapshot\\zwxcert\\apiclient_key.pem";
-    public static final String NOTIFY_URL = "http://staticweb.hnthyy.cn/wxserver/wxPayNotify/notify";
     public static byte[] CERTDATA;
-
     static {
         try {
             File file = new File(CERT_PATH);
@@ -42,47 +19,7 @@ public class WxPayUtil {
             e.printStackTrace();
         }
     }
-
     public InputStream getCertStream() {
         return new ByteArrayInputStream(CERTDATA);
     }
-
-//    public static PrivateKey getPrivateKeyObject() throws IOException {
-//        String content = new String(Files.readAllBytes(Paths.get(PERM_KEY)), StandardCharsets.UTF_8);
-//        try {
-//            String privateKey = content.replace("-----BEGIN PRIVATE KEY-----", "")
-//                    .replace("-----END PRIVATE KEY-----", "")
-//                    .replaceAll("\\s+", "");
-//            KeyFactory kf = KeyFactory.getInstance("RSA");
-//            return kf.generatePrivate(
-//                    new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKey)));
-//        } catch (NoSuchAlgorithmException e) {
-//            throw new RuntimeException("当前Java环境不支持RSA", e);
-//        } catch (InvalidKeySpecException e) {
-//            throw new RuntimeException("无效的密钥格式");
-//        }
-//    }
-
-    public static String getPrivateKeyString() throws IOException {
-        String content = new String(Files.readAllBytes(Paths.get(PERM_KEY)), StandardCharsets.UTF_8);
-        return content.replace("-----BEGIN PRIVATE KEY-----", "")
-                .replace("-----END PRIVATE KEY-----", "")
-                .replaceAll("\\s+", "");
-    }
-
-    public static CloseableHttpClient getClosableHttpClient() throws IOException {
-        // 加载商户私钥(privateKey:私钥字符串)
-        PrivateKey merchantPrivateKey = PemUtil
-                .loadPrivateKey(new ByteArrayInputStream(getPrivateKeyString().getBytes(StandardCharsets.UTF_8)));
-        // 加载平台证书(mchId:商户号,mchSerialNo:商户证书序列号,apiV3Key:V3秘钥)
-        AutoUpdateCertificatesVerifier verifier = new AutoUpdateCertificatesVerifier(
-                new WechatPay2Credentials(MERCHANT_ID,
-                        new PrivateKeySigner(MERCHANT_SERIAL_NO, merchantPrivateKey)),
-                API_V3_KEY.getBytes(StandardCharsets.UTF_8));
-        // 初始化httpClient
-        return WechatPayHttpClientBuilder.create()
-                .withMerchant(MERCHANT_ID, MERCHANT_SERIAL_NO, merchantPrivateKey)
-                .withValidator(new WechatPay2Validator(verifier)).build();
-    }
-
 }