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