完成一键登录和支付功能
This commit was merged in pull request #43.
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
import com.huifu.bspay.sdk.opps.core.request.*;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ListAllQueryApis {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("=== 查找所有查询相关的请求类及字段 ===\n");
|
||||
|
||||
List<Class<?>> queryClasses = new ArrayList<>();
|
||||
|
||||
try {
|
||||
Package pkg = V2TradePaymentScanpayQueryRequest.class.getPackage();
|
||||
String pkgName = pkg.getName();
|
||||
System.out.println("Package: " + pkgName);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Class<?>[] classes = {
|
||||
V2TradePaymentScanpayQueryRequest.class,
|
||||
V2TradeCheckFilequeryRequest.class,
|
||||
V2TradeTransstatQueryRequest.class,
|
||||
V2TradeSettleCollectionDetailQueryRequest.class,
|
||||
V2TradeBatchtranslogQueryRequest.class,
|
||||
};
|
||||
|
||||
for (Class<?> clazz : classes) {
|
||||
System.out.println("\n=== " + clazz.getSimpleName() + " ===");
|
||||
System.out.println("functionCode: " + getFunctionCode(clazz));
|
||||
System.out.println("所有setter方法:");
|
||||
listSetters(clazz);
|
||||
}
|
||||
}
|
||||
|
||||
private static String getFunctionCode(Class<?> clazz) {
|
||||
try {
|
||||
Object instance = clazz.getDeclaredConstructor().newInstance();
|
||||
Field functionCodeField = clazz.getSuperclass().getDeclaredField("functionCode");
|
||||
functionCodeField.setAccessible(true);
|
||||
return String.valueOf(functionCodeField.get(instance));
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
Field functionCodeField = clazz.getDeclaredField("functionCode");
|
||||
functionCodeField.setAccessible(true);
|
||||
Object instance = clazz.getDeclaredConstructor().newInstance();
|
||||
return String.valueOf(functionCodeField.get(instance));
|
||||
} catch (Exception e2) {
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void listSetters(Class<?> clazz) {
|
||||
Method[] methods = clazz.getMethods();
|
||||
List<String> setters = new ArrayList<>();
|
||||
for (Method m : methods) {
|
||||
if (m.getName().startsWith("set") && !m.getName().equals("setClass")) {
|
||||
StringBuilder sb = new StringBuilder(" ");
|
||||
sb.append(m.getName());
|
||||
sb.append("(");
|
||||
Class<?>[] params = m.getParameterTypes();
|
||||
for (int i = 0; i < params.length; i++) {
|
||||
if (i > 0) sb.append(", ");
|
||||
sb.append(params[i].getSimpleName());
|
||||
}
|
||||
sb.append(")");
|
||||
setters.add(sb.toString());
|
||||
}
|
||||
}
|
||||
java.util.Collections.sort(setters);
|
||||
for (String s : setters) {
|
||||
System.out.println(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeBatchtranslogQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class TestBatchtranslogQuery {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== V2TradeBatchtranslogQuery 批量交易日志查询测试 ==========");
|
||||
System.out.println();
|
||||
|
||||
String today = DateTools.getCurrentDateYYYYMMDD();
|
||||
String weekAgo = java.time.LocalDate.now().minusDays(7).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
try {
|
||||
V2TradeBatchtranslogQueryRequest request = new V2TradeBatchtranslogQueryRequest();
|
||||
request.setHuifuId(huifuId);
|
||||
request.setBeginDate(weekAgo);
|
||||
request.setEndDate(today);
|
||||
|
||||
System.out.println("请求参数: " + JSON.toJSONString(request));
|
||||
System.out.println();
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
System.out.println("响应: " + JSON.toJSONString(response, true));
|
||||
System.out.println();
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
System.out.println("resp_code: " + respCode);
|
||||
System.out.println("resp_desc: " + response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println();
|
||||
System.out.println("所有字段:");
|
||||
Set<String> keys = response.keySet();
|
||||
for (String key : keys) {
|
||||
System.out.println(" " + key);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeBatchtranslogQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class TestBatchtranslogQuery2 {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== V2TradeBatchtranslogQuery 批量交易日志查询测试 ==========");
|
||||
System.out.println();
|
||||
|
||||
String today = DateTools.getCurrentDateYYYYMMDD();
|
||||
String daysAgo30 = java.time.LocalDate.now().minusDays(30).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
String daysAgo7 = java.time.LocalDate.now().minusDays(7).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
String daysAgo5 = java.time.LocalDate.now().minusDays(5).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
System.out.println("测试1: 近30天");
|
||||
testQuery(huifuId, daysAgo30, today);
|
||||
|
||||
System.out.println();
|
||||
System.out.println("测试2: 近7天");
|
||||
testQuery(huifuId, daysAgo7, today);
|
||||
|
||||
System.out.println();
|
||||
System.out.println("测试3: 近5天");
|
||||
testQuery(huifuId, daysAgo5, today);
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void testQuery(String huifuId, String beginDate, String endDate) {
|
||||
try {
|
||||
V2TradeBatchtranslogQueryRequest request = new V2TradeBatchtranslogQueryRequest();
|
||||
request.setHuifuId(huifuId);
|
||||
request.setBeginDate(beginDate);
|
||||
request.setEndDate(endDate);
|
||||
|
||||
System.out.println(" beginDate=" + beginDate + ", endDate=" + endDate);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println(" resp_code: " + respCode);
|
||||
System.out.println(" resp_desc: " + respDesc);
|
||||
System.out.println(" result_count: " + response.get("result_count"));
|
||||
System.out.println(" page_num: " + response.get("page_num"));
|
||||
System.out.println(" page_size: " + response.get("page_size"));
|
||||
|
||||
if ("00000000".equals(respCode)) {
|
||||
System.out.println(" *** 查询成功! ***");
|
||||
Object transList = response.get("trans_log_result_list");
|
||||
if (transList != null) {
|
||||
System.out.println(" 交易列表: " + JSON.toJSONString(transList, true));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println(" 调用失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeBatchtranslogQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestBatchtranslogQuery3 {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== V2TradeBatchtranslogQuery 测试 ==========");
|
||||
System.out.println();
|
||||
|
||||
String today = DateTools.getCurrentDateYYYYMMDD();
|
||||
String daysAgo90 = java.time.LocalDate.now().minusDays(90).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
String daysAgo30 = java.time.LocalDate.now().minusDays(30).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
System.out.println("测试1: 近90天 (跨度90天)");
|
||||
testQuery(huifuId, daysAgo90, today);
|
||||
|
||||
System.out.println();
|
||||
System.out.println("测试2: 近30天 (跨度30天)");
|
||||
testQuery(huifuId, daysAgo30, today);
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void testQuery(String huifuId, String beginDate, String endDate) {
|
||||
try {
|
||||
V2TradeBatchtranslogQueryRequest request = new V2TradeBatchtranslogQueryRequest();
|
||||
request.setHuifuId(huifuId);
|
||||
request.setBeginDate(beginDate);
|
||||
request.setEndDate(endDate);
|
||||
|
||||
System.out.println(" beginDate=" + beginDate + ", endDate=" + endDate);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println(" resp_code: " + respCode);
|
||||
System.out.println(" resp_desc: " + respDesc);
|
||||
System.out.println(" result_count: " + response.get("result_count"));
|
||||
|
||||
if ("00000000".equals(respCode)) {
|
||||
System.out.println(" *** 查询成功! ***");
|
||||
Object transList = response.get("trans_log_result_list");
|
||||
if (transList != null) {
|
||||
System.out.println(" 交易列表: " + JSON.toJSONString(transList, true));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println(" 调用失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeCheckFilequeryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeBatchtranslogQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeSettleCollectionDetailQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class TestChannelQuery {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCNUdQE59I4bV1dIgLs2IRN3Wl8KI2yS4KpTUQWrvvlUcBTztB8rIeN5lr6Yv4VsZ1TG0FAb0D80JjxEQ1+0HizYNOQ1h2935v2r8h7rx3VTLbMOkmsg8Lb8LQRTbPaJOZfsIZMzBytYiRzWunHaMlCr800EA3q5NMj9VjHQuamxKqyzyHqfkIjA/sZ8q9atVjn8ahUjPKdrGA8b79HexHhCgOSLdK+fWw0eMCsWWYP2qECLsvZ+tjfvqSBXx1kg7womwT1VBCf+0Dx+jJPKR3mxQfz2szoucJYuXRo55kA6yCwoeNsjanLDRkPBSy3NHdKrffP6YODhRHG6KHyayyNAgMBAAECggEATIR69TEETVNCEzRgOxe9A2AYRoa6ukhSdhMFA/c5IuCR747yqh7MwtNwfVRuWRazpZUDTr0uhfT4asad9QUx5YZO54RX1EAn9XkWZ4nY8G46J/iDfapWLrp09U2KTVpfdn5hKWH3QRX7wI4AON2O49HGnSL4NjAx9q1YpYOe2bqevxmB4uD9vR/FHMjZ2qWzPaL7pId98x4DCJCiZctBQqb7gxR8EseD1Ddn2HbH5DEUjoxz2umtL+zrcGKDFBy4kM3r+10FP5jFG4fJfZFQwrzMTEkXJriau9DMRTQ83rWHzNvhdTNUuyqah74ez5V1piVEOXCPudzFsMttD2DyzQKBgQDokQH3WtcQqwFTUo+uWVVup4NoQzNZpEGIHK17afRsf9YnkoJVqjhywq1dhQT+yuyW9geJJKWpHQIAS4gGudhNK+j6d//bbvvbkOmtsdWyZ6Z2EmY8JrPkHdHAcadNJX7vrIc1xPeyci4AHhErDHc3hhD5njuSLx3DUp4iODNxKwKBgQCbjyHvP90YGjh49DWklh2NJgR2+OR6Fd0afdmwtGKeCUP5l2To6rfLBbcSRIWCON4iLME5wLLdHcm5wAQukC4dsUB5iZffp21+7hrrwUw/G0MUzFudfhZkjsDU5i+FwnVMqmsLJPUsjJTOfKsJdA2DjnwfMcgxw9FeClGveSFNJwKBgQDCpjuDECDY7oeZeYyQXGzIxKOTbEtaR8Qha/83QCM3fHd9f35evK2qP45iq6bWqnkCkMEV4/pTZNf77zvWhU2oqYvBtxYKTwW1a8BphGJbg60rPZMb3TjLQLoB3B4uz6dCaqBwPH8kd7RQnNm5siFF84vZoLozTAQZKtj3wxorKQKBgQCGKnEONHqwaw0B5T7O8VoTfxKiug/07B6C1sCGk03rF/q0rkquSKK0S/2Vl9u+cOXFe+w7r2OVKjfuKRpyPpBHs7T0HiQLFhBuRVaat2DXnN/CdG8f6rvNhwHxnYanSwx4TxN7zShYf/doEEZEJP/y01ViYkFUCpvtC+FgAo0iSQKBgFrkJGxPo6T7i5ZF7VoZWdARnypfbOl4gF9GMrXykk0fnKBDTof9Bg34a8OX54cf4yEH1ifZzVtNyzPTH9FxV88TksWRouqi1Uo6///kJI6gXROspE91TpNtNGHPgLhebA83WlFtS/H7i5G6RO+6KO0uflSImfy3Owp/ChyFUGmn";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7PYy64gcO1Y44ntGFRdHzDJy6KnNoMLB6H5ZyCvqB2m2Bvzx18TMCjwevt5A4XF0ke9HfXRvZOL8TOaHdeiSbXWVBEpNsbQr0612U41cN688uHk4ShtoYuvSAbT0SuQULPh90BthzBrxrIuduex7qISk4d4mKvfM+tMTBQPWJc2au2yfTpisZPlKS5jg5xUCxG4UIze/xC4I92rVyVfziMm19Tzh1EXq4Hm1nXmRejgE2o2Hi/wu8Et6hj5UjZzPu3DPvzDN4AP372DP6EREYrVGYiD9qDqxx63jDqlGsdKmENXPp27gUqXX4vGD5xn0lOSXMHUQ5NUcXzdGbpWBBwIDAQAB";
|
||||
String sysId = "6666000207573586";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207573586";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 渠道商ID查询测试 ==========");
|
||||
System.out.println("渠道商huifuId: " + huifuId);
|
||||
System.out.println();
|
||||
|
||||
String[] dates = {"20260620", "20260621", "20260622", "20260623", "20260624", "20260625", "20260626"};
|
||||
String[] billTypes = {"TRADE_BILL", "MERGE_BILL"};
|
||||
|
||||
System.out.println("========== 1. 对账文件查询 ==========");
|
||||
for (String date : dates) {
|
||||
for (String billType : billTypes) {
|
||||
try {
|
||||
V2TradeCheckFilequeryRequest request = new V2TradeCheckFilequeryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setReqSeqId(SequenceTools.getReqSeqId32());
|
||||
request.setHuifuId(huifuId);
|
||||
request.setFileDate(date);
|
||||
|
||||
Map<String, Object> extendInfoMap = new HashMap<>();
|
||||
extendInfoMap.put("bill_type", billType);
|
||||
request.setExtendInfo(extendInfoMap);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
boolean hasData = response.containsKey("file_details") || response.containsKey("file_list")
|
||||
|| response.containsKey("download_url") || response.containsKey("bill_list");
|
||||
|
||||
if (hasData || !"00000000".equals(respCode)) {
|
||||
System.out.println("date=" + date + ", billType=" + billType + ": resp_code=" + respCode + ", resp_desc=" + respDesc + ", hasData=" + hasData);
|
||||
if (hasData) {
|
||||
System.out.println(" 完整响应: " + JSON.toJSONString(response, true));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("date=" + date + ", billType=" + billType + ": 失败 - " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 2. 批量交易日志查询 ==========");
|
||||
try {
|
||||
V2TradeBatchtranslogQueryRequest request = new V2TradeBatchtranslogQueryRequest();
|
||||
request.setHuifuId(huifuId);
|
||||
request.setBeginDate("20260620");
|
||||
request.setEndDate("20260626");
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
String resultCount = String.valueOf(response.getOrDefault("result_count", ""));
|
||||
|
||||
System.out.println("resp_code=" + respCode + ", resp_desc=" + respDesc + ", result_count=" + resultCount);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 3. 结算汇总明细查询 ==========");
|
||||
try {
|
||||
V2TradeSettleCollectionDetailQueryRequest request = new V2TradeSettleCollectionDetailQueryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setReqSeqId(SequenceTools.getReqSeqId32());
|
||||
request.setBeginDate("20260620");
|
||||
request.setEndDate("20260626");
|
||||
request.setInHuifuId(huifuId);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
String totalCount = String.valueOf(response.getOrDefault("total_count", ""));
|
||||
|
||||
System.out.println("resp_code=" + respCode + ", resp_desc=" + respDesc + ", total_count=" + totalCount);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeCheckFilequeryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class TestCheckFileQuery {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 对账单查询测试 ==========");
|
||||
System.out.println("商户号: " + huifuId);
|
||||
System.out.println();
|
||||
|
||||
String[] billTypes = {"TRADE_BILL", "MERGE_BILL"};
|
||||
String[] dates = {"20260624", "20260625", "20260626"};
|
||||
|
||||
for (String date : dates) {
|
||||
for (String billType : billTypes) {
|
||||
try {
|
||||
System.out.println("--- 查询: date=" + date + ", billType=" + billType + " ---");
|
||||
|
||||
V2TradeCheckFilequeryRequest request = new V2TradeCheckFilequeryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setReqSeqId(SequenceTools.getReqSeqId32());
|
||||
request.setHuifuId(huifuId);
|
||||
request.setFileDate(date);
|
||||
|
||||
Map<String, Object> extendInfoMap = new HashMap<>();
|
||||
extendInfoMap.put("bill_type", billType);
|
||||
request.setExtendInfo(extendInfoMap);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
System.out.println();
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import com.huifu.dg.lightning.models.payment.TradePaymentCreateRequest;
|
||||
|
||||
public class TestCreateRequest {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("=== TradePaymentCreateRequest 方法列表 ===");
|
||||
java.lang.reflect.Method[] methods = TradePaymentCreateRequest.class.getMethods();
|
||||
for (java.lang.reflect.Method m : methods) {
|
||||
if (m.getName().startsWith("set") || m.getName().startsWith("get")) {
|
||||
System.out.println(" " + m.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestCreateResponse {
|
||||
public static void main(String[] args) {
|
||||
String sampleResponse = "{\"resp_code\":\"00000000\",\"resp_desc\":\"成功\",\"pay_url\":\"https://qr.alipay.com/bax06073aogec1i3hnxm25ca\",\"hf_seq_id\":\"002900TOP1B260626063214P375ac139c1e00000\",\"party_order_id\":\"03212606262353456318391\",\"trans_amt\":\"0.01\",\"goods_desc\":\"测试商品\"}";
|
||||
Map<String, Object> response = JSON.parseObject(sampleResponse, Map.class);
|
||||
|
||||
System.out.println("=== 汇付创建支付响应字段 ===");
|
||||
for (Map.Entry<String, Object> entry : response.entrySet()) {
|
||||
System.out.println(" " + entry.getKey() + ": " + entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestMerchantOrderQuery {
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String merchantPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String merchantPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String merchantSysId = "6666000207581039";
|
||||
String merchantHuifuId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
String merchantOrderId = "20260626063214992n7xcukl8mp4cbx";
|
||||
String hfSeqId = "002900TOP1B260626063214P375ac139c1e00000";
|
||||
String channelHuifuId = "6666000207573586";
|
||||
String queryDate = "20260626";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(merchantSysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(merchantPrivateKey);
|
||||
merConfig.setRsaPublicKey(merchantPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 1. 使用商户ID + org_req_seq_id 查询 ==========");
|
||||
try {
|
||||
V2TradePaymentScanpayQueryRequest request = new V2TradePaymentScanpayQueryRequest();
|
||||
request.setHuifuId(merchantHuifuId);
|
||||
request.setOrgReqSeqId(merchantOrderId);
|
||||
request.setOrgReqDate(queryDate);
|
||||
|
||||
System.out.println("请求参数: huifuId=" + merchantHuifuId + ", orgReqSeqId=" + merchantOrderId + ", orgReqDate=" + queryDate);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println("\n========== 2. 使用商户ID + org_hf_seq_id 查询 ==========");
|
||||
try {
|
||||
V2TradePaymentScanpayQueryRequest request = new V2TradePaymentScanpayQueryRequest();
|
||||
request.setHuifuId(merchantHuifuId);
|
||||
request.setOrgHfSeqId(hfSeqId);
|
||||
request.setOrgReqDate(queryDate);
|
||||
|
||||
System.out.println("请求参数: huifuId=" + merchantHuifuId + ", orgHfSeqId=" + hfSeqId + ", orgReqDate=" + queryDate);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println("\n========== 3. 使用渠道商ID + org_req_seq_id 查询 ==========");
|
||||
try {
|
||||
V2TradePaymentScanpayQueryRequest request = new V2TradePaymentScanpayQueryRequest();
|
||||
request.setHuifuId(channelHuifuId);
|
||||
request.setOrgReqSeqId(merchantOrderId);
|
||||
request.setOrgReqDate(queryDate);
|
||||
|
||||
System.out.println("请求参数: huifuId=" + channelHuifuId + ", orgReqSeqId=" + merchantOrderId + ", orgReqDate=" + queryDate);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeCheckFilequeryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeBatchtranslogQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class TestMoreDates {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 测试更早日期的对账文件查询 ==========");
|
||||
|
||||
String[] dates = {"20260620", "20260621", "20260622", "20260623", "20260624"};
|
||||
String[] billTypes = {"TRADE_BILL", "MERGE_BILL"};
|
||||
|
||||
for (String date : dates) {
|
||||
for (String billType : billTypes) {
|
||||
try {
|
||||
System.out.println("--- 查询: date=" + date + ", billType=" + billType + " ---");
|
||||
|
||||
V2TradeCheckFilequeryRequest request = new V2TradeCheckFilequeryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setReqSeqId(SequenceTools.getReqSeqId32());
|
||||
request.setHuifuId(huifuId);
|
||||
request.setFileDate(date);
|
||||
|
||||
Map<String, Object> extendInfoMap = new HashMap<>();
|
||||
extendInfoMap.put("bill_type", billType);
|
||||
request.setExtendInfo(extendInfoMap);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println(" 响应码: " + respCode + ", 描述: " + respDesc);
|
||||
|
||||
if ("00000000".equals(respCode)) {
|
||||
boolean hasData = false;
|
||||
String[] keys = {"file_details", "file_list", "task_details", "bill_list", "download_url", "file_name"};
|
||||
for (String key : keys) {
|
||||
Object val = response.get(key);
|
||||
if (val != null && !"null".equals(String.valueOf(val)) && !String.valueOf(val).isEmpty()) {
|
||||
System.out.println(" " + key + ": " + JSON.toJSONString(val));
|
||||
hasData = true;
|
||||
}
|
||||
}
|
||||
if (!hasData) {
|
||||
System.out.println(" (无明细数据)");
|
||||
}
|
||||
}
|
||||
System.out.println();
|
||||
} catch (Exception e) {
|
||||
System.out.println(" 调用失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试批量交易日志查询 (更早日期范围) ==========");
|
||||
try {
|
||||
V2TradeBatchtranslogQueryRequest request = new V2TradeBatchtranslogQueryRequest();
|
||||
request.setHuifuId(huifuId);
|
||||
request.setBeginDate("20260601");
|
||||
request.setEndDate("20260626");
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
System.out.println("响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeBatchtranslogQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeSettleCollectionDetailQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestOtherQueryApis {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
String today = DateTools.getCurrentDateYYYYMMDD();
|
||||
String yesterday = "20260625";
|
||||
|
||||
System.out.println("========== 1. 批量交易日志查询 (V2TradeBatchtranslogQueryRequest) ==========");
|
||||
try {
|
||||
V2TradeBatchtranslogQueryRequest request = new V2TradeBatchtranslogQueryRequest();
|
||||
request.setHuifuId(huifuId);
|
||||
request.setBeginDate(yesterday);
|
||||
request.setEndDate(today);
|
||||
|
||||
System.out.println("请求参数: " + JSON.toJSONString(request));
|
||||
System.out.println();
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 2. 结算汇总明细查询 (V2TradeSettleCollectionDetailQueryRequest) ==========");
|
||||
try {
|
||||
V2TradeSettleCollectionDetailQueryRequest request = new V2TradeSettleCollectionDetailQueryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setReqSeqId(SequenceTools.getReqSeqId32());
|
||||
request.setBeginDate(yesterday);
|
||||
request.setEndDate(today);
|
||||
request.setInHuifuId(huifuId);
|
||||
|
||||
System.out.println("请求参数: " + JSON.toJSONString(request));
|
||||
System.out.println();
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import com.huifu.dg.lightning.models.payment.TradePaymentScanpayQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
|
||||
|
||||
public class TestQueryRequest {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("=== V4 TradePaymentScanpayQueryRequest 方法列表 ===");
|
||||
java.lang.reflect.Method[] methods4 = TradePaymentScanpayQueryRequest.class.getMethods();
|
||||
for (java.lang.reflect.Method m : methods4) {
|
||||
if (m.getName().startsWith("set") || m.getName().startsWith("get")) {
|
||||
System.out.println(" " + m.getName());
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("\n=== V2 V2TradePaymentScanpayQueryRequest 方法列表 ===");
|
||||
java.lang.reflect.Method[] methods2 = V2TradePaymentScanpayQueryRequest.class.getMethods();
|
||||
for (java.lang.reflect.Method m : methods2) {
|
||||
if (m.getName().startsWith("set") || m.getName().startsWith("get")) {
|
||||
System.out.println(" " + m.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestQueryWithOrgFields {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String merchantPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String merchantPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String merchantSysId = "6666000207581039";
|
||||
String merchantHuifuId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
String outOrdId = "20260626063214992n7xcukl8mp4cbx";
|
||||
String hfSeqId = "002900TOP1B260626063214P375ac139c1e00000";
|
||||
|
||||
System.out.println("========== 测试单笔交易查询(使用org字段)==========");
|
||||
System.out.println("商户订单号: " + outOrdId);
|
||||
System.out.println("汇付流水号: " + hfSeqId);
|
||||
System.out.println();
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(merchantSysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(merchantPrivateKey);
|
||||
merConfig.setRsaPublicKey(merchantPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 1. 使用 org_hf_seq_id 查询 ==========");
|
||||
try {
|
||||
V2TradePaymentScanpayQueryRequest request = new V2TradePaymentScanpayQueryRequest();
|
||||
request.setHuifuId(merchantHuifuId);
|
||||
request.setOrgHfSeqId(hfSeqId);
|
||||
request.setOrgReqDate("20260626");
|
||||
|
||||
System.out.println("请求参数: huifuId=" + merchantHuifuId + ", orgHfSeqId=" + hfSeqId + ", orgReqDate=20260626");
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 2. 使用 org_req_seq_id + org_req_date 查询 ==========");
|
||||
try {
|
||||
V2TradePaymentScanpayQueryRequest request = new V2TradePaymentScanpayQueryRequest();
|
||||
request.setHuifuId(merchantHuifuId);
|
||||
request.setOrgReqSeqId(outOrdId);
|
||||
request.setOrgReqDate("20260626");
|
||||
|
||||
System.out.println("请求参数: huifuId=" + merchantHuifuId + ", orgReqSeqId=" + outOrdId + ", orgReqDate=20260626");
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestQueryWithRealOrder {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String merchantPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String merchantPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String merchantSysId = "6666000207581039";
|
||||
String merchantHuifuId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
String outOrdId = "20260626063214992n7xcukl8mp4cbx";
|
||||
String hfSeqId = "002900TOP1B260626063214P375ac139c1e00000";
|
||||
|
||||
System.out.println("========== 测试单笔交易查询 ==========");
|
||||
System.out.println("商户订单号: " + outOrdId);
|
||||
System.out.println("汇付流水号: " + hfSeqId);
|
||||
System.out.println();
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(merchantSysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(merchantPrivateKey);
|
||||
merConfig.setRsaPublicKey(merchantPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 1. V2 扫码支付查询 - 按商户订单号查询 ==========");
|
||||
try {
|
||||
V2TradePaymentScanpayQueryRequest request = new V2TradePaymentScanpayQueryRequest();
|
||||
request.setHuifuId(merchantHuifuId);
|
||||
request.setOutOrdId(outOrdId);
|
||||
|
||||
System.out.println("请求参数: huifuId=" + merchantHuifuId + ", outOrdId=" + outOrdId);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 2. V2TradePaymentScanpayQueryRequest 所有方法 ==========");
|
||||
try {
|
||||
java.lang.reflect.Method[] methods = V2TradePaymentScanpayQueryRequest.class.getMethods();
|
||||
for (java.lang.reflect.Method m : methods) {
|
||||
if (m.getName().startsWith("set") || m.getName().startsWith("get")) {
|
||||
System.out.println(" " + m.getName());
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("获取方法失败: " + e.getMessage());
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeCheckFilequeryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
|
||||
public class TestReconciliationDetail {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 斗拱对账单查询 - 详细响应分析 ==========");
|
||||
System.out.println();
|
||||
|
||||
String yesterday = java.time.LocalDate.now().minusDays(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
System.out.println("测试日期: " + yesterday);
|
||||
System.out.println();
|
||||
|
||||
String[] billTypes = {"TRADE_BILL", "MERGE_BILL", "FEE_BILL", "REFUND_BILL"};
|
||||
|
||||
for (String billType : billTypes) {
|
||||
System.out.println("--------------------------------------------------");
|
||||
System.out.println("账单类型: " + billType);
|
||||
System.out.println("--------------------------------------------------");
|
||||
try {
|
||||
V2TradeCheckFilequeryRequest request = new V2TradeCheckFilequeryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setReqSeqId(SequenceTools.getReqSeqId32());
|
||||
request.setHuifuId(huifuId);
|
||||
request.setFileDate(yesterday);
|
||||
|
||||
Map<String, Object> extendInfoMap = new HashMap<>();
|
||||
extendInfoMap.put("bill_type", billType);
|
||||
request.setExtendInfo(extendInfoMap);
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("resp_code: " + respCode);
|
||||
System.out.println("resp_desc: " + respDesc);
|
||||
System.out.println();
|
||||
System.out.println("所有响应字段:");
|
||||
Set<String> keys = response.keySet();
|
||||
for (String key : keys) {
|
||||
Object value = response.get(key);
|
||||
String valueStr = value != null ? value.toString() : "null";
|
||||
if (valueStr.length() > 100) {
|
||||
valueStr = valueStr.substring(0, 100) + "...";
|
||||
}
|
||||
System.out.println(" " + key + " = " + valueStr);
|
||||
}
|
||||
System.out.println();
|
||||
|
||||
if ("00000000".equals(respCode)) {
|
||||
Object fileDetails = response.get("file_details");
|
||||
if (fileDetails != null) {
|
||||
System.out.println("*** 找到 file_details! ***");
|
||||
System.out.println("file_details 类型: " + fileDetails.getClass().getName());
|
||||
System.out.println("file_details 内容: " + JSON.toJSONString(fileDetails, true));
|
||||
return;
|
||||
}
|
||||
Object taskDetails = response.get("task_details");
|
||||
if (taskDetails != null) {
|
||||
System.out.println("*** 找到 task_details! ***");
|
||||
System.out.println("task_details 内容: " + JSON.toJSONString(taskDetails, true));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeCheckFilequeryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class TestReconciliationProd {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 斗拱官方交易对账单查询测试(生产环境)==========");
|
||||
System.out.println("环境: 生产环境");
|
||||
System.out.println("商户号: " + huifuId);
|
||||
System.out.println();
|
||||
|
||||
String today = DateTools.getCurrentDateYYYYMMDD();
|
||||
String yesterday = java.time.LocalDate.now().minusDays(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
String dayBeforeYesterday = java.time.LocalDate.now().minusDays(2).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
String[] testDates = {today, yesterday, dayBeforeYesterday};
|
||||
String[] billTypes = {"TRADE_BILL", "MERGE_BILL"};
|
||||
|
||||
for (String testDate : testDates) {
|
||||
for (String billType : billTypes) {
|
||||
System.out.println("--------------------------------------------------");
|
||||
System.out.println("测试日期: " + testDate + ", 账单类型: " + billType);
|
||||
System.out.println("--------------------------------------------------");
|
||||
try {
|
||||
V2TradeCheckFilequeryRequest request = new V2TradeCheckFilequeryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setReqSeqId(SequenceTools.getReqSeqId32());
|
||||
request.setHuifuId(huifuId);
|
||||
request.setFileDate(testDate);
|
||||
|
||||
Map<String, Object> extendInfoMap = new HashMap<>();
|
||||
extendInfoMap.put("bill_type", billType);
|
||||
request.setExtendInfo(extendInfoMap);
|
||||
|
||||
System.out.println("请求参数: " + JSON.toJSONString(request));
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
|
||||
if ("00000000".equals(respCode)) {
|
||||
System.out.println("*** 查询成功! ***");
|
||||
Object fileDetails = response.get("file_details");
|
||||
if (fileDetails != null && !"null".equals(String.valueOf(fileDetails))) {
|
||||
System.out.println("*** 找到对账单文件! ***");
|
||||
return;
|
||||
}
|
||||
}
|
||||
System.out.println();
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeSettleCollectionDetailQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestSettlementQuery {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 测试结算汇总明细查询(生产环境)==========");
|
||||
System.out.println();
|
||||
|
||||
String today = DateTools.getCurrentDateYYYYMMDD();
|
||||
String weekAgo = java.time.LocalDate.now().minusDays(7).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
System.out.println("----- 结算汇总明细查询 -----");
|
||||
try {
|
||||
V2TradeSettleCollectionDetailQueryRequest request = new V2TradeSettleCollectionDetailQueryRequest();
|
||||
request.setReqDate(today);
|
||||
request.setReqSeqId(SequenceTools.getReqSeqId32());
|
||||
request.setBeginDate(weekAgo);
|
||||
request.setEndDate(today);
|
||||
request.setInHuifuId(huifuId);
|
||||
|
||||
System.out.println("请求参数: " + JSON.toJSONString(request));
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
System.out.println("响应: " + JSON.toJSONString(response, true));
|
||||
} catch (Exception e) {
|
||||
System.out.println("查询失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
import com.huifu.dg.lightning.factory.Factory;
|
||||
import com.huifu.dg.lightning.biz.client.CommonPayClient;
|
||||
import com.huifu.dg.lightning.models.payment.TradePaymentScanpayQueryRequest;
|
||||
import com.huifu.dg.lightning.utils.BasePay;
|
||||
import com.huifu.dg.lightning.biz.config.MerConfig;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestSingleQuery {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
MerConfig merConfig = new MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
BasePay.prodMode = BasePay.MODE_PROD;
|
||||
BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== V4 单笔交易查询测试 ==========");
|
||||
|
||||
CommonPayClient client = Factory.Payment.Common();
|
||||
|
||||
TradePaymentScanpayQueryRequest queryRequest = new TradePaymentScanpayQueryRequest();
|
||||
queryRequest.setReqDate("20260626");
|
||||
queryRequest.setReqSeqId(com.huifu.dg.lightning.utils.SequenceTools.getReqSeqId32());
|
||||
queryRequest.setHuifuId(huifuId);
|
||||
queryRequest.setOutOrdId("20260626063214982n7cuxk8mp4cbbx");
|
||||
|
||||
Map<String, Object> response = client.query(queryRequest);
|
||||
|
||||
System.out.println("查询响应:");
|
||||
System.out.println(JSON.toJSONString(response, true));
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeTransstatQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestTransstat {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 交易状态查询测试 ==========");
|
||||
System.out.println("商户号: " + huifuId);
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
V2TradeTransstatQueryRequest request = new V2TradeTransstatQueryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setHuifuId(huifuId);
|
||||
request.setPageNo("1");
|
||||
request.setPageSize("20");
|
||||
|
||||
System.out.println("请求参数: " + JSON.toJSONString(request));
|
||||
System.out.println();
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
|
||||
if ("00000000".equals(respCode)) {
|
||||
System.out.println();
|
||||
System.out.println("*** 查询成功! ***");
|
||||
Object transDetails = response.get("trans_details");
|
||||
if (transDetails != null) {
|
||||
System.out.println("trans_details: " + transDetails);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeTransstatQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestTransstatQuery {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_PROD;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 斗拱官方交易状态查询测试(生产环境)==========");
|
||||
System.out.println("环境: 生产环境");
|
||||
System.out.println("商户号: " + huifuId);
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
V2TradeTransstatQueryRequest request = new V2TradeTransstatQueryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setHuifuId(huifuId);
|
||||
request.setPageNo("1");
|
||||
request.setPageSize("10");
|
||||
|
||||
System.out.println("请求参数: " + JSON.toJSONString(request));
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
|
||||
if ("00000000".equals(respCode)) {
|
||||
System.out.println("*** 查询成功! ***");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
import com.huifu.dg.lightning.factory.Factory;
|
||||
import com.huifu.dg.lightning.biz.client.CommonPayClient;
|
||||
import com.huifu.dg.lightning.models.payment.TradePaymentScanpayQueryRequest;
|
||||
import com.huifu.dg.lightning.utils.BasePay;
|
||||
import com.huifu.dg.lightning.biz.config.MerConfig;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
|
||||
public class TestV4SingleQuery {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
MerConfig merConfig = new MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
BasePay.prodMode = BasePay.MODE_PROD;
|
||||
BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== V4 闪电支付单笔查询测试(生产环境)==========");
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
CommonPayClient client = Factory.Payment.Common();
|
||||
|
||||
TradePaymentScanpayQueryRequest queryRequest = new TradePaymentScanpayQueryRequest();
|
||||
queryRequest.setReqDate("20260626");
|
||||
queryRequest.setReqSeqId(com.huifu.dg.lightning.utils.SequenceTools.getReqSeqId32());
|
||||
queryRequest.setHuifuId(huifuId);
|
||||
queryRequest.setOutOrdId("PAY20260626110000test001");
|
||||
|
||||
System.out.println("查询请求: outOrdId=PAY20260626110000test001");
|
||||
System.out.println();
|
||||
|
||||
Map<String, Object> response = client.query(queryRequest);
|
||||
|
||||
System.out.println("查询响应:");
|
||||
System.out.println(JSON.toJSONString(response, true));
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
System.out.println();
|
||||
System.out.println("resp_code: " + respCode);
|
||||
System.out.println("resp_desc: " + response.getOrDefault("resp_desc", ""));
|
||||
|
||||
if ("00000000".equals(respCode)) {
|
||||
System.out.println("*** 查询成功! ***");
|
||||
} else if ("00000100".equals(respCode)) {
|
||||
System.out.println("*** 交易处理中 ***");
|
||||
} else {
|
||||
System.out.println("*** 查询失败或交易不存在 ***");
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
package cn.novalon.gym.manage.payment;
|
||||
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeTransstatQueryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeBatchtranslogQueryRequest;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class CheckTransstatFields {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("========== V2TradeTransstatQueryRequest 字段 ==========");
|
||||
Field[] fields = V2TradeTransstatQueryRequest.class.getDeclaredFields();
|
||||
for (Field f : fields) {
|
||||
System.out.println(" " + f.getName() + " : " + f.getType().getSimpleName());
|
||||
}
|
||||
|
||||
System.out.println("\n========== V2TradeTransstatQueryRequest 方法 ==========");
|
||||
Method[] methods = V2TradeTransstatQueryRequest.class.getDeclaredMethods();
|
||||
for (Method m : methods) {
|
||||
if (m.getName().startsWith("set") || m.getName().startsWith("get")) {
|
||||
System.out.println(" " + m.getName() + " : " + m.getReturnType().getSimpleName());
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("\n========== V2TradeTransstatQueryRequest 父类字段 ==========");
|
||||
Field[] superFields = V2TradeTransstatQueryRequest.class.getSuperclass().getDeclaredFields();
|
||||
for (Field f : superFields) {
|
||||
System.out.println(" " + f.getName() + " : " + f.getType().getSimpleName());
|
||||
}
|
||||
|
||||
System.out.println("\n========== V2TradeBatchtranslogQueryRequest 字段 ==========");
|
||||
Field[] fields2 = V2TradeBatchtranslogQueryRequest.class.getDeclaredFields();
|
||||
for (Field f : fields2) {
|
||||
System.out.println(" " + f.getName() + " : " + f.getType().getSimpleName());
|
||||
}
|
||||
|
||||
System.out.println("\n========== 测试构造 V2TradeTransstatQueryRequest ==========");
|
||||
V2TradeTransstatQueryRequest req = new V2TradeTransstatQueryRequest();
|
||||
req.setReqDate("20260626");
|
||||
req.setHuifuId("6666000207581039");
|
||||
req.setPageNo("1");
|
||||
req.setPageSize("50");
|
||||
java.util.Map<String, Object> extendInfo = new java.util.HashMap<>();
|
||||
extendInfo.put("begin_date", "20260625");
|
||||
extendInfo.put("end_date", "20260626");
|
||||
extendInfo.put("trade_type", "A_NATIVE");
|
||||
req.setExtendInfo(extendInfo);
|
||||
System.out.println(JSON.toJSONString(req, true));
|
||||
}
|
||||
}
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
package cn.novalon.gym.manage.payment;
|
||||
|
||||
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
||||
import com.huifu.bspay.sdk.opps.core.request.V2TradeCheckFilequeryRequest;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.DateTools;
|
||||
import com.huifu.bspay.sdk.opps.core.utils.SequenceTools;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class TestReconciliation {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcxAwrhZF+izz1gxQKOr4jnC05obIBHbl0DzHOcd4CaaDV7Kv1NRJKi33JhdDsW4JGgu16e5Rtzq1VzU5VWz5EKgGL46maOFwCkngJUTP/LC3JVf/wtJmYCm8xNE8C7GNNIqKzYEvUOEfXqagpVvVrGsQ9FpzFp2rP9hBmHY3yizVyPX/uT9S+af5TRxiaItj3SSJGgloaEMrnKOpb/EH7JwPSS0liAyT/NxPfOyyZHc22AvaAIOE5y+0PMUCKPuIdfpOrej3LVpO1Arc2hSgmdB+YIPSiBVYPXa6AuAmil9mpbtSikQJ7Uu7lX4JyTW4QxQ06rPFKnFWVKkzivAElAgMBAAECggEAJd0AJ37iTlMpDQ90xqe7hvRQxAu256gbQ9nrqLY97g0/KIw6WEZSPakFX6gvdvb/NzKmUyAIEKGLoh6tXdZk6qfOqc/6BeK47nIcBfwT9/zerjNUVvn34w4aHyNINieMMHQ+Id8PUZmqWH+Euz9ilVTosuyEPwUZulLvUQqwXzU5VnwVghURbUhDd+ecBJACWgemRun6d5241PQXNYAdH1k7cETd8GfIi3qclhhJrxi7tu5tq4YGCXQIoz7HCLim7GIvT0M+FRgSw2EOrHnAQNFeQ/vQbP71ttLoTxehL6Se9dfWrV5OI+Y/T7vR2F84Qt0iNbaxyJGir7siKDFIwQKBgQDXDzinx3/TasplM78pR/0CtuuKr1Ch02LOPrTosJ1qf1OohxQThowhOTxMsBlgYSKu9s1QRffUUXEqYXxd2B6lzDKfggwO6U2XxIcxWeNow0xoFfqcXYSg7Ga2sCr9uhdwxIdFQNF7SNBpT8ht4fJrRX6mWY1nHybpyTDQ4xoQNQKBgQC6m+yiOoi5JD3zVSSJq/iq5DJPA5B4aoP+t5u9lp2Q7iVO0QI5ilBlEKGE4VOU0glnXlDTfuqEYooMY85ekl4WGb3AOT0PhLL2i+gO2nlWBzf4HPzB/hibjfyPyniRM03cHkG3HXucL7Sne6FwERcfjEqjUd2cdP1l89PNrq4rMQKBgQCMmjABSWYh8/y1I5rEQ4OAJdVjC3GdC1Xa35ZpVybjvLEWSpHunhW5lvD8dllw8LC7UTI0XDpGPqTM/4VO2YBYB2PFc0Gs8g0/v0ZgFpOeJ6kpl80MM/wFNemFYTIKRoMSv/psZY9PmfBgGcBBTuquBXZjDcNr+yr2yAm5V/DvTQKBgHqRi94KoF8q5N39IKCkqhJlDH5FkxDktYoKw2rFkPzuzuZz9gghRyj6wXxsG9/2DWMt2dzw0czehFoa/CO188KEadPmRKr6uCmkP2nyKhxNZX+8WnB5G2Sg4DD6BjMpBYz8+qDx5ozx8LDJTYI0V4HLPgMD9JGdbgsXGhlREOkhAoGALr6IQOXnviWNAhCdc7rrsaMLMPbLZ1wqzWtQUG1JxDobbpzEP4CW/mvW5pMn58mSBg5qbXhyDI4fFP0CPb98QIz2tGnIzYyFzdKmF5Z1N7X1OF9O+tsSqASoBZzTqB4fr/o4mz0s9JCeriBR2LWjsbsDU13DTLsfQpWbtOnIy70=";
|
||||
String huifuPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuqolFneAH66z3/3gaIYIaRZOIk/UYzdsXIm0RyawYBYAOu/NJ7ul8CRIrRlt5vd98HodW2yPrXA4+VHF3AS9UE4WTDpo9qV5brhqQSr/lAuZtEwMZwUWwgdnGFMkUFd9RvyGXAqY0bsQrcQgQ6zGjZHzlMljogDR3iblG0ak5ssD2TSC2W+1cxu+id+FP6onZXlXizuClTyIRh17m7CbS6rl0P3M96MlTdCzTeBw/Y54CiegBJI2wOrm2Qa6Dg6KRc+YkaJWjuRJVJkwjk8JhSyALno9oEzuDKaAXlsQlxeIhmAy4esRrZGrMV8SG0gwUZIP8lduPjQE95lCqqJ0gQIDAQAB";
|
||||
String sysId = "6666000207581039";
|
||||
String productId = "XLSISV";
|
||||
String huifuId = "6666000207581039";
|
||||
String skillSource = "hfps/1.3.0";
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.config.MerConfig merConfig = new com.huifu.bspay.sdk.opps.core.config.MerConfig();
|
||||
merConfig.setSysId(sysId);
|
||||
merConfig.setProductId(productId);
|
||||
merConfig.setRsaPrivateKey(privateKey);
|
||||
merConfig.setRsaPublicKey(huifuPublicKey);
|
||||
merConfig.setSkillSource(skillSource);
|
||||
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.prodMode = com.huifu.bspay.sdk.opps.core.BasePay.MODE_TEST;
|
||||
com.huifu.bspay.sdk.opps.core.BasePay.initWithMerConfig(merConfig);
|
||||
|
||||
System.out.println("========== 斗拱官方交易对账单查询测试 ==========");
|
||||
System.out.println("环境: 测试环境");
|
||||
System.out.println("商户号: " + huifuId);
|
||||
System.out.println();
|
||||
|
||||
String today = DateTools.getCurrentDateYYYYMMDD();
|
||||
String yesterday = java.time.LocalDate.now().minusDays(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
String dayBeforeYesterday = java.time.LocalDate.now().minusDays(2).format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
String[] testDates = {today, yesterday, dayBeforeYesterday};
|
||||
String[] billTypes = {"TRADE_BILL", "MERGE_BILL"};
|
||||
|
||||
for (String testDate : testDates) {
|
||||
for (String billType : billTypes) {
|
||||
System.out.println("--------------------------------------------------");
|
||||
System.out.println("测试日期: " + testDate + ", 账单类型: " + billType);
|
||||
System.out.println("--------------------------------------------------");
|
||||
try {
|
||||
V2TradeCheckFilequeryRequest request = new V2TradeCheckFilequeryRequest();
|
||||
request.setReqDate(DateTools.getCurrentDateYYYYMMDD());
|
||||
request.setReqSeqId(SequenceTools.getReqSeqId32());
|
||||
request.setHuifuId(huifuId);
|
||||
request.setFileDate(testDate);
|
||||
|
||||
Map<String, Object> extendInfoMap = new HashMap<>();
|
||||
extendInfoMap.put("bill_type", billType);
|
||||
request.setExtendInfo(extendInfoMap);
|
||||
|
||||
System.out.println("请求参数: " + JSON.toJSONString(request));
|
||||
|
||||
Map<String, Object> response = BasePayClient.request(request, false);
|
||||
|
||||
String respCode = String.valueOf(response.getOrDefault("resp_code", ""));
|
||||
String respDesc = String.valueOf(response.getOrDefault("resp_desc", ""));
|
||||
Object fileDetails = response.get("file_details");
|
||||
Object taskDetails = response.get("task_details");
|
||||
|
||||
System.out.println("响应码: " + respCode);
|
||||
System.out.println("响应描述: " + respDesc);
|
||||
|
||||
if (fileDetails != null) {
|
||||
System.out.println("文件明细: " + JSON.toJSONString(fileDetails, true));
|
||||
}
|
||||
if (taskDetails != null) {
|
||||
System.out.println("任务明细: " + JSON.toJSONString(taskDetails, true));
|
||||
}
|
||||
|
||||
if ("00000000".equals(respCode)) {
|
||||
System.out.println("*** 查询成功! ***");
|
||||
if (fileDetails != null && !"null".equals(String.valueOf(fileDetails))) {
|
||||
System.out.println("*** 找到对账单文件! ***");
|
||||
System.out.println("完整响应: " + JSON.toJSONString(response, true));
|
||||
return;
|
||||
}
|
||||
}
|
||||
System.out.println();
|
||||
} catch (Exception e) {
|
||||
System.out.println("调用失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("========== 测试结束 ==========");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user