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