From e6a9e6f750115579c8cc90d7e6d5bf1eebe79b90 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 05 十一月 2024 15:26:24 +0800
Subject: [PATCH] 获取农户数据去掉重复记录,微信支付的传参、返回值、接口、数据库表金额都以元为单位

---
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java |   76 ++++++++++++-------------------------
 1 files changed, 25 insertions(+), 51 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
index e757992..7c77eb6 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
@@ -66,15 +66,15 @@
     private final RestTemplateUtil restTemplateUtil;
     private final PayHelper payHelper;
     private final VirtualCardSv virtualCardSv;
-    private final String appid = com.dy.pipIrrWechat.wechatpay.PayInfo.appid;
-    private final String secret = com.dy.pipIrrWechat.wechatpay.PayInfo.secret;
-    private final String mchid = com.dy.pipIrrWechat.wechatpay.PayInfo.mchid;
-    private final String schema = com.dy.pipIrrWechat.wechatpay.PayInfo.schema;
-    private final String signType = com.dy.pipIrrWechat.wechatpay.PayInfo.signType;
-    private final String description = com.dy.pipIrrWechat.wechatpay.PayInfo.description;
-    private final String loginUrl = com.dy.pipIrrWechat.wechatpay.PayInfo.loginUrl;
-    private final String notifyUrl = com.dy.pipIrrWechat.wechatpay.PayInfo.notifyUrl;
-    private final String grantType = com.dy.pipIrrWechat.wechatpay.PayInfo.grantType;
+    //private final String appid = com.dy.pipIrrWechat.wechatpay.PayInfo.appid;
+    //private final String secret = com.dy.pipIrrWechat.wechatpay.PayInfo.secret;
+    //private final String mchid = com.dy.pipIrrWechat.wechatpay.PayInfo.mchid;
+    //private final String schema = com.dy.pipIrrWechat.wechatpay.PayInfo.schema;
+    //private final String signType = com.dy.pipIrrWechat.wechatpay.PayInfo.signType;
+    //private final String description = com.dy.pipIrrWechat.wechatpay.PayInfo.description;
+    //private final String loginUrl = com.dy.pipIrrWechat.wechatpay.PayInfo.loginUrl;
+    //private final String notifyUrl = com.dy.pipIrrWechat.wechatpay.PayInfo.notifyUrl;
+    //private final String grantType = com.dy.pipIrrWechat.wechatpay.PayInfo.grantType;
 
     // 骞冲彴璇佷功鍏挜
     private final Map CERTIFICATE_MAP = new HashMap();
@@ -106,12 +106,12 @@
         String jsCode = code2Session.getJs_code();
 
         Map<String, Object> queryParams = new HashMap<>();
-        queryParams.put("appid", appid);
-        queryParams.put("secret", secret);
+        queryParams.put("appid", PayInfo.appid);
+        queryParams.put("secret", PayInfo.secret);
         queryParams.put("js_code", jsCode);
-        queryParams.put("grant_type", grantType);
+        queryParams.put("grant_type", com.dy.pipIrrWechat.wechatpay.PayInfo.grantType);
         Map<String, String> headerParams = new HashMap<>();
-        JSONObject job = restTemplateUtil.get(loginUrl, queryParams, headerParams);
+        JSONObject job = restTemplateUtil.get(com.dy.pipIrrWechat.wechatpay.PayInfo.loginUrl, queryParams, headerParams);
 
         if(job.getLong("errcode") != null && job.getLong("errcode") >= -1) {
             return BaseResponseUtils.buildFail("鐧诲綍鍑瘉鏍¢獙澶辫触");
@@ -163,7 +163,7 @@
         Long timestamp = System.currentTimeMillis() / 1000;
 
         byte[] certFileBs = WxCertUtil.getKey_pemBytes(resourceLoader) ;
-        String header = schema + " " + payHelper.getToken(method, httpUrl, "", nonceStr, timestamp, certFileBs);
+        String header = com.dy.pipIrrWechat.wechatpay.PayInfo.schema + " " + payHelper.getToken(method, httpUrl, "", nonceStr, timestamp, certFileBs);
 
         Map<String, String> headers = new HashMap<>();
         headers.put("Authorization", header);
@@ -199,10 +199,10 @@
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
-        // 鎺ユ敹鍙傛暟锛氱櫥褰曟�両D銆佽櫄鎷熷崱ID銆佸厖鍊奸噾棰濓紙鍒嗭級
+        // 鎺ユ敹鍙傛暟锛氱櫥褰曟�両D銆佽櫄鎷熷崱ID銆佸厖鍊奸噾棰�(鍗曚綅鍏�)
         Long sessionId = order.getSessionId();
         Long virtualId = order.getVcId();
-        Integer rechargeAmount = order.getRechargeAmount();
+        //Integer rechargeAmount = (int)(order.getRechargeAmount()*100);
 
         String prepayId = "";
 
@@ -233,7 +233,8 @@
         virtualCard.setVirtualId(virtualId);
         virtualCard.setClientId(clientId);
         virtualCard.setOrderNumber(orderNumber);
-        virtualCard.setRechargeAmount(rechargeAmount);
+        //virtualCard.setRechargeAmount(rechargeAmount);
+        virtualCard.setRechargeAmount(order.getRechargeAmount());
 
         // -1锛氳櫄鎷熷崱涓嶅瓨鍦紝0锛氭坊鍔犲厖鍊艰褰曞け璐�
         Long rechargeId = virtualCardSv.insertVCRecharge(virtualCard);
@@ -258,16 +259,16 @@
         }
 
         JSONObject job_body = new JSONObject();
