From b29d7b6bbe8256d5e95fb878adf06ffa9abb449a Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 09 二月 2026 10:29:00 +0800
Subject: [PATCH] 新增退款
---
server/services/src/main/java/com/allinpay/syb/lib/SybUtil.java | 143 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 131 insertions(+), 12 deletions(-)
diff --git a/server/services/src/main/java/com/allinpay/syb/lib/SybUtil.java b/server/services/src/main/java/com/allinpay/syb/lib/SybUtil.java
index 6b1248e..3fda1e5 100644
--- a/server/services/src/main/java/com/allinpay/syb/lib/SybUtil.java
+++ b/server/services/src/main/java/com/allinpay/syb/lib/SybUtil.java
@@ -1,6 +1,5 @@
package com.allinpay.syb.lib;
-import java.io.UnsupportedEncodingException;
import java.security.KeyFactory;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -8,13 +7,13 @@
import java.security.PublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
-import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.TreeMap;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
+import com.allinpay.syb.model.PayOrderNotifyParam;
import org.apache.commons.codec.binary.Base64;
public class SybUtil {
@@ -101,16 +100,16 @@
public static boolean validSign(TreeMap<String, String> param,
String appkey, String signType) throws Exception {
- if (param != null && !param.isEmpty()) {
- if (!param.containsKey("sign"))
- return false;
- String sign = param.remove("sign");
- if ("MD5".equals(signType)) {// 濡傛灉鏄痬d5鍒欓渶瑕佹妸md5鐨刱ey鍔犲叆鍒版帓搴�
- param.put("key", appkey);
- }
- StringBuilder sb = new StringBuilder();
- for (Map.Entry<String, String> entry : param.entrySet()) {
- if (entry.getValue() != null && entry.getValue().length() > 0) {
+ if (param != null && !param.isEmpty()) {
+ if (!param.containsKey("sign"))
+ return false;
+ String sign = param.remove("sign");
+ if ("MD5".equals(signType)) {// 濡傛灉鏄痬d5鍒欓渶瑕佹妸md5鐨刱ey鍔犲叆鍒版帓搴�
+ param.put("key", appkey);
+ }
+ StringBuilder sb = new StringBuilder();
+ for (Map.Entry<String, String> entry : param.entrySet()) {
+ if (entry.getValue() != null && entry.getValue().length() > 0) {
sb.append(entry.getKey()).append("=")
.append(entry.getValue()).append("&");
}
@@ -239,4 +238,124 @@
return keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));
}
+ public static String getPayInfoByStatus(PayOrderNotifyParam map) {
+ /**
+ * 0000锛氫氦鏄撴垚鍔�
+ * 1001锛氫氦鏄撲笉瀛樺湪
+ * 2008鎴栬��2000 : 浜ゆ槗澶勭悊涓�,璇锋煡璇氦鏄�,濡傛灉鏄疄鏃朵氦鏄�(渚嬪鍒峰崱鏀粯,浜ゆ槗鎾ら攢,閫�璐�),寤鸿姣忛殧涓�娈垫椂闂�(10绉�)鏌ヨ浜ゆ槗
+ * 3寮�澶寸殑閿欒鐮佷唬琛ㄤ氦鏄撳け璐�
+ * 3888-娴佹按鍙烽噸澶�
+ * 3889-浜ゆ槗鎺у埗澶辫触锛屽叿浣撳師鍥犵湅errmsg
+ * 3099-娓犻亾鍟嗘埛閿欒
+ * 3014-浜ゆ槗閲戦灏忎簬搴旀敹鎵嬬画璐�
+ * 3024-閫�娆鹃鐜囬檺鍒讹紝寤鸿30绉掑悗鍐嶅彂璧烽��娆�
+ * 3031-鏍¢獙瀹炲悕淇℃伅澶辫触
+ * 3088-浜ゆ槗鏈敮浠�(鍦ㄦ煡璇㈡椂闂村尯闂村唴鏈垚鍔熸敮浠�,濡傚凡褰卞搷璧勯噾24灏忔椂鍐呬細鍋氬樊閿欓��娆惧鐞�)
+ * 3089-鎾ら攢寮傚父,濡傚凡褰卞搷璧勯噾24灏忔椂鍐呬細鍋氬樊閿欓��娆惧鐞�
+ * 3045-鍏朵粬閿欒锛屽叿浣撳師鍥犵湅errmsg
+ * 3050-浜ゆ槗宸茶鎾ら攢
+ * 3999-鍏朵粬閿欒锛屽叿浣撳師鍥犵湅errmsg
+ * 3008-鍟嗘埛浣欓涓嶈冻
+ */
+ String info = "浜ゆ槗澶辫触";
+ switch (map.getTrxstatus()){
+ case "0000":
+ info="浜ゆ槗鎴愬姛";
+ break;
+ case "1001":
+ info="浜ゆ槗涓嶅瓨鍦�";
+ break;
+ case "2008":
+ info="浜ゆ槗澶勭悊涓�,璇锋煡璇氦鏄�,濡傛灉鏄疄鏃朵氦鏄�(渚嬪鍒峰崱鏀粯,浜ゆ槗鎾ら攢,閫�璐�),寤鸿姣忛殧涓�娈垫椂闂�(10绉�)鏌ヨ浜ゆ槗";
+ break;
+ case "2000":
+ info="浜ゆ槗澶勭悊涓�,璇锋煡璇氦鏄�,濡傛灉鏄疄鏃朵氦鏄�(渚嬪鍒峰崱鏀粯,浜ゆ槗鎾ら攢,閫�璐�),寤鸿姣忛殧涓�娈垫椂闂�(10绉�)鏌ヨ浜ゆ槗";
+ break;
+ case "3888":
+ info="娴佹按鍙烽噸澶�";
+ break;
+ case "3889":
+ info="浜ゆ槗鎺у埗澶辫触锛屽叿浣撳師鍥犵湅errmsg";
+ break;
+ case "3099":
+ info="娓犻亾鍟嗘埛閿欒";
+ break;
+ case "3014":
+ info="閫�娆鹃鐜囬檺鍒讹紝寤鸿30绉掑悗鍐嶅彂璧烽��娆�";
+ break;
+ case "3024":
+ info="浜ゆ槗閲戦灏忎簬搴旀敹鎵嬬画璐�";
+ break;
+ case "3031":
+ info="鏍¢獙瀹炲悕淇℃伅澶辫触";
+ break;
+ case "3088":
+ info="浜ゆ槗鏈敮浠�(鍦ㄦ煡璇㈡椂闂村尯闂村唴鏈垚鍔熸敮浠�,濡傚凡褰卞搷璧勯噾24灏忔椂鍐呬細鍋氬樊閿欓��娆惧鐞�)";
+ break;
+ case "3089":
+ info="鎾ら攢寮傚父,濡傚凡褰卞搷璧勯噾24灏忔椂鍐呬細鍋氬樊閿欓��娆惧鐞�";
+ break;
+ case "3045":
+ info="鍏朵粬閿欒锛屽叿浣撳師鍥犵湅errmsg";
+ break;
+ case "3050":
+ info="浜ゆ槗宸茶鎾ら攢";
+ break;
+ case "3999":
+ info= "鍏朵粬閿欒1锛屽叿浣撳師鍥犵湅errmsg";
+ break;
+ case "3008":
+ info="鍟嗘埛浣欓涓嶈冻";
+ break;
+ default:
+ break;
+ }
+
+ return map.getTrxstatus() + info ;
+ }
+ public static String getPayTypeByCode(PayOrderNotifyParam map) {
+ /**
+ VSP501 寰俊鏀粯
+ VSP502 寰俊鏀粯鎾ら攢
+ VSP503 寰俊鏀粯閫�娆�
+ VSP511 鏀粯瀹濇敮浠�
+ VSP512 鏀粯瀹濇敮浠樻挙閿�
+ VSP513 鏀粯瀹濇敮浠橀��娆�
+ VSP551 閾惰仈鎵爜鏀粯
+ VSP552 閾惰仈鎵爜鎾ら攢
+ VSP553 閾惰仈鎵爜閫�璐�
+ */
+ String info = "浜ゆ槗澶辫触";
+ switch (map.getTrxcode()){
+ case "VSP501":
+ info="寰俊鏀粯";
+ break;
+ case "VSP502":
+ info="寰俊鏀粯鎾ら攢";
+ break;
+ case "VSP511":
+ info="浠樺疂鏀粯";
+ break;
+ case "VSP512":
+ info="鏀粯瀹濇敮浠樻挙閿�";
+ break;
+ case "VSP513":
+ info="鏀粯瀹濇敮浠橀��娆�";
+ break;
+ case "VSP551":
+ info="閾惰仈鎵爜鏀粯";
+ break;
+ case "VSP552":
+ info="閾惰仈鎵爜鎾ら攢";
+ break;
+ case "VSP553":
+ info="閾惰仈鎵爜閫�璐�";
+ break;
+ default:
+ break;
+ }
+
+ return info ;
+ }
+
}
--
Gitblit v1.9.3