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