-        job_body.put("appid", appid);
-        job_body.put("mchid", mchid);
-        job_body.put("description", description);
+        job_body.put("appid", PayInfo.appid);
+        job_body.put("mchid", PayInfo.mchid);
+        job_body.put("description", com.dy.pipIrrWechat.wechatpay.PayInfo.description);
         job_body.put("out_trade_no", orderNumber);
         job_body.put("attach", DataSourceContext.get());
-        job_body.put("notify_url", notifyUrl);
+        job_body.put("notify_url", com.dy.pipIrrWechat.wechatpay.PayInfo.notifyUrl);
 
         //璁㈠崟閲戦
         JSONObject job_amount = new JSONObject();
-        job_amount.put("total", rechargeAmount);
+        job_amount.put("total", (int)(order.getRechargeAmount()*100));
         job_amount.put("currency", "CNY");
         job_body.put("amount", job_amount);
 
@@ -285,7 +286,7 @@
 
         String body = job_body.toJSONString();
         byte[] certFileBs = WxCertUtil.getKey_pemBytes(resourceLoader) ;
-        String header = schema + " " + payHelper.getToken(method, httpUrl, body, nonceStr, timestamp, certFileBs);
+        String header = com.dy.pipIrrWechat.wechatpay.PayInfo.schema + " " + payHelper.getToken(method, httpUrl, body, nonceStr, timestamp, certFileBs);
 
         Map<String, String> headers = new HashMap<>();
         headers.put("Authorization", header);
@@ -333,7 +334,7 @@
         job_result.put("timeStamp", timeStamp);
         job_result.put("nonceStr", nonceStr);
         job_result.put("package", pkg);
-        job_result.put("signType", signType);
+        job_result.put("signType", com.dy.pipIrrWechat.wechatpay.PayInfo.signType);
         job_result.put("paySign", paySign);
 
         return BaseResponseUtils.buildSuccess(job_result) ;
@@ -561,32 +562,5 @@
             return BaseResponseUtils.buildFail("娣诲姞寰俊鏀粯淇℃伅澶辫触");
         }
         return BaseResponseUtils.buildSuccess(true) ;
-    }
-
-    /**
-     * 鍒濆鍖栧井淇℃敮浠樹俊鎭�
-     * @param appId
-     * @return
-     */
-    @PostMapping(path = "init_wechatpay")
-    public BaseResponse<Boolean> initWechatpay(@RequestParam("appId") String appId) throws Exception {
-        if(appId == null || appId.trim().length() == 0) {
-            return BaseResponseUtils.buildErrorMsg("灏忕▼搴忓敮涓�鏍囪瘑涓嶈兘涓虹┖");
-        }
-        appId = AES.encrypt(appId);
-
-        SeWechatpay seWechatpay = paymentSv.getWechatpayByAppId(appId);
-        if(seWechatpay != null) {
-            PayInfo.appid = AES.decrypt(seWechatpay.getAppId());
-            PayInfo.secret = AES.decrypt(seWechatpay.getAppSecret());
-            PayInfo.mchid = AES.decrypt(seWechatpay.getMchId());
-            PayInfo.key = AES.decrypt(seWechatpay.getMchKey());
-            PayInfo.serial_no = AES.decrypt(seWechatpay.getSerialNo());
-            PayInfo.notifyUrl = AES.decrypt(seWechatpay.getNotifyUrl());
-            return BaseResponseUtils.buildSuccess(true) ;
-        }else {
-            return BaseResponseUtils.buildErrorMsg("灏忕▼搴忓敮涓�鏍囪瘑閿欒鎴栧叾淇℃伅涓嶅瓨鍦�");
-        }
-
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0