From f44e4d609e7efaed9eac545137970b1e334f8106 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期六, 21 九月 2024 09:01:36 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/alipay/util/PayDemoActivity.java |  107 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 93 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 44d83ca..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,11 +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.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;
@@ -34,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 
@@ -68,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();
@@ -82,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