From 46bb732ced2a2d262cfd728d38a9fdefd4ced5ee Mon Sep 17 00:00:00 2001 From: linhw <5331581+linhw11@user.noreply.gitee.com> Date: Mon, 27 May 2024 11:14:32 +0800 Subject: [PATCH] ~ --- .../ruoyi/app/controller/PayController.java | 59 +----- .../com/ruoyi/app/service/AlipayService.java | 175 ++---------------- .../com/ruoyi/app/utils/AlipayConstant.java | 34 ++++ 3 files changed, 55 insertions(+), 213 deletions(-) create mode 100644 gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/utils/AlipayConstant.java diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java index 31551f3..3f514d2 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java @@ -15,6 +15,7 @@ import com.ruoyi.app.mapper.AppUserMapper; import com.ruoyi.app.service.AlipayService; import com.ruoyi.app.service.IAppDynamicCommentService; import com.ruoyi.app.service.IPayService; +import com.ruoyi.app.utils.AlipayConstant; import com.ruoyi.app.utils.ExcelUtils; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.poi.ExcelUtil; @@ -364,7 +365,7 @@ public class PayController extends BaseController params.put (name,valueStr); } //公钥证书验签示例代码 - boolean signVerified = AlipaySignature.rsaCertCheckV1(params,"/Users/wyh/Documents/code/gan/gan-modules/ruoyi-gan/src/main/resources/alipayCertPublicKey_RSA2.crt","UTF-8","RSA2"); + boolean signVerified = AlipaySignature.rsaCertCheckV1(params,AlipayConstant.ALIPAY_PUBLIC_CERT_PATH,AlipayConstant.CHARSET,AlipayConstant.SIGN_TYPE); PrintWriter out; try { out = response.getWriter(); @@ -400,58 +401,6 @@ public class PayController extends BaseController log.info("异常订单:" + params.toString()); log.info("========>PrintWriter fail"); } - /*StringBuilder sb = new StringBuilder(); - InputStream in; - try { - in = request.getInputStream(); - InputStreamReader reader = new InputStreamReader(in); - BufferedReader br = new BufferedReader(reader); - String s = ""; - while ((s = br.readLine()) != null) { - sb.append(s); - } - br.close(); - reader.close(); - in.close(); - } catch (IOException e) { - log.info("获取返回信息失败"); - } - log.info("微信返回来的字符串" + sb.toString()); - WeChatPayResult wexinResult = getResultByXml(sb.toString()); - PrintWriter out; - try { - out = response.getWriter(); - if (!("SUCCESS".equals(wexinResult.getResultCode()))) { - out.println("fail"); - } - - String outTradeNo = wexinResult.getOutTradeNo(); - AppOrder appOrder = appOrderMapper.selectOneByOutTradeNo(outTradeNo); - - AppOrder entity = new AppOrder(); - entity.setId(appOrder.getId()); - entity.setTradeNo(wexinResult.getTransactionId()); - entity.setPayStatus(2); - entity.setPayTime(new Date()); - appOrderMapper.updateAppOrder(entity); - - AppOrderPay miniOrderWechatPay = new AppOrderPay(); - miniOrderWechatPay.setAppid(wexinResult.getAppid()); - miniOrderWechatPay.setNoncestr(wexinResult.getNonceStr()); - miniOrderWechatPay.setOuttradeno(wexinResult.getOutTradeNo()); - miniOrderWechatPay.setResultcode(wexinResult.getResultCode()); - miniOrderWechatPay.setTimeend(wexinResult.getTimeEnd()); - miniOrderWechatPay.setTotalfee(wexinResult.getTotalFee()); - miniOrderWechatPay.setTransactionid(wexinResult.getTransactionId()); - appOrderPayMapper.insertAppOrderPay(miniOrderWechatPay); - - //修改用户信息 - updateUser(appOrder); - out.println("success"); - } catch (Exception e) { - log.info("异常订单:" + wexinResult.toString()); - log.info("========>PrintWriter fail"); - }*/ } @@ -530,7 +479,7 @@ public class PayController extends BaseController AppOrder order = new AppOrder(); order.setOutTradeNo(orderNo); order.setPrice(appOrderArg.getPrice()); - order.setAppId(AlipayService.APP_ID); + order.setAppId(AlipayConstant.APP_ID); order.setUserId(appOrderArg.getUserId()); order.setPayStatus(1); order.setPaySoure(2); @@ -563,7 +512,7 @@ public class PayController extends BaseController params.put (name,valueStr); } //公钥证书验签示例代码 - boolean signVerified = AlipaySignature.rsaCertCheckV1(params,"/Users/wyh/Documents/code/gan/gan-modules/ruoyi-gan/src/main/resources/alipayCertPublicKey_RSA2.crt","UTF-8","RSA2"); + boolean signVerified = AlipaySignature.rsaCertCheckV1(params,AlipayConstant.ALIPAY_PUBLIC_CERT_PATH,AlipayConstant.CHARSET,AlipayConstant.SIGN_TYPE); PrintWriter out; try { out = response.getWriter(); diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java index 3e643c8..d530067 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java @@ -1,141 +1,39 @@ package com.ruoyi.app.service; import com.alibaba.fastjson.JSONObject; -import com.alipay.api.*; -import com.alipay.api.domain.AlipayOpenOperationOpenbizmockBizQueryModel; -import com.alipay.api.domain.AlipayTradeAppPayModel; -import com.alipay.api.internal.util.AlipaySignature; -import com.alipay.api.request.AlipayOpenOperationOpenbizmockBizQueryRequest; +import com.alipay.api.AlipayApiException; +import com.alipay.api.AlipayClient; +import com.alipay.api.CertAlipayRequest; +import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.AlipayTradeAppPayRequest; -import com.alipay.api.request.AlipayTradeCreateRequest; -import com.alipay.api.request.AlipayTradePagePayRequest; -import com.alipay.api.response.AlipayOpenOperationOpenbizmockBizQueryResponse; import com.alipay.api.response.AlipayTradeAppPayResponse; -import com.alipay.api.response.AlipayTradeCreateResponse; -import com.ruoyi.app.domain.AppOrderArg; import com.ruoyi.app.domain.dto.KeyUtil; +import com.ruoyi.app.utils.AlipayConstant; import com.ruoyi.common.core.utils.DateUtils; -import org.apache.poi.ss.usermodel.DataFormat; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import javax.servlet.http.HttpServletRequest; -import java.util.HashMap; -import java.util.Map; - @Service public class AlipayService { - - // 支付宝网关 -// private static final String ALIPAY_GATEWAY = "https://openapi-sandbox.dl.alipaydev.com/gateway.do"; - private static final String ALIPAY_GATEWAY = "https://openapi.alipay.com/gateway.do"; - // 应用ID - public static final String APP_ID = "2021004144677656"; - // 私钥pkcs8格式 - private static String APP_PRIVATE_KEY = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCa9QyNI3MP8xchYnrA8iW6xo6JYVTCg+rQTfCoNmExJWQYKtZhSQ5gPblrj8aRpZzyEGcHWJhgrLWk+YZxSwv3+1no5sHbHlQd/nVp+11z6Q2NKDnIJuY+FMJO0QT/wBgykyLzUTEgw0PHNqt8CNF/d1hhxMyyRiXvqkrNkNrfjvn97ULZvwAyo1ScJGogoY/JA2KoNZy2Y7W71oxeebhfm6nnEzRWCDpmaBGgh4RR4tCcQrINeM95p50STq2OCy2TVE3ow5K/bNde7wqa1iSCbRA3zUci2q8G2ADEUVEHLiO1qzK9dD+/zFeDoejnSn8mZIJVXifb7gIH5AhjV+SBAgMBAAECggEAMmg6oAMDIBIc2SBW/EMJIPwMTAZcczZEgWSJP78I2Nrn97Cfsl/4jDgoBCRuHNz59Ah/63TXhMNKB5OgN2SJTS73rXq7XxM7m9I10bcSTG1omh2WxlRZG6LXHpqB/Mw5UuJoQSyNRbIfb0OKfzvDIqrpFkzVpbyKBK+py7suaAByAeGPJJ7eKb9bz4+nYQ3p35e8QCsQNWSqziYcloJFPl+2u32+WuYQyS+uSi2C2zygNiu0sXJhf7j5AFQZTgbGNUrrmY1j4tQtYfV9iDAxAwZKVrf7/pyMtYlHnTl3qrX4T4xrndX7H7ZqsKNazgY5K3NhcEKwr4l7Dwm/LkaYHQKBgQDPv2Zy7/66cZnom6S0paYGHcw0xH++9An4NVOFtVKUAUpp42Q7t8TEJhrgdANQ5/pKGGKBYSebqStbRQ0gKlLfsOdYV7GSO/RBOB164s7pRPVTOksBBTauoHgf4EEGAmkzRZE6pw6BonJPcFXN9z7xVsocm3LSOhc714qcK8ZXXwKBgQC+8r+31bKMwysAcld+nnmTR/xOOncGBEnQtFwQIK7S/ngw4bsgC4UW/Pd5CCiK97Gbb4XnMaRSqXEFU1ZCNJyAs6onVZ5VxKl+K33DYaVBU1rUmRfyJfGU81+WpqQynbhtMgwGlxSqJh+C6tFLHAfE4kTgkrYdii5alyDyNv6wHwKBgC4T/d0wbgdcew6ktvt6YkCpC0oI62ynJC7xZP0bIp3BS4gA75JvSC1ZZkyybqnbSiB1GCQqMGbONtefkTG5MXh7/FQT30bYFW0BzUgcVlhW+zLikxA+38oLvZkUXFfA4SSGIZgoxYbrSP9loyJz3HobDekacXU/fTfArvXEn9FxAoGADzh6X8UA/odwHhD/OHCZcEwEqJewdSJSX/iAfiicxuTR39OefudsLHDtqRAlay5jUeiJ2+vxFUW8ZJhH/+8BqqCnp4sDnAKZIB2HYNOfwJ1MWDX72ql7oEvmCrQt0nsQAGRE4SGZ3BY93Mmq9Tm+xMrkgqIvMhuZpk71qVkI5DECgYEAlbKoP35QJ8PSi3npyi+va2mUNHQG3TE9coWDlr7YD0pLUA386PmjUX8z5V5SFirdBvsjKpFa54J8AWtpxPS7VYkY7fFUJRuY4sSq39uKZo88HBZ7Z0nN4R8VyqIafFzPpIPn5qWHmmi3J4u9EjWMRM6uoFk4LZ+fIk1ak6PweYM="; - - // 支付宝公钥 - private static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmrxqlKx9kN+4y8xL0M1Is8k0+gzyfvAqAbxmAEo5Axny8l7TEkCmlnYUYv0XTc3f+z0+PiP9EPegeJ/spFIgKcoDaltNgJkopQpT7bJIuZ5frq/wQXSavGlGqI/vwwZ3olasmIHvHmoBHH6dZtTrvAS3hWVKDlcy3DtGsrMO2k6QNyz8HWtFZEIIX2LAr2oy2Ed+Re5BBNBaPAFM4A2QmZ90COMe9kE6QZWcbXtMacfLi2FBXyLZtboXF9nJl3x/OicyybistZTlesbruc4eovAWtJxJ+Oy9cLmGASVERFpe3HNf0JxMlk6DXW2Bey5txFgzOyVGAx5Lf0+kNZWQRwIDAQAB"; - // 格式化 - private static final String FORMAT = "json"; - // 字符编码 - private static final String CHARSET = "UTF-8"; - // 签名类型 - private static final String SIGN_TYPE = "RSA2"; - - private static final String NOTIFY_URL = "http://139.224.213.131:7008/pay/aliPayCallback"; - private static final String SIGN_NOTIFY_URL = "http://139.224.213.131:7008/pay/aliPaySignCallback"; - - private static final String SUBJECT = "订单充值"; - - public static void main(String[] args) { - try { - // 1. 创建AlipayClient实例 - AlipayClient alipayClient = new DefaultAlipayClient(getClientParams()); - // 2. 创建使用的Open API对应的Request请求对象 - //AlipayOpenOperationOpenbizmockBizQueryRequest request = getRequest(); - - AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("out_trade_no" , KeyUtil.generateUniqueKey()); - jsonObject.put("total_amount",0.01); - jsonObject.put("subject","订单充值"); - request.setBizContent(jsonObject.toString()); - // 3. 发起请求并处理响应 - AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); - if (response.isSuccess()) { - System.out.println(response.getBody()); - System.out.println("调用成功。"); - } else { - System.out.println("调用失败,原因:" + response.getMsg() + "," + response.getSubMsg()); - } - } catch (Exception e) { - System.out.println("调用遭遇异常,原因:" + e.getMessage()); - throw new RuntimeException(e.getMessage(), e); - } - } - - - private static CertAlipayRequest getClientParams() { CertAlipayRequest certParams = new CertAlipayRequest(); - certParams.setServerUrl(ALIPAY_GATEWAY); + certParams.setServerUrl(AlipayConstant.ALIPAY_GATEWAY); //请更换为您的AppId - certParams.setAppId(APP_ID); + certParams.setAppId(AlipayConstant.APP_ID); //请更换为您的PKCS8格式的应用私钥 - certParams.setPrivateKey(APP_PRIVATE_KEY); + certParams.setPrivateKey(AlipayConstant.APP_PRIVATE_KEY); //请更换为您使用的字符集编码,推荐采用utf-8 - certParams.setCharset("utf-8"); - certParams.setFormat("json"); - certParams.setSignType("RSA2"); + certParams.setCharset(AlipayConstant.CHARSET); + certParams.setFormat(AlipayConstant.FORMAT); + certParams.setSignType(AlipayConstant.SIGN_TYPE); //请更换为您的应用公钥证书文件路径 - certParams.setCertPath("/opt/jar/gan/cert/appCertPublicKey_2021004144677656.crt"); + certParams.setCertPath(AlipayConstant.CERT_PATH); //请更换您的支付宝公钥证书文件路径 - certParams.setAlipayPublicCertPath("/opt/jar/gan/cert/alipayCertPublicKey_RSA2.crt"); + certParams.setAlipayPublicCertPath(AlipayConstant.ALIPAY_PUBLIC_CERT_PATH); //更换为支付宝根证书文件路径 - certParams.setRootCertPath("/opt/jar/gan/cert/alipayRootCert.crt"); + certParams.setRootCertPath(AlipayConstant.ROOT_CERT_PATH); return certParams; } - private static AlipayOpenOperationOpenbizmockBizQueryRequest getRequest() { - // 初始化Request,并填充Model属性。实际调用时请替换为您想要使用的API对应的Request对象。 - AlipayOpenOperationOpenbizmockBizQueryRequest request = new AlipayOpenOperationOpenbizmockBizQueryRequest(); - AlipayOpenOperationOpenbizmockBizQueryModel model = new AlipayOpenOperationOpenbizmockBizQueryModel(); - model.setBizNo("test"); - request.setBizModel(model); - return request; - } - - - /*String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQChzpB6JWlP/2ZWtxcjvphN/ePSCkWYe1hSRwOyy+3jTvA31aVuPOOgC0WludwqLnWJnn6JV5m+Q7ZyJ4sOWmU4f+dDs2F31zrb21QLmF9ZcNpveVTsPQFYCZER2VU8ckLkIqS4RSKySJFGzbmuYyu+nIOct6dUoEhpEa+8o6k9cykplmoXI2wCn24c87qGLkKsvZQrT2nWI46ua57AvBAbkEGkFIbS4FxggP6Z1rUbj3tAREpEO7VQFvfe/DISIzer91U+yEnlmcz9nPhxmaIc0o8xbTW2surSMfoIzXkV8xit9EclGXkb4fZPr8t4N/viEVigQPGw9vxoDrKLhUphAgMBAAECggEAPnd1tYI97wFlq/KRP150hB+RVWRby+tKhLEfz2YFV+0Atj2H2VAufHn9kGZ5hdtbyx5iMXmdRCP2CooTmB3z1+UhDjTxWwe/lGNPRg60ON5lpgWMcIt4ulkvJVnnGyfthQ+O0gj2xSdY1qHTnmxw1eysrtMECZq7eby3QLdaPftYm/g57mHAjruUZBvylEBCnEpY94y7qyYUtgdefDB9n0NIVpqkUjIqOZutZsCjxkFEQlKerPJPllCzuzPQS3YHxTBLdu89F2JGHeMwO17f7XzA7OS3Jf6OvbyQ1OuoAF+NWnojzrehwhh4fqcg5I3rm/opZzgFvb4KxK6mc4sVwQKBgQD2C32Iv1RgCKVAURwKWogIZSkScs8Am2WIP/iCK4sX1+rRbCFlc6TaTqO3hSyR1CeSWwpdB/6TqfMCklCj0pLCiATzbWfSCQoDq6LxfHvs2o/ilu8T/qV5qI5CnugIzSni/3NfBEz2vwjHS8PAGyHrvedTay9SjEeFaDIzTm7eOQKBgQCoWot6zzJEKGXn5y2s828yQBU82OnE+OAf8sjT4MY5lF65+JmbARaIMY40OejA/fUngC/4bi6oNExEv5Y94w+E8VryZOm4lMzDevuImJWQoJsFoHS4rMtAaQly8GRpk18flVB9B1ZLM345sujcnFjPnmJInvDuI2cQaf8rsN1NaQKBgBWTbl+2f3yoZW1db3sM807hKBfhD3v7JI0tJuqrTNg7a/EPbWJLINKwALVQLVdgZlP0PdVopQ9n4NKB6CZlic8bRGvgVTFa75Dg1Tod83QSunlhSPfU5cfkWw1GiAx1iU3JnuFfLCybFfb8Et9ewbu9fHKZPJ4dhQwS1gwfvaMpAoGARE1/+1JmxWpSdfS//kRBn/SJ6UbkCSsj2zJoMjYmliPRDsiCoXWei6D3Xc8E1I/0T5NdYwBo44tcSiQks3UUzc4SJPe2L1IHhWO2+2NUgvn2CyFfWbGZQMecsso/IupMlIbCwgchBp+cnZItkZvJGGrc2zPI8gThArLOeQ5nqskCgYAxkVuRjkrY3Ide2bl17MD/qUZGUrXgfZJxOFI0ya+QinnGrPAxQaWZqyatp663DHOnMjD68Me8t/czhgMLm5g7VcxxPp60Qsx/9F/7l80LacFhMCrhCFW6GNSN1oFyAxokBBe+NgqDJIMJMk3zD4C5SvT1yc19TxoxEwa8lqgLLw=="; - String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyCpeqEUH58ZlTyGvHMD5/L46XVMJAWz5hRdp7oc5KRVt+7IhrNsqLwqRIp5jDXP8HjdnBOkuGb8FvnKSXwN4ydbR0PXXKIm1HSclJH2A3qjeYDuO1QJiE6UU/eB69sdTEfbnMqAaCPsFAbnCgvRZ+zowpVPqfZOs83812O8j+8UC8rEDyCtot26wLiz71Ccs5WzxQBVK02m258L5R43yb4NP9pXF8KZFg9vNpqTVHtX3p/PuMng6NSCbw2praghj8VFT849VPT0uGYRAEbx9uY3R+Y/GJtDlk4oYtMcA+56puudqGvPP96JhHYI5fr5M6IKewZTthG15P2li9dUCwwIDAQAB"; - AlipayConfig alipayConfig = new AlipayConfig(); - alipayConfig.setServerUrl("https://openapi-sandbox.dl.alipaydev.com/gateway.do"); - alipayConfig.setAppId("9021000136647545"); - alipayConfig.setPrivateKey(privateKey); - alipayConfig.setFormat("json"); - alipayConfig.setAlipayPublicKey(alipayPublicKey); - alipayConfig.setCharset("UTF-8"); - alipayConfig.setSignType("RSA2"); - AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig); - AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); - AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); - model.setOutTradeNo("70501111111S001111119"); - model.setTotalAmount("9.00"); - model.setSubject("大乐透"); - request.setBizModel(model); - AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); - String orderStr = response.getBody(); - System.out.println(orderStr); - if (response.isSuccess()) { - System.out.println("调用成功"); - } else { - System.out.println("调用失败"); - // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 - // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); - // System.out.println(diagnosisUrl); - } -}*/ public AlipayTradeAppPayResponse startPay(String orderNo,String price,Integer day) throws AlipayApiException{ try { // 1. 创建AlipayClient实例 @@ -143,11 +41,11 @@ public class AlipayService { // 2. 创建使用的Open API对应的Request请求对象 AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); - request.setNotifyUrl(NOTIFY_URL); + request.setNotifyUrl(AlipayConstant.NOTIFY_URL); JSONObject jsonObject = new JSONObject(); jsonObject.put("out_trade_no" , orderNo); jsonObject.put("total_amount","0.01"); - jsonObject.put("subject","订单充值"); + jsonObject.put("subject",AlipayConstant.SUBJECT); if (day > 0) { jsonObject.put("product_code", "CYCLE_PAY_AUTH"); JSONObject signParams = new JSONObject(); @@ -167,7 +65,7 @@ public class AlipayService { ruleParams.put("period",day); ruleParams.put("execute_time", DateUtils.getDate()); ruleParams.put("single_amount", jsonObject.get("total_amount")); - ruleParams.put("sign_notify_url",SIGN_NOTIFY_URL); + ruleParams.put("sign_notify_url",AlipayConstant.SIGN_NOTIFY_URL); jsonObject.put("period_rule_params", ruleParams); } request.setBizContent(jsonObject.toString()); @@ -184,43 +82,4 @@ public class AlipayService { } return null; } - - - - /*public static void main(String[] args) throws Exception{ - AlipayService alipayService = new AlipayService(); - String orderNo = KeyUtil.generateUniqueKey(); - AlipayTradeCreateResponse result = alipayService.startPay(orderNo, "1.00"); - System.out.println(result.getBody()); - }*/ - - // https://api.xx.com/receive_notify.htm?gmt_payment=2015-06-11 22:33:59¬ify_id=42af7baacd1d3746cf7b56752b91edcj34&seller_email=testyufabu07@alipay.com¬ify_type=trade_status_sync&sign=kPbQIjX+xQc8F0/A6/AocELIjhhZnGbcBN6G4MM/HmfWL4ZiHM6fWl5NQhzXJusaklZ1LFuMo+lHQUELAYeugH8LYFvxnNajOvZhuxNFbN2LhF0l/KL8ANtj8oyPM4NN7Qft2kWJTDJUpQOzCzNnV9hDxh5AaT9FPqRS6ZKxnzM=&trade_no=2015061121001004400068549373&out_trade_no=21repl2ac2eOutTradeNo322&gmt_create=2015-06-11 22:33:46&seller_id=2088211521646673¬ify_time=2015-06-11 22:34:03&subject=FACE_TO_FACE_PAYMENT_PRECREATE中文&trade_status=TRADE_SUCCESS&sign_type=RSA2 - public void handleCallback(HttpServletRequest request) { - // 获取支付宝POST过来的数据 - Map params = new HashMap(); - Map requestParams = request.getParameterMap(); - for (String key : requestParams.keySet()) { - params.put(key, request.getParameter(key)); - } - - // 验证签名 - boolean signVerified = false; - try { - signVerified = AlipaySignature.rsaCheckV1(params, ALIPAY_PUBLIC_KEY, "UTF-8", "RSA2"); - } catch (AlipayApiException e) { - e.printStackTrace(); - } - - if (signVerified) { - // 验证成功,处理业务逻辑 - String tradeStatus = params.get("trade_status"); - if ("TRADE_SUCCESS".equals(tradeStatus)) { - // 订单支付成功,更新你的系统状态 - // TODO: 更新系统订单状态 - } - } else { - // 验证失败 - // TODO: 记录日志,可能的安全问题 - } - } } \ No newline at end of file diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/utils/AlipayConstant.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/utils/AlipayConstant.java new file mode 100644 index 0000000..dd61582 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/utils/AlipayConstant.java @@ -0,0 +1,34 @@ +package com.ruoyi.app.utils; + +public class AlipayConstant { + public static String ALIPAY_GATEWAY = "https://openapi.alipay.com/gateway.do"; + + public static String APP_PRIVATE_KEY = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDWGrZCgiU8EIumOZk6pKzQPhzykROEJhWI0xMoHAZzOY2xPTQCEQ45JyUTjLDNLY8o492x9dqqLDLSQ2vEN+TJN5FAAVmoYr/SL2VcnF8+O6i1BFLmf8rETN+jfYAF+JsB8PhWFkldfTzaFxkNa8suVuBuUkmTpZ8ktiRsrJYc10NDlYORYxG9bJqL/apGCxe1Apx69uyFIZKWiwOVdGz7gIV4VnJ15BqotH7oKGZBSRA22963FuMWLIllL8iF7Fnhu82QTe8WldXXDb8gYi+uiO3+9eo1eD8LFpzMw3CsDIa/YkTsTmnhqt++tafAcP2x7YR6cUSDvm9/U1HUJSTvAgMBAAECggEAb5TuRc0j8KDC1vePtvNZqRGl7njTTfy3Hl66zh2E8wocoTE/aJBQ9FJFTWH2Rogm4u2WfYee1S9BsTk38cQbdQ6DoXLSsiH8zGKtFc3dCUb4TpaZSc1x9EoIB2GBlhsRVbqrAdqNk66QRyzgfpEeC+F1B6nU9KDNRsmyQ/zSIubMiCTw4vHwztvQxbUAvS60Uzz76nUt3DFBvwH97g4bY5ZYchNGOU9DJpyBVilCrBktpOKxoUaG6ug4cxA4VIUaUqUb26E6VtdO5hQvtFA7rupy44PYqYDzKMwrAeXmDK7SZhLHUw8RDyI8PhefnszYBSPOPOrnnBdGueWEMJmKuQKBgQD47BgG/WU49p2A9Kf6XkRi1l1oD4xjUT/sETwbeswdfJCAgzeKGT21urzAehzEyaxaKjlahXwoXveAe2yd7iJEMLubOZPZ0ODxHfIRqaHo6qK3FU+sU95kLtySyMszu7Nmy6NOeEW1fM19idGMFn/rsYShyI6OH8wO1QTk/Jxy0wKBgQDcMS2vPy09tYNF+0coczEew07QPgv3Uen8UwRhxifkJrpiFxlIs429LAfrQuu7c1dKyNKln25XUWffU9ClugoWeQm95vMfQ0+PShaD1surUf47ELlcWrJxHJ2q1yYaEQ7vsOjX2ApDRjjWdn2LmiNjIVZt7bYoI2Qgc8Tm3RUb9QKBgQDr4B0sknWWsuqxRiTe9PDsj6FXeFRZ0KY39mT0zToaPu1XOgApFp4JVPiDk7MrLsfpcNWEV7U9NDBoSYy1YvCJmXxNLRRTdMGS+gNmhU3tvlmOD929uIOmf1l4plkXnqfzosgPFZ1IywiWC0DL9I4nM8Iw5DFhr/PXojfPHSjLDQKBgQDICIE5MEqYQdqE69bkH2mjScjCk2tpfef0SzKy5EJ/GNO/or5cdomwLlzvU/c1bn4BuVjsD189Qf38O3dT5yOc8M5xz2pUn2CairLTiIG0HKO54uKRzO9IpLdzaUr66T5Jb8zHsUL5hMTDyBcbiKbXOoT7DrWp1yTx+loJZRT1NQKBgBvf4VOC2dI+a51xdQdLEX6UTLIIZVtHqTYoQU+fM9O8VuWBSZk5cHaUdCJ05KUhDraJYnG4xo2xetO/703tUd0i/Vqq0IYMgRoWA7ucNM9HKJBqEF0ex/GwSQL9oVZyZ3kNZDceTma7QHChvoLLWAFhhMmepUZq6iy61wpXQ4NH"; + + public static final String APP_ID = "2021004143632147"; + + public static String AES = "bNYoIcGW+TYLxo8P24pkvQ=="; + + // 格式化 + public static final String FORMAT = "json"; + // 字符编码 + public static final String CHARSET = "UTF-8"; + // 签名类型 + public static final String SIGN_TYPE = "RSA2"; + + public static final String NOTIFY_URL = "http://139.224.213.131:7008/pay/aliPayCallback"; + + public static final String SIGN_NOTIFY_URL = "http://139.224.213.131:7008/pay/aliPaySignCallback"; + + public static final String SUBJECT = "订单充值"; + + public static final String CERT_PATH = "/opt/jar/gan/cert/appCertPublicKey_2021004144677656.crt"; + + public static final String ALIPAY_PUBLIC_CERT_PATH = "/opt/jar/gan/cert/alipayCertPublicKey_RSA2.crt"; + + public static final String ROOT_CERT_PATH = "/opt/jar/gan/cert/alipayRootCert.crt"; + + + + +}