From dba9034024de73ebf8d1184b53ec9a559c1c12c6 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 13 三月 2025 18:08:33 +0800
Subject: [PATCH] bug修改
---
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/alipay/util/PayDemoActivity.java | 108 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 94 insertions(+), 14 deletions(-)
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/alipay/util/PayDemoActivity.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/alipay/util/PayDemoActivity.java
index 6952611..d47e323 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/alipay/util/PayDemoActivity.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/alipay/util/PayDemoActivity.java
@@ -5,10 +5,14 @@
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeAppPayModel;
+import com.alipay.api.domain.AlipayTradeCreateModel;
import com.alipay.api.request.AlipayTradeAppPayRequest;
-import com.alipay.api.response.AlipayTradeAppPayResponse;
-import com.alipay.config.AlipayConfig;
-
+import com.alipay.api.request.AlipayTradeCreateRequest;
+import com.alipay.api.response.AlipayTradeCreateResponse;
+import com.jpay.alipay.AliPayApi;
+import com.jpay.alipay.AliPayApiConfig;
+import com.jpay.alipay.AliPayApiConfigKit;
+import com.ruoyi.order.util.alipay.config.AlipayConfig;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
@@ -33,7 +37,20 @@
//实例化客户端
private static AlipayClient alipayClient = new DefaultAlipayClient(serverUrl, APP_ID, APP_PRIVATE_KEY, format, charset, ALIPAY_PUBLIC_KEY, signType);
-
+
+
+ private static AliPayApiConfig aliPayApiConfig = null;
+
+ static {
+ aliPayApiConfig = AliPayApiConfig.New()
+ .setAppId(APP_ID)
+ .setCharset("UTF-8")
+ .setPrivateKey(APP_PRIVATE_KEY)
+ .setAlipayPublicKey(ALIPAY_PUBLIC_KEY)
+ .setServiceUrl("https://openapi.alipay.com/gateway.do")
+ .setSignType("RSA2")
+ .build();
+ }
/**
* @throws AlipayApiException
@@ -67,6 +84,9 @@
Map<String, Object> map = new HashMap<>();
try {
+
+ AliPayApiConfigKit.setThreadLocalAppId(APP_ID);
+ AliPayApiConfigKit.setThreadLocalAliPayApiConfig(aliPayApiConfig);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
@@ -81,21 +101,81 @@
request.setBizModel(model);
request.setNotifyUrl(NOTIFY_URL);
// 这里和普通的接口调用不同,使用的是sdkExecute
- AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
- String string = response.getBody();
-
- int one = string.lastIndexOf("&");
- String s=string.substring(0,(one));
-
- map.put("orderInfo", s);
- System.out.println(java.net.URLDecoder.decode(s, "UTF-8"));
- System.out.println(java.net.URLDecoder.decode(response.getBody(), "UTF-8"));
+ String orderInfo = "";
+ orderInfo = AliPayApi.startAppPay(model, NOTIFY_URL);
+
+
+ map.put("orderInfo", orderInfo);
+ map.put("Type",2);
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
-
+
+ public static Map<String, Object> jsApiPay(String subject, String body, Double price,
+ String out_trade_no, String openId) throws AlipayApiException {
+ // 构造请求参数以调用接口
+ AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
+ AlipayTradeCreateModel model = new AlipayTradeCreateModel();
+
+ // 设置商户订单号
+ model.setOutTradeNo(out_trade_no);
+
+ // 设置产品码
+ model.setProductCode("JSAPI_PAY");
+
+ // 设置小程序支付中
+ model.setOpAppId(APP_ID);
+
+ // 设置订单总金额
+ model.setTotalAmount(price.toString());
+
+ // 设置业务扩展参数
+ // ExtendParams extendParams = new ExtendParams();
+ // extendParams.setTradeComponentOrderId("2023060801502300000008810000005657");
+ // model.setExtendParams(extendParams);
+
+ // 设置可打折金额
+ // model.setDiscountableAmount("80.00");
+
+ // 设置订单标题
+ model.setSubject(subject);
+
+ // 设置订单附加信息
+ model.setBody(body);
+
+ // uid参数未来计划废弃,存量商户可继续使用,新商户请使用openid。请根据应用-开发配置-openid配置选择支持的字段。
+ // model.setBuyerId("2088102146225135");
+
+ // 设置买家支付宝用户唯一标识
+ model.setBuyerOpenId(openId);
+
+ // 设置商户门店编号
+ // model.setStoreId("NJ_001");
+
+ request.setBizModel(model);
+ request.setNotifyUrl(NOTIFY_URL);
+ // 第三方代调用模式下请设置app_auth_token
+ // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
+
+ AlipayTradeCreateResponse response = alipayClient.execute(request);
+ System.out.println(response.getBody());
+ Map<String, Object> map = new HashMap<>();
+ if (response.isSuccess()) {
+ System.out.println("调用成功");
+
+ map.put("outTradeNo", response.getOutTradeNo());
+ map.put("tradeNo", response.getTradeNo());
+ map.put("Type", 2);
+ } else {
+ System.out.println("调用失败");
+ // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接
+ // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
+ // System.out.println(diagnosisUrl);
+ }
+ return map;
+ }
}
--
Gitblit v1.7.1