From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/util/alipay/AlipayApi.java |  199 ++++++++++++++++++++++++++++---------------------
 1 files changed, 113 insertions(+), 86 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/alipay/AlipayApi.java b/fanli/src/main/java/com/yeshi/fanli/util/alipay/AlipayApi.java
index d4900e3..cde1a9d 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/alipay/AlipayApi.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/alipay/AlipayApi.java
@@ -1,86 +1,113 @@
-package com.yeshi.fanli.util.alipay;
-
-import java.net.URLEncoder;
-import java.util.HashMap;
-import java.util.Map;
-
-import com.alibaba.fastjson.JSON;
-import com.alipay.api.AlipayClient;
-import com.alipay.api.DefaultAlipayClient;
-import com.alipay.api.request.AlipayTradeQueryRequest;
-import com.alipay.api.request.AlipayTradeWapPayRequest;
-import com.alipay.api.response.AlipayTradeQueryResponse;
-import com.yeshi.fanli.util.StringUtil;
-
-public class AlipayApi {
-
-	/**
-	 * 鍒涘缓鏀粯璇锋眰
-	 * @param map
-	 * @return
-	 * @throws Exception
-	 */
-	public static String tradeWapPayRequest(Map<String, String> map, String payNotify, String backUrl) throws Exception{
-		AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
-		// 鍓嶅彴鍥炶皟鍦板潃
-		alipayRequest.setReturnUrl(backUrl);
-		// 鎴愬姛浠樻鍥炶皟
-		alipayRequest.setNotifyUrl(payNotify);
-		
-		alipayRequest.setBizContent(URLEncoder.encode(JSON.toJSONString(map), "UTF-8"));
-		
-		return AlipayWapConfig.getInstance().pageExecute(alipayRequest).getBody();
-	}
-	
-	
-	
-	/**
-	 * 鏌ヨ鏄惁浜ゆ槗瀹屾垚
-	 * @param outTradeNo
-	 * @param tradeNo
-	 * @param orgPid
-	 * @param queryOptions
-	 * @return
-	 * @throws Exception
-	 */
-	public static boolean tradeQuery (String outTradeNo, String tradeNo, String orgPid, String queryOptions) throws Exception {
-		// 璁㈠崟鏀粯鏃朵紶鍏ョ殑鍟嗘埛璁㈠崟鍙�,鍜屾敮浠樺疂浜ゆ槗鍙蜂笉鑳藉悓鏃朵负绌�
-		if (StringUtil.isNullOrEmpty(outTradeNo) || StringUtil.isNullOrEmpty(outTradeNo)) {
-			return false;
-		}
-		
-		// 寰呰姹傚弬鏁版暟缁�
-		Map<String, String> map = new HashMap<String, String>();
-		if (!StringUtil.isNullOrEmpty(outTradeNo))
-			map.put("out_trade_no", outTradeNo);
-		if (!StringUtil.isNullOrEmpty(tradeNo))
-			map.put("trade_no", tradeNo);
-		if (!StringUtil.isNullOrEmpty(orgPid))
-			map.put("org_pid", orgPid);
-		if (!StringUtil.isNullOrEmpty(queryOptions))
-			map.put("query_options", queryOptions);
-		
-		
-		AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
-		request.setBizContent(URLEncoder.encode(JSON.toJSONString(map), "UTF-8"));
-	
-		// 鏀粯瀹濇煡璇�
-		AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", AlipayWapConfig.APP_ID,
-				AlipayWapConfig.APP_PRIVATE_KEY, AlipayWapConfig.PARAM_TYPE, AlipayWapConfig.CHARSET,
-				AlipayWapConfig.ALIPAY_PUBLIC_KEY, AlipayWapConfig.SIGNTYPE);
-		
-		AlipayTradeQueryResponse response = alipayClient.execute(request);
-		if(response.isSuccess()){
-			// 鐩稿簲鎴愬姛
-			if ("TRADE_SUCCESS".equals(response.getTradeStatus())) { 
-				return true; // 浜ゆ槗鏀粯鎴愬姛
-			} else if ("TRADE_FINISHED".equals(response.getTradeStatus())) {
-				return true; // 锛堜氦鏄撶粨鏉燂紝涓嶅彲閫�娆撅級
-			}			
-		} 
-		return false;
-	}
-	
-	
-	
-}
+package com.yeshi.fanli.util.alipay;
+
+import java.net.URLEncoder;
+
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.CertAlipayRequest;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.request.AlipayTradeQueryRequest;
+import com.alipay.api.request.AlipayTradeWapPayRequest;
+import com.alipay.api.response.AlipayTradeQueryResponse;
+import com.yeshi.fanli.dto.AlipayTradeWapPayDTO;
+import com.yeshi.fanli.entity.config.AlipayWapConfig;
+import com.yeshi.fanli.util.AlipayUtil;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.StringUtil;
+
+import net.sf.json.JSONObject;
+
+public class AlipayApi {
+
+	private static DefaultAlipayClient alipayClient = null;
+
+	static {
+		AlipayWapConfig alipayWapConfig = Constant.alipayWapConfig;
+		
+		CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
+		certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
+		certAlipayRequest.setAppId(alipayWapConfig.getAppId());
+		certAlipayRequest.setPrivateKey(alipayWapConfig.getPrivateKey());
+		certAlipayRequest.setFormat("json");
+		certAlipayRequest.setCharset("UTF-8");
+		certAlipayRequest.setSignType("RSA2");
+		certAlipayRequest.setCertPath(
+				AlipayUtil.class.getClassLoader().getResource(alipayWapConfig.getAppCertPath()).getPath());
+		certAlipayRequest.setAlipayPublicCertPath(
+				AlipayUtil.class.getClassLoader().getResource(alipayWapConfig.getAlipayCertPath()).getPath());
+		certAlipayRequest.setRootCertPath(
+				AlipayUtil.class.getClassLoader().getResource(alipayWapConfig.getAlipayRootCertPath()).getPath());
+		try {
+			alipayClient = new DefaultAlipayClient(certAlipayRequest);
+		} catch (AlipayApiException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	
+	/**
+	 * 鍒涘缓鏀粯璇锋眰
+	 * @param map
+	 * @return
+	 * @throws Exception
+	 */
+	public static String tradeWapPayRequest(AlipayTradeWapPayDTO payDTO) throws Exception{
+		// 寰呰姹傚弬鏁版暟缁�
+		JSONObject json = new JSONObject();
+		// 鏀舵鏂硅处鍙�
+		json.put("seller_id", payDTO.getSellerId());
+		// 璁㈠崟鍙�
+		json.put("out_trade_no", payDTO.getOutTradeNo());
+		// 璁㈠崟閲戦:0.01鍏冿紝绮惧噯鍒板垎
+		json.put("total_amount",payDTO.getTotalAmount());
+		// 璁㈠崟鏍囬
+		json.put("subject", payDTO.getSubject());
+		// 閿�鍞骇鍝佺爜锛屽晢瀹跺拰鏀粯瀹濈绾︾殑浜у搧鐮�
+		json.put("product_code", payDTO.getProductCode());
+		// 璇ョ瑪璁㈠崟鍏佽鐨勬渶鏅氫粯娆炬椂闂达紝閫炬湡灏嗗叧闂氦鏄�  30鍒嗛挓
+		json.put("timeout_express", payDTO.getTimeoutExpress());
+		
+		
+		AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
+		// 鍓嶅彴鍥炶皟鍦板潃
+		alipayRequest.setReturnUrl(payDTO.getReturnUrl());
+		// 鎴愬姛浠樻鍥炶皟
+		alipayRequest.setNotifyUrl(payDTO.getNotifyUrl());
+		
+		alipayRequest.setBizContent(URLEncoder.encode(json.toString(), "UTF-8"));
+		
+		return alipayClient.pageExecute(alipayRequest).getBody();
+	}
+	
+	/**
+	 * 鏌ヨ鏄惁浜ゆ槗瀹屾垚
+	 * @param outTradeNo
+	 * @param tradeNo
+	 * @param orgPid
+	 * @param queryOptions
+	 * @return
+	 * @throws Exception
+	 */
+	public static AlipayTradeQueryResponse tradeQuery(String outTradeNo, String tradeNo, String orgPid, String queryOptions) throws Exception {
+		// 璁㈠崟鏀粯鏃朵紶鍏ョ殑鍟嗘埛璁㈠崟鍙�,鍜屾敮浠樺疂浜ゆ槗鍙蜂笉鑳藉悓鏃朵负绌�
+		if (StringUtil.isNullOrEmpty(outTradeNo) || StringUtil.isNullOrEmpty(outTradeNo)) {
+			return null;
+		}
+		
+		// 寰呰姹傚弬鏁版暟缁�
+		JSONObject json = new JSONObject();
+		if (!StringUtil.isNullOrEmpty(outTradeNo))
+			json.put("out_trade_no", outTradeNo);
+		if (!StringUtil.isNullOrEmpty(tradeNo))
+			json.put("trade_no", tradeNo);
+		if (!StringUtil.isNullOrEmpty(orgPid))
+			json.put("org_pid", orgPid);
+		if (!StringUtil.isNullOrEmpty(queryOptions))
+			json.put("query_options", queryOptions);
+		
+		AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
+		request.setBizContent(json.toString());
+		
+		return alipayClient.certificateExecute(request);
+	}
+	
+}

--
Gitblit v1.8.0