一个 xml 测试
This commit is contained in:
parent
8de764c731
commit
e8a62c1d4a
6
config.json
Normal file
6
config.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"ip1": "172.1.41.3",
|
||||
"ip2": "172.1.41.139",
|
||||
"port": 8889,
|
||||
"dn": "C=cn,O=CFCA OCA1 SM2,OU=Local RA OCA1,OU=Units,CN=041@N91330108762038374D@杭州信雅达科技有限公司@00000002"
|
||||
}
|
||||
125
src/main/java/com/sample/Test.java
Normal file
125
src/main/java/com/sample/Test.java
Normal file
@ -0,0 +1,125 @@
|
||||
package com.sample;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.sunyard.SydApiException;
|
||||
import racal.sunyard.main.SydApi4j;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
public class Test {
|
||||
|
||||
private static final String odata = "<?xml version=\"1.0\" encoding=\"utf-8\"?><SignData><TradeType name=\"银行账号转账\" authLevel=\"0\">BankAcctTransfer</TradeType><Timestamp>1710469760912</Timestamp><Fields><AcctType>INNERDEBIT</AcctType><PayerSubAcSeq></PayerSubAcSeq><PayerBankAcType>96</PayerBankAcType><PayerAcNo>6229539600100010640</PayerAcNo><PayerAcName>王二类</PayerAcName><PayerCurrency>156</PayerCurrency><PayeeAcNo name=\"收款人账号:\">6217788308301020599</PayeeAcNo><PayeeAcName name=\"收款人名称:\">王二类</PayeeAcName><Amount name=\"转账金额:\">1</Amount><PayeeBankCode>402/402361018886</PayeeBankCode><PayeeBankName>安徽农金</PayeeBankName><ProvinceCode></ProvinceCode><ProvinceName></ProvinceName><CityCode></CityCode><CityName></CityName><UnionDeptId></UnionDeptId><UnionDeptName></UnionDeptName><TransType>0</TransType><Remark></Remark><Fee>0.00</Fee><CRFlag>1</CRFlag><TransTypeFlag>0</TransTypeFlag><TrsRouteType>0</TrsRouteType><AddPayeeBookFlag>1</AddPayeeBookFlag></Fields></SignData>";
|
||||
|
||||
private static String ip1 = null;
|
||||
private static String ip2 = null;
|
||||
private static int port = 0;
|
||||
private static String dn = null;
|
||||
|
||||
|
||||
private static int success = 0;
|
||||
private static int error = 0;
|
||||
|
||||
private static void printInfo(){
|
||||
System.out.println(String.format("调用总数=%d\t成功总数=%d\t失败总数=%d", success+error, success, error));
|
||||
}
|
||||
|
||||
private static void checkOK(){
|
||||
success += 1;
|
||||
printInfo();
|
||||
}
|
||||
|
||||
private static void checkError(){
|
||||
error += 1;
|
||||
printInfo();
|
||||
}
|
||||
|
||||
|
||||
public static void case1(){
|
||||
SydApi4j.SYD_Set_Parameter_HA(ip1, ip2, port, 3000);
|
||||
SydApi4j api = (SydApi4j) new SydApi4j();
|
||||
try {
|
||||
// 获取签名证书
|
||||
String cert1 = api.getCertByDn(dn,0);
|
||||
// 获取加密证书
|
||||
String cert2 = api.getCertByDn(dn,0);
|
||||
String odata = "<?xml version=\"1.0\" encoding=\"utf-8\"?><SignData><TradeType name=\"银行账号转账\" authLevel=\"0\">BankAcctTransfer</TradeType><Timestamp>1710469760912</Timestamp><Fields><AcctType>INNERDEBIT</AcctType><PayerSubAcSeq></PayerSubAcSeq><PayerBankAcType>96</PayerBankAcType><PayerAcNo>6229539600100010640</PayerAcNo><PayerAcName>王二类</PayerAcName><PayerCurrency>156</PayerCurrency><PayeeAcNo name=\"收款人账号:\">6217788308301020599</PayeeAcNo><PayeeAcName name=\"收款人名称:\">王二类</PayeeAcName><Amount name=\"转账金额:\">1</Amount><PayeeBankCode>402/402361018886</PayeeBankCode><PayeeBankName>安徽农金</PayeeBankName><ProvinceCode></ProvinceCode><ProvinceName></ProvinceName><CityCode></CityCode><CityName></CityName><UnionDeptId></UnionDeptId><UnionDeptName></UnionDeptName><TransType>0</TransType><Remark></Remark><Fee>0.00</Fee><CRFlag>1</CRFlag><TransTypeFlag>0</TransTypeFlag><TrsRouteType>0</TrsRouteType><AddPayeeBookFlag>1</AddPayeeBookFlag></Fields></SignData>";
|
||||
|
||||
byte[] nakedSign = api.SYD_NakedSign(dn, odata.getBytes(), null);
|
||||
boolean nakedVerify2 = api.SYD_NakedVerifyAll4NX(cert1,4, odata.getBytes(), nakedSign, dn);
|
||||
|
||||
api.importCert(cert1.getBytes(), null);
|
||||
api.importCert(cert2.getBytes(), null);
|
||||
System.out.println("验签结果:" + nakedVerify2 );
|
||||
} catch (SydApiException e) {
|
||||
throw e;
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new RuntimeException(e);
|
||||
} finally {
|
||||
api.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
public static void case2(){
|
||||
SydApi4j.SYD_Set_Parameter_HA(ip1, ip2, port, 3000);
|
||||
SydApi4j api = (SydApi4j) new SydApi4j();
|
||||
try {
|
||||
String sde = api.detachedSignAll(4, odata.getBytes(), dn);
|
||||
System.out.println("SM2detach签名:"+sde);
|
||||
boolean bde = api.detachedVerifyAll(4, odata.getBytes(), sde);
|
||||
System.out.println("SM2detach验签:"+bde);
|
||||
} finally {
|
||||
api.disconnect();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("载入配置文件 ./config.json");
|
||||
String workDir = System.getProperty("user.dir");
|
||||
Path filePath = Paths.get(workDir,"config.json");
|
||||
String configStr = FileUtil.readString(filePath.toFile(), StandardCharsets.UTF_8);
|
||||
JSONObject config = JSONUtil.parseObj(configStr);
|
||||
ip1 = config.getStr("ip1");
|
||||
ip2 = config.getStr("ip2");
|
||||
port = config.getInt("port");
|
||||
dn = config.getStr("dn");
|
||||
System.out.println("ip1=" + ip1);
|
||||
System.out.println("ip2=" + ip2);
|
||||
System.out.println("port=" + port);
|
||||
System.out.println("dn=" + dn);
|
||||
System.out.println("载入配置完成");
|
||||
|
||||
|
||||
|
||||
System.out.println("开始持续交易, HA 模式,短链接模式");
|
||||
while (true) {
|
||||
try {
|
||||
case1();
|
||||
checkOK();
|
||||
Thread.sleep(3000);
|
||||
|
||||
// case2();
|
||||
// checkOK();
|
||||
// Thread.sleep(3000);
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
System.err.println("发生错误");
|
||||
e.printStackTrace();
|
||||
checkError();
|
||||
try {
|
||||
Thread.sleep(3000);
|
||||
} catch (InterruptedException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user