Merge remote-tracking branch 'origin/main'
commit
c4df190033
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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<String, String> params = new HashMap<String, String>();
|
||||
Map<String, String[]> 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: 记录日志,可能的安全问题
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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";
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue