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/service/manger/alipay/UserCloudAlipayManager.java |  233 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 128 insertions(+), 105 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/alipay/UserCloudAlipayManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/alipay/UserCloudAlipayManager.java
index e3f3981..ba820bd 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/manger/alipay/UserCloudAlipayManager.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/alipay/UserCloudAlipayManager.java
@@ -1,105 +1,128 @@
-package com.yeshi.fanli.service.manger.alipay;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.yeshi.fanli.entity.bus.user.cloud.CloudOrderMenuEnum;
-import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder;
-import com.yeshi.fanli.entity.system.ConfigKeyEnum;
-import com.yeshi.fanli.exception.user.cloud.UserCloudException;
-import com.yeshi.fanli.service.inter.config.ConfigService;
-import com.yeshi.fanli.service.inter.user.cloud.UserCloudGroupService;
-import com.yeshi.fanli.service.inter.user.cloud.UserCloudManageService;
-import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService;
-import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
-import com.yeshi.fanli.util.alipay.AlipayApi;
-import com.yeshi.fanli.util.alipay.AlipayWapConfig;
-
-/**
- *  浜戝彂鍗曟敮浠樼鐞�
- * @author Administrator
- *
- */
-@Component
-public class UserCloudAlipayManager {
-
-	@Resource
-	private ConfigService configService;
-	
-	@Resource
-	private UserCloudService userCloudService;
-
-	@Resource
-	private UserCloudOrderService userCloudOrderService;
-	
-	@Resource
-	private UserCloudGroupService userCloudGroupService;
-	
-	@Resource
-	private UserCloudManageService userCloudManageService;
-	
-	public static final String  TRADE_INDEX = "yufadan-";
-	 
-	
-	
-	/**
-	 * 鍒涘缓鏀粯璁㈠崟
-	 * @param uid
-	 * @param type
-	 * @return
-	 * @throws Exception
-	 * @throws UserCloudException
-	 */
-	@Transactional(rollbackFor = Exception.class)
-	public String getAlipayForm(Long uid, String type) throws Exception, UserCloudException{
-		CloudOrderMenuEnum menuEnum = CloudOrderMenuEnum.getMenuEnum(type);
-		if (menuEnum == null) 
-			throw new UserCloudException(1, "濂楅绫诲瀷涓嶅尮閰�");
-		
-		// 璁㈠崟淇℃伅
-		UserCloudOrder cloudOrder = userCloudOrderService.addCloudOrder(uid, type); 
-		if (cloudOrder == null || cloudOrder.getId() == null)
-			throw new UserCloudException(1, "鍒涘缓璁㈠崟淇℃伅澶辫触");
-		
-		// 寰呰姹傚弬鏁版暟缁�
-		Map<String, String> map = new HashMap<String, String>();
-		map.put("seller_id", AlipayWapConfig.SELLER_ID);// 鏀舵鏂硅处鍙�
-		// 璁㈠崟鍙�
-		map.put("out_trade_no", TRADE_INDEX + cloudOrder.getId());
-		// 璁㈠崟閲戦:0.01鍏冿紝绮惧噯鍒板垎
-		map.put("total_amount", menuEnum.getMoney() + "");
-		// 璁㈠崟鏍囬
-		map.put("subject", "浜戝彂鍗曞厖鍊�");
-		// 閿�鍞骇鍝佺爜锛屽晢瀹跺拰鏀粯瀹濈绾︾殑浜у搧鐮�
-		map.put("product_code", type);
-		// 璇ョ瑪璁㈠崟鍏佽鐨勬渶鏅氫粯娆炬椂闂达紝閫炬湡灏嗗叧闂氦鏄�  30鍒嗛挓
-		map.put("timeout_express", "30m");
-		
-		// 鏀粯鎴愬姛鍚庤繑鍥炲摢涓墠绔〉闈�
-		String returnUrl = configService.get(ConfigKeyEnum.cloudAlipayReturnLink.getKey());
-		// 鏀粯鎴愬姛鍚庡洖璋冨湴鍧�
-		String notifyUrl = configService.get(ConfigKeyEnum.cloudAlipayNotifyLink.getKey()) +"?id=" +cloudOrder.getId();
-		// 鑾峰彇鏀粯form
-		return AlipayApi.tradeWapPayRequest(map, returnUrl, notifyUrl);
-	}
-
-	
-	/**
-	 * 鏌ヨ璁㈠崟浜ゆ槗鏄惁鏀粯鎴愬姛
-	 * @param orderId
-	 * @throws Exception
-	 */
-	public void tradeQueryByOrderId(Long orderId) throws Exception {
-		boolean result = AlipayApi.tradeQuery(TRADE_INDEX + orderId, null, null, null);
-		// 鏀粯鎴愬姛
-		if (result) {
-			userCloudOrderService.cloudPayCloudSuccess(orderId);
-		}
-	}
-	 
-}
+package com.yeshi.fanli.service.manger.alipay;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.alipay.api.response.AlipayTradeQueryResponse;
+import com.yeshi.fanli.dto.AlipayTradeWapPayDTO;
+import com.yeshi.fanli.entity.bus.user.cloud.CloudOrderMenuEnum;
+import com.yeshi.fanli.entity.bus.user.cloud.UserCloud;
+import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
+import com.yeshi.fanli.exception.user.cloud.UserCloudException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.user.cloud.UserCloudGroupService;
+import com.yeshi.fanli.service.inter.user.cloud.UserCloudManageService;
+import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService;
+import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.alipay.AlipayApi;
+
+/**
+ *  浜戝彂鍗曟敮浠樼鐞�
+ * @author Administrator
+ *
+ */
+@Component
+public class UserCloudAlipayManager {
+
+	@Resource
+	private ConfigService configService;
+	
+	@Resource
+	private UserCloudService userCloudService;
+
+	@Resource
+	private UserCloudOrderService userCloudOrderService;
+	
+	@Resource
+	private UserCloudGroupService userCloudGroupService;
+	
+	@Resource
+	private UserCloudManageService userCloudManageService;
+
+	@Resource
+	private UserInfoService userInfoService;
+	
+	public static final String  TRADE_INDEX = "yufadan-";
+	 
+	
+	
+	/**
+	 * 鍒涘缓鏀粯璁㈠崟
+	 * @param uid
+	 * @param type
+	 * @return
+	 * @throws Exception
+	 * @throws UserCloudException
+	 */
+	@Transactional(rollbackFor = Exception.class)
+	public String getAlipayForm(Long uid, String type) throws Exception, UserCloudException{
+		CloudOrderMenuEnum menuEnum = CloudOrderMenuEnum.getMenuEnum(type);
+		if (menuEnum == null) 
+			throw new UserCloudException(1, "濂楅绫诲瀷涓嶅尮閰�");
+		
+		UserCloud userCloud = userCloudService.getLastByUid(uid);
+		if (userCloud != null) {
+			// 缁垂
+			boolean renew = false;
+			if (userCloud.getEndTime().getTime() > java.lang.System.currentTimeMillis())
+				renew = true;
+			// 楠岃瘉濂楅鏄惁鐩稿悓
+			if (renew && userCloud.getRobotType() != menuEnum.getRobotType()) {
+				LogHelper.cloudInfo("鏂规硶openCloud: [uid=" + uid + "]宸叉湁鍏朵粬浜戝彂鍗曞椁愯繕鏈粨鏉�");
+				throw new UserCloudException(1, "宸叉湁鍏朵粬浜戝彂鍗曞椁愯繕鏈粨鏉�");
+			}
+		}
+		
+		// 璁㈠崟淇℃伅
+		UserCloudOrder cloudOrder = userCloudOrderService.addCloudOrder(uid, type); 
+		if (cloudOrder == null || cloudOrder.getId() == null)
+			throw new UserCloudException(1, "鍒涘缓璁㈠崟淇℃伅澶辫触");
+
+		SystemEnum system=userInfoService.getUserSystem(uid);
+		
+		AlipayTradeWapPayDTO payDTO = new AlipayTradeWapPayDTO();
+		payDTO.setSubject("浜戝彂鍗曞厖鍊�");
+		payDTO.setSellerId(Constant.alipayWapConfig.getSellerId());
+		payDTO.setOutTradeNo(TRADE_INDEX + cloudOrder.getId());
+		payDTO.setProductCode(type);
+		payDTO.setTotalAmount(menuEnum.getMoney() + "");
+		payDTO.setTimeoutExpress("30m");
+		payDTO.setReturnUrl(configService.getValue(ConfigKeyEnum.cloudAlipayReturnLink.getKey(),system) +"?id=" +cloudOrder.getId());
+		payDTO.setNotifyUrl(configService.getValue(ConfigKeyEnum.cloudAlipayNotifyLink.getKey(),system) +"?id=" +cloudOrder.getId());
+		
+		// 鑾峰彇鏀粯form
+		return AlipayApi.tradeWapPayRequest(payDTO);
+	}
+
+	
+	/**
+	 * 鏌ヨ璁㈠崟浜ゆ槗鏄惁鏀粯鎴愬姛
+	 * @param orderId
+	 * @throws Exception
+	 */
+	public void tradeQueryByOrderId(Long orderId) throws Exception {
+		boolean result = false;
+		AlipayTradeQueryResponse response =  AlipayApi.tradeQuery(TRADE_INDEX + orderId, null, null, null);
+		if(response != null && response.isSuccess()){
+			// 鐩稿簲鎴愬姛
+			if ("TRADE_SUCCESS".equals(response.getTradeStatus())) { 
+				result = true;
+			} else if ("TRADE_FINISHED".equals(response.getTradeStatus())) {
+				result = true; // 锛堜氦鏄撶粨鏉燂紝涓嶅彲閫�娆撅級
+			}			
+		} 
+		
+		// 鏀粯鎴愬姛
+		if (result) {
+			userCloudOrderService.cloudPayCloudSuccess(orderId);
+		}
+	}
+	 
+}

--
Gitblit v1.8.0