From ef270bd1855b5ce3f398c5df024840a498e33a8f Mon Sep 17 00:00:00 2001
From: MercuryZ <zdmisif@126.com>
Date: 星期四, 31 三月 2022 14:09:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/AliPayUtils.java | 124 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 124 insertions(+), 0 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/AliPayUtils.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/AliPayUtils.java
new file mode 100644
index 0000000..e2f8c6d
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/AliPayUtils.java
@@ -0,0 +1,124 @@
+package com.sandu.ximon.admin.utils;
+
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.domain.AlipayTradeRefundModel;
+import com.alipay.api.request.AlipayTradeQueryRequest;
+import com.alipay.api.request.AlipayTradeRefundRequest;
+import com.alipay.api.response.AlipayTradeRefundResponse;
+import com.google.gson.Gson;
+import com.sandu.ximon.admin.config.AlipayConfig;
+import com.sandu.ximon.admin.pay.alipay.UsrAlipayConfigService;
+import com.sandu.ximon.dao.domain.AliConfigEntity;
+import com.sandu.ximon.dao.domain.WxConfigEntity;
+import lombok.AllArgsConstructor;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+
+@AllArgsConstructor
+public class AliPayUtils {
+
+
+ public static boolean alipayQuery(String out_trade_no, Long streetlightId) {
+ AliConfigEntity aliConfigEntity = UsrAlipayConfigService.getBean().getConfigByPoleId(streetlightId);// 鑾峰彇瀹㈡埛鐨勬敮浠樺疂閰嶇疆
+ String checkStr = ConfigCheckUtils.checkAlipayConfig(aliConfigEntity);
+ if (checkStr != null) {
+ LogUtils.error("鏌ヨ澶辫触");
+ return false;
+ }
+ //鑾峰緱鍒濆鍖栫殑AlipayClient
+ AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl,
+ aliConfigEntity.getAppId(), aliConfigEntity.getPrivateKey(),
+ AlipayConfig.format, AlipayConfig.charset, aliConfigEntity.
+ getPublicKey(), AlipayConfig.sign_type);
+
+ //璁剧疆璇锋眰鍙傛暟
+ AlipayTradeQueryRequest alipayRequest = new AlipayTradeQueryRequest();
+
+ //鍟嗘埛璁㈠崟鍙凤紝鍟嗘埛缃戠珯璁㈠崟绯荤粺涓敮涓�璁㈠崟鍙�
+ alipayRequest.setBizContent("{\"out_trade_no\":\"" + out_trade_no + "\"}");
+
+ //璇锋眰
+ String result = null;
+ try {
+ result = alipayClient.execute(alipayRequest).getBody();
+ } catch (AlipayApiException e) {
+ e.printStackTrace();
+ }
+ Map map = (Map) new Gson().fromJson(result, Map.class).get("alipay_trade_query_response");
+ if (map.get("sub_msg") != null) {
+ if ("浜ゆ槗涓嶅瓨鍦�".equals(map.get("sub_msg"))) {
+ return false;
+ }
+ }
+ if (map.get("trade_status") == null) {
+ return false;
+ }
+ if ("TRADE_SUCCESS".equals(map.get("trade_status"))) {
+// String payTime = (String) map.get("send_pay_date");
+ return true;
+ } else if ("TRADE_CLOSED".equals(map.get("trade_status"))) {
+ LogUtils.error("浜ゆ槗宸插叧闂�(鏀粯瀹�)");
+ return false;
+ }
+ return false;
+ }
+
+
+ /**
+ * 鏀粯瀹濋��娆炬帴鍙�
+ *
+ * @return
+ */
+ public static boolean alipayrefund(Long streetlightId,
+ String out_trade_no,
+ Double refundAmount) {
+ //LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"閫�娆炬搷浣�",null,"{ 杩涜鏀粯瀹濋��娆�:"+out_trade_no+" }");
+ //閫�娆鹃噾棰濓紝涓嶈兘澶т簬璁㈠崟鎬婚噾棰�
+ String refund_amount = refundAmount + "";
+ //閫�娆剧殑鍘熷洜璇存槑
+ String refund_reason = "鍏呯數妗╅��娆�";
+ //鏍囪瘑涓�娆¢��娆捐姹傦紝鍚屼竴绗斾氦鏄撳娆¢��娆鹃渶瑕佷繚璇佸敮涓�锛屽闇�閮ㄥ垎閫�娆撅紝鍒欐鍙傛暟蹇呬紶銆�
+ String out_request_no = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
+
+ AliConfigEntity AliConfigEntity = UsrAlipayConfigService.getBean().getConfigByPoleId(streetlightId); //鎵惧埌鏄摢涓鎴风殑鍏呯數妗� 灏遍��娆剧粰璋�
+ String checkStr = ConfigCheckUtils.checkAlipayConfig(AliConfigEntity);
+ if (checkStr != null) {
+ return false;
+ }
+
+ // SDK 鍏叡璇锋眰绫伙紝鍖呭惈鍏叡璇锋眰鍙傛暟锛屼互鍙婂皝瑁呬簡绛惧悕涓庨獙绛撅紝寮�鍙戣�呮棤闇�鍏虫敞绛惧悕涓庨獙绛�
+ AlipayClient client = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AliConfigEntity.getAppId(),
+ AliConfigEntity.getPrivateKey(), AlipayConfig.format,
+ AlipayConfig.charset, AliConfigEntity.getPublicKey(), AlipayConfig.sign_type);
+ AlipayTradeRefundRequest alipay_request = new AlipayTradeRefundRequest();
+ AlipayTradeRefundModel model = new AlipayTradeRefundModel();
+ model.setOutTradeNo(out_trade_no);
+// model.setTradeNo(out_trade_no);
+ model.setRefundAmount(refund_amount);
+ model.setRefundReason(refund_reason);
+ model.setOutRequestNo(out_request_no);
+ alipay_request.setBizModel(model);
+
+ AlipayTradeRefundResponse alipay_response = null;
+ try {
+ alipay_response = client.execute(alipay_request);
+ } catch (AlipayApiException e) {
+ e.printStackTrace();
+ }
+// System.out.println(alipay_response.getBody());
+ if ("10000".equals(alipay_response.getCode())) {
+ // 閫�娆炬垚鍔�
+ // LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"閫�娆炬搷浣�",null,"{ 杩涜鏀粯瀹濋��娆�(鎴愬姛):"+out_trade_no+",閫�娆鹃噾棰�:"+refundAmount+" }");
+ return true;
+ }
+ //淇濆瓨閫�娆鹃噾棰濆拰閫�娆惧崟鍙凤紝灏嗚鍗曠姸鎬佺疆涓哄畬鎴愶紙RFERROR锛夛紝淇濆瓨鍒版暟鎹簱
+ // LogService.getBean().log((long)0, ServerTask.SERVER_TASK,"閫�娆炬搷浣�",null,"{ 杩涜鏀粯瀹濋��娆�(澶辫触):"+out_trade_no+",閫�娆鹃噾棰�:"+refundAmount+",reason: "+ JSON.toJSONString(alipay_response)+" }");
+ return false;
+ }
+
+
+}
--
Gitblit v1.9.3