linhw 2024-05-10 14:52:23 +08:00
parent f53c4578b9
commit 4ceefd735a
3 changed files with 72 additions and 6 deletions

View File

@ -130,7 +130,7 @@
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.39.60.ALL</version>
<version>4.39.68.ALL</version>
</dependency>
<dependency>

View File

@ -476,7 +476,8 @@ public class PayController extends BaseController
@PostMapping(value = "/aliPay")
@ApiOperation(value = "支付宝支付", notes = "支付宝支付", httpMethod = "POST")
public String aliPay(@RequestBody AppOrderArg appOrderArg) throws Exception{
String orderNo = KeyUtil.generateUniqueKey();
return alipayService.startPay();
/*String orderNo = KeyUtil.generateUniqueKey();
AlipayTradeCreateResponse result = null;
try {
result = alipayService.startPay(orderNo, appOrderArg.getPrice());
@ -499,6 +500,6 @@ public class PayController extends BaseController
return orderStr;
} else {
return null;
}
}*/
}
}

View File

@ -2,10 +2,14 @@ package com.ruoyi.app.service;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.AlipayConfig;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.request.AlipayTradeCreateRequest;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;
import com.alipay.api.response.AlipayTradeCreateResponse;
import com.ruoyi.app.domain.dto.KeyUtil;
import org.springframework.beans.factory.annotation.Value;
@ -27,7 +31,7 @@ public class AlipayService {
private static String APP_PRIVATE_KEY = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCavGqUrH2Q37jLzEvQzUizyTT6DPJ+8CoBvGYASjkDGfLyXtMSQKaWdhRi/RdNzd/7PT4+I/0Q96B4n+ykUiApygNqW02AmSilClPtski5nl+ur/BBdJq8aUaoj+/DBneiVqyYge8eagEcfp1m1Ou8BLeFZUoOVzLcO0aysw7aTpA3LPwda0VkQghfYsCvajLYR35F7kEE0Fo8AUzgDZCZn3QI4x72QTpBlZxte0xpx8uLYUFfItm1uhcX2cmXfH86JzLJuKy1lOV6xuu5zh6i8Ba0nEn47L1wuYYBJUREWl7cc1/QnEyWToNdbYF7Lm3EWDM7JUYDHkt/T6Q1lZBHAgMBAAECggEAAOnp6zTVjPx1N+bd7762ljEy+eMHr441gUsegxPtIEKP97RtpKbzFOJfnnIGKDR2BSLIck9+GBKORQgUuqetfvGtcXxWidLdtZPJCRdLbKUtxXdOgORyYXhxrV8kOE+adz/xxvjFc7WGiieJQGkzdynD96qwdEM5jqle8oEyLkHUIY21wFsAChp0mJpdlV6C214FeahgRhEWVcPVz0LcyVKzChWrCnKFp6kmaAr1HQK/i9e1zI/6kr2BYdkp1hCQq6X3LKj8KHLZ2HtbPHjTDzStpXdocsuSi/C1+17oWAYDNy3KFNPLhhwi59MHow9elMTfyTdH1msWKVsHJtcWoQKBgQDnfNDq757DE9Ztjt1zAhY9Byqo4AYiZrL34xE4Sw47f3RUo1pmiaROuWwAdnzmbP7SRaURRRCbj0PO4Rtd4PlOW7IvkzGJ+M6HjiqrTzaO93LFUrdCpJ9k6lr15xko1dr77coAN57GfSwWy/H8Vdcx0iJNcI85EG+ELrEDrUIJUQKBgQCrHwM5fK56+B0V0IvLiYtgZgfFEqf/5VFgde5glzLl2QUtblO3r7amnXWjHR61Y2iwHeAlVmoh5EKaqs6BZDid4AVWJeKK96RvkIdFKRBDk9ldMZG8cg5G/Jt45TNTCwl7R/XvZXmnPGstwH3cZ3yD9TeD1Hbsu9QZtbQe90yaFwKBgQCu1cyMxLIqMF9xm8eRx2+4ZCNKLPk1Hk/pfWxSEg4LzfW0vzPV4fthIhZ6OwOWnZfQhJ1pb7pdY1UZeVdMDlD9Z7Aq0odF589E/pEnlcplLGtYsWKMSP3CIGbW9tY/y1V7lVtN0rRuwbd8+EgqB0Ni84zI5EyoEsvHD+TOHBuWIQKBgQCmiJP2ymRzwCtuI3spJj7CHgnJvRJKc73yhlLrJbqe/cmQISLQTO0Q0YS+rYRJOumTHEAbljHLsf0v0LMQMZz36CDJai1C2SbqfFlo8UGmwqhzjd4q60UByKz1xvlgBAnCNJIf3T27h403BXJ3oS8IrQjN/2ONmG4eZztYN4wRGQKBgGfKV3dU1MKAAN1xkqmeAhCmEk73oGIRe580I3TvSnNXJVooo/F7GLARxMZkBpGjpDh7mtfqwkk3hrLD3VGd+JzdVlEbZpGbLlukk5OPJ/iT1RbTNqWfFx/TUpohtc2yFiYeQcxmOP/XkqK2zgosepk//wRSLvyvg3+hcTglHokW";
// 支付宝公钥
private static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyCpeqEUH58ZlTyGvHMD5/L46XVMJAWz5hRdp7oc5KRVt+7IhrNsqLwqRIp5jDXP8HjdnBOkuGb8FvnKSXwN4ydbR0PXXKIm1HSclJH2A3qjeYDuO1QJiE6UU/eB69sdTEfbnMqAaCPsFAbnCgvRZ+zowpVPqfZOs83812O8j+8UC8rEDyCtot26wLiz71Ccs5WzxQBVK02m258L5R43yb4NP9pXF8KZFg9vNpqTVHtX3p/PuMng6NSCbw2praghj8VFT849VPT0uGYRAEbx9uY3R+Y/GJtDlk4oYtMcA+56puudqGvPP96JhHYI5fr5M6IKewZTthG15P2li9dUCwwIDAQAB";
private static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmrxqlKx9kN+4y8xL0M1Is8k0+gzyfvAqAbxmAEo5Axny8l7TEkCmlnYUYv0XTc3f+z0+PiP9EPegeJ/spFIgKcoDaltNgJkopQpT7bJIuZ5frq/wQXSavGlGqI/vwwZ3olasmIHvHmoBHH6dZtTrvAS3hWVKDlcy3DtGsrMO2k6QNyz8HWtFZEIIX2LAr2oy2Ed+Re5BBNBaPAFM4A2QmZ90COMe9kE6QZWcbXtMacfLi2FBXyLZtboXF9nJl3x/OicyybistZTlesbruc4eovAWtJxJ+Oy9cLmGASVERFpe3HNf0JxMlk6DXW2Bey5txFgzOyVGAx5Lf0+kNZWQRwIDAQAB";
// 格式化
private static final String FORMAT = "json";
// 字符编码
@ -39,6 +43,67 @@ public class AlipayService {
private static final String SUBJECT = "订单充值";
/*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 String startPay() throws AlipayApiException{
/*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("2021004144677656");
alipayConfig.setPrivateKey(APP_PRIVATE_KEY);
alipayConfig.setFormat("json");
alipayConfig.setAlipayPublicKey(ALIPAY_PUBLIC_KEY);
alipayConfig.setCharset("UTF-8");
alipayConfig.setSignType("RSA2");
AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
model.setOutTradeNo(KeyUtil.generateUniqueKey());
model.setTotalAmount("1.00");
model.setSubject("订单充值");
request.setBizModel(model);
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
String orderStr = response.getBody();
System.out.println(orderStr);
if (response.isSuccess()) {
return orderStr;
} else {
return null;
// sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接
// String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
// System.out.println(diagnosisUrl);
}
}
public AlipayTradeCreateResponse startPay(String outTradeNo, String totalAmount) throws AlipayApiException {
// 创建客户端
AlipayClient alipayClient = new DefaultAlipayClient(
@ -65,12 +130,12 @@ public class AlipayService {
return alipayClient.sdkExecute(alipayRequest);
}
public static void main(String[] args) throws Exception{
/*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&notify_id=42af7baacd1d3746cf7b56752b91edcj34&seller_email=testyufabu07@alipay.com&notify_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&notify_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) {