Commit 8d37614c authored by jiaxin.meng's avatar jiaxin.meng

初始化代码

parent ea402d61
Pipeline #335 failed with stages
File added
PDSMK V200 0 0 7 405
20200323094703100001 0 0 0000 100 110930038910502 20200323094939 20200323
20200323172632100001 0 0 0000 1 6225220113999368 20200323173050 20200323
20200323183651100001 0 0 0000 1 6227001261500331855 20200323183947 20200323
20200323183728100001 0 0 0000 1 6227001261500331855 20200323184017 20200323
20200323183756100002 0 0 0000 1 6227001261500331855 20200323184306 20200323
20200323184216100001 0 0 0000 1 6227001261500331855 20200323184507 20200323
20200323190122100002 0 0 0000 300 110930038910502 20200323190355 20200323
PDSMK V200 7 45000704 5 1004680
200604000004870-0001591151782882 0 1 0000 15000000 623660****4600 20200603103622 20200603 xxxx410421197808247033
200604000004870-0001591165575398 0 1 0000 100 6214837900292605 20200603142615 20200603
200604000004870-0001591165636026 0 0 0000 80 6217008340012565987 20200603142718 20200603
200604000004870-0001591166001943 0 1 0000 600 6217008340012565987 20200603143322 20200603
200604000004870-0001591166023777 0 0 0000 1000000 1000003360 20200603143343 20200603 410421197808247033
200604000004870-0001591166036014 2 1 0000 2 3228481200290317809 20200603143440 20200603
200604000004870-0001591166036014 3 1 0000 2 322848461200290317809 20200603143440 20200603
200604000004870-0001591166053169 1 0 0000 2000 6228488151553552885 20200603143440 20200603
200604000004870-0001591166053169 2 0 0000 2000 6228488151553552885 20200603143440 20200603
200604000004870-0001591167691228 0 1 0000 15000000 623660****4600 20200603150131 20200603 xxxx410421197808247033
LEDGER_7118764680402017_0_F200603150519 0 0 0000 600 201303000000000130442 20200603150520 20200603 200604000004870-0001591167921479
200604000004870-0001591167921479 0 1 0000 15000000 623660****4600 20200603150521 20200603 xxxx410421197808247033
PDSMK V200 1 1 1 1
200604000005825-0001596081303030 0 1 0000 1 6228480395898397272 20200730115506 20200730 xxxx 100011
200604000005825-0001596081336970 0 0 0000 1 6228480395898397272 20200730115537 20200730 xxxx 100009
PDSMK V200 1 600 0 0
LEDGER_7118775417820386_0_S200603154536 0 1 0000 600 20180600000000149354 20200603154537 20200603 200604000004870-0001591170338342
PDSMK V200 0 0 2 6000
200604000007293-0001610676510047 0 0 0000 3000 6225487875454545454 20210115100828 20210115 410421197808247033 0
200604000007293-0001610676572608 0 0 0000 3000 6225487875454545454 20210115100931 20210115 410421197808247033 150
PDSMK V200 1 700 0 0
LEDGER_7118364443126210_12345677_S200602141407 0 1 0000 700 20200100000000165088 20200602141408 20200602 200604000008296060200000200301801 100112 200604000008296
PDSMK V200 1 15000000 2 100600
200604000011060-0001591322512142 0 0 0000 100000 20180100000000143162 20200605100148 20200605 100400
LEDGER_7119546096024136_0_F200605153610 0 0 0000 600 20190500000000159622 20200605153612 20200605 200604000011060-0001591342570065 100111 200604000006840
200604000011060-0001591342570065 0 1 0000 15000000 623660****4600 20200605153612 20200605 xxxx410421197808247033 100011
File added
This diff is collapsed.
-----BEGIN CERTIFICATE-----
MIICYTCCAcoCCQDWf9aM2BM4vTANBgkqhkiG9w0BAQsFADB1MQswCQYDVQQGEwJD
TjERMA8GA1UECAwIU2kgQ2h1YW4xETAPBgNVBAcMCENoZW5nIER1MQ0wCwYDVQQK
DARqY3p5MQ0wCwYDVQQLDARqY3p5MQ0wCwYDVQQDDARqY3p5MRMwEQYJKoZIhvcN
AQkBFgRqY3p5MB4XDTIyMDQxODAyNDU0M1oXDTMyMDQxNTAyNDU0M1owdTELMAkG
A1UEBhMCQ04xETAPBgNVBAgMCFNpIENodWFuMREwDwYDVQQHDAhDaGVuZyBEdTEN
MAsGA1UECgwEamN6eTENMAsGA1UECwwEamN6eTENMAsGA1UEAwwEamN6eTETMBEG
CSqGSIb3DQEJARYEamN6eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvkdz
CmiR0qmg0r6/7vxMStWLadIouJQj6iW53Y4ZJ0omM1l12jfNvwbcLhg/fi0jow54
yaG0l9thQv6GN2AO5QopSeE+rf3JWsV9ATVrIhC5UkNBTUFIy00XbLFENMrIq/DO
fTuaEu2AI1vBIR8DPqVN66c9USPSiqM9cNfjf+UCAwEAATANBgkqhkiG9w0BAQsF
AAOBgQAnQgWuM/ijxAmG4XrdG8JAfREf0NKwp/eXO7natY3jwAo0Y4Ya8drAXNWP
rD8HZUVY2FCcjurL+NtWkGp8PAWOMkvXkRSRXnSb0vUMWZSpP8PEX+J8l1gnzzom
kq7GBlvzjK0SvInZcGdkwfly439Ub3sRqmSejB+G2T4+Oz3nfw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIBXzCCAQYCCQDoBuiiz5uPmDAKBggqgRzPVQGDdTA6MQswCQYDVQQGEwJDTjEL
MAkGA1UECAwCR0QxCzAJBgNVBAcMAkdaMREwDwYDVQQKDAhBTExJTlBBWTAeFw0y
MDAyMjgxMDA5MDBaFw0zMDAyMjUxMDA5MDBaMDYxCzAJBgNVBAYTAkNOMQswCQYD
VQQIDAJHRDELMAkGA1UEBwwCR1oxDTALBgNVBAoMBEFJUEcwWTATBgcqhkjOPQIB
BggqgRzPVQGCLQNCAARJ3O4g5bT2ZV8Zs/eONxLaM4TTru6EmKXMz/OAHAPG08IN
sZevr4MxbmfVQI8Vd+cPFG/spgySBJBgudsXB+u/MAoGCCqBHM9VAYN1A0cAMEQC
IEPF4AIK8K0jQRFZ1l/LQTM0NuXmNYRUSR9/TUIGxjdrAiBYnBHicreKjTWhBKR7
t1Ipqr7UJfZH5mEfOQWRvWXM5g==
-----END CERTIFICATE-----
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.allinpay.demo</groupId>
<artifactId>tlt</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>tltlin</name>
<description>
通联通对接demo, 基于JDK 1.7
</description>
<properties>
</properties>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.11.1</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.60</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-ext-jdk15on</artifactId>
<version>1.60</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.60</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<!--maven打包相关配置-->
<pluginRepositories>
<pluginRepository>
<id>maven-public</id>
<url>http://nexus.qiyumotor.com/repository/maven-public/</url>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>maven-public</id>
<url>http://nexus.qiyumotor.com/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>maven-releases</id>
<url>http://nexus.qiyumotor.com/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<url>http://nexus.qiyumotor.com/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.allinpay.demo</groupId>
<artifactId>tlt</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>tltlin</name>
<description>
通联通对接demo, 基于JDK 1.7
</description>
<properties>
</properties>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.9</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.52</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-ext-jdk15on</artifactId>
<version>1.52</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.52</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.60<ersion>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-ext-jdk15on</artifactId>
<version>1.60<ersion>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.60<ersion>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
//运行demo时,请先看com.allinpay.demo.util包中的DemoConfig配置文件说明,
入网商户对接通联通都必须分配唯一的系统对接参数,获取系统对接参数在配置文件的相应地方修改
快捷协议支付参考例子目录 为 qpay包内,其中具体接口看类名的交易代码;
对账文件下载参考例子在filedownload包内;
package com.allinpay.demo;
/**
* @Description 程序异常 参数异常等等
* @Author meixf@allinpay.com
* @Date 2018年5月23日
**/
public class AIPGException extends Exception{
private static final long serialVersionUID = 1L;
private String errcode;
public AIPGException() {
super();
}
public AIPGException(String errmsg) {
super(errmsg);
}
public AIPGException(String errcode, String errmsg) {
super(errmsg);
this.errcode = errcode;
}
public AIPGException(int errcode, String msg) {
super(msg);
this.errcode = String.valueOf(errcode);
}
public AIPGException(String msg, Exception ex) {
super(msg, ex);
}
public AIPGException(Throwable rootCause) {
super(rootCause);
}
public String getErrcode() {
return errcode;
}
public void setErrcode(String errcode) {
this.errcode = errcode;
}
}
package com.allinpay.demo;
/**
* 参数的配置,入网商户对接通联通的商户必须找相应的分公司技术颁发唯一的系统对接参数
* 如,商户号,用户名,密码,私钥证书
**/
public class DemoConfig {
public static boolean needProxy = false;
public static final String httpProxyIp = "";
public static final int httpProxyPort = 0;
// public static String merchantid = "200604000004488";//系统对接的商户号,找通联的客户经理分配
// public static String url = "https://tlt-test.allinpay.com/aipg/ProcessServlet";//对接的测试接口地址 地址
// public static String urlFileGet = "https://tlt-test.allinpay.com/aipg/GetConFile.do?SETTDAY=@xxx&REQTIME=@yyy&MERID=@zzz&SIGN=@sss&CONTFEE=1";//简单对账文件的接口地址
// public static String username = "20060400000448804"; //用户名 ,找通联的客户经理分配
// public static String userpass = "111111"; //用户密码,找通联的客户经理分配
// public static String pathpfx = "config/20060400000448804.p12"; //商户私钥路径,找通联的客户经理分配
// public static String pfxpass = "111111"; //私钥密码,找通联的客户经理分配
// public static String pathcer = "config/allinpay-pds.cer"; //通联公钥
public static String merchantid = "200651000010406";//系统对接的商户号,找通联的客户经理分配
public static String url = "https://tlt.allinpay.com/aipg/ProcessServlet";//对接的测试接口地址 地址
public static String urlFileGet = "https://tlt.allinpay.com/aipg/GetConFile.do?SETTDAY=@xxx&REQTIME=@yyy&MERID=@zzz&SIGN=@sss&CONTFEE=1";//简单对账文件的接口地址
public static String username = "20065100001040604"; //用户名 ,找通联的客户经理分配
public static String userpass = "rytz2020!"; //用户密码,找通联的客户经理分配
public static String pathpfx = "src/main/resources/20065100001040604.p12"; //商户私钥路径,找通联的客户经理分配
public static String pfxpass = "jczy"; //私钥密码,找通联的客户经理分配
public static String pathcer = "src/main/resources/allinpay-pds.cer"; //通联公钥
}
package com.allinpay.demo;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
public class Test {
public static void main(String args[]) {
boolean s = false;
String t ="KARY (HONG KONG) SUPPLY CHAIN MANAGEMENT CO., LIMITED";
/*String rrString="<?xml version=\"1.0\" encoding=\"GBK\"?><AIPG><INFO><TRX_CODE>100011</TRX_CODE><VERSION>04</VERSION><DATA_TYPE>2</DATA_TYPE><LEVEL>5</LEVEL><USER_NAME>20060400000557204</USER_NAME><USER_PASS>******</USER_PASS><REQ_SN>200604000005572-1526461966649</REQ_SN><SIGNED_MSG>4dafb2bf58a426066fd310880ac25402e68817c5cb4b8abd293361cc6586ed50109b7a28df89fd977e2ffa583ea11d8b5c028bc13f860fb099b326c41b5b3c34654108e894e8642df2f4f7cbc2b4a0cf95f7647ec5883d6ef9eb37775cf2e8420ee1fb1e13dc0ff8bac40d620d20fe482742f37fb1c9b32876f4e073e8352f86</SIGNED_MSG></INFO><TRANS><BUSINESS_CODE>19900</BUSINESS_CODE><MERCHANT_ID>200604000005572</MERCHANT_ID><SUBMIT_TIME>20181121094046</SUBMIT_TIME><BANK_CODE>0103</BANK_CODE><ACCOUNT_NO>62284806889866056756</ACCOUNT_NO><ACCOUNT_NAME>???</ACCOUNT_NAME><ACCOUNT_PROP>0</ACCOUNT_PROP><AMOUNT>1000</AMOUNT><CURRENCY></CURRENCY><TEL>13037022612</TEL><CUST_USERID></CUST_USERID><REMARK>test</REMARK></TRANS></AIPG>";
try {
bString=new String("土肥圆".getBytes("UTF-8"),"GBK");
s=rrString.equals(new String(rrString.getBytes("GBK"), "GBK"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
String t1 ="3046022100ddfa0feb25717e482ba2cf513b5e2f1da3a0d873e26e8a298c980439beb319ee02210082cec6791bc53e95d08b360b6406de0def04f33af706beb05b0fa34b9ed32d47";
/*try {
t1 = URLDecoder.decode("%C7%A9%D4%BC%B3%C9%B9%A6", "GBK");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
System.out.println(t1.length());
/*System.out.println(bString.length());*/
}}
package com.allinpay.demo.trx;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.codec.binary.Base64InputStream;
import org.apache.commons.io.IOUtils;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.netbank.NetBankReq;
import com.allinpay.demo.xstruct.netbank.NetBankRsp;
import sun.misc.BASE64Decoder;
public class BANK200006 {
public static void main(String[] args) {
InfoReq infoReq = DemoUtil.makeReq("200006");
NetBankReq queryReq = new NetBankReq();
/*queryReq.setBANKCODE("303");*/
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(queryReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
/*if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}*/
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
NetBankRsp ret = (NetBankRsp) rsp.trxObj();
System.out.println(ret.getCONTENT());
try {
FileOutputStream sos=null;
sos=new FileOutputStream(new File("bills/zhifu.gz"));
Base64InputStream b64is=new Base64InputStream(IOUtils.toInputStream(ret.getCONTENT()),false);
IOUtils.copy(b64is, sos);
IOUtils.closeQuietly(b64is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.cardbin.QCardBinReq;
import com.allinpay.demo.xstruct.cardbin.QCardBinRsp;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
/**
* Bin200007 根据卡Bin获取银行卡信息
* @author Mengjiaxin
* @date 2022/4/18 下午1:14
*/
public class Bin200007 {
/**
* 根据银行卡号获得银行卡信息
* @param acctNo
* @return
*/
public static QCardBinRsp getCardBin(String acctNo) {
InfoReq infoReq = DemoUtil.makeReq("200007");
QCardBinReq queryReq = new QCardBinReq();
queryReq.setACCTNO(acctNo);
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(queryReq);
try {
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url + "?MERCHANT_ID=" + DemoConfig.merchantid + "&REQ_SN=" + infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if (!DemoUtil.verifyXml(respText)) {
System.out.println("====================================================>验签失败");
return null;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if ("0000".equals(infoRsp.getRET_CODE())) {
QCardBinRsp ret = (QCardBinRsp) rsp.trxObj();
System.out.println(ret.getBANKCODE());
System.out.println(ret.getISSNAME());
return ret;
}
} catch (AIPGException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
Bin200007.getCardBin("6230200202494980");
}
}
package com.allinpay.demo.trx;
import java.util.ArrayList;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.LedgerDtl;
import com.allinpay.demo.xstruct.trans.Ledgers;
import com.allinpay.demo.xstruct.trans.breq.Body;
import com.allinpay.demo.xstruct.trans.breq.Trans_Detail;
import com.allinpay.demo.xstruct.trans.breq.Trans_Sum;
import com.allinpay.demo.xstruct.trans.brsp.Ret_Detail;
/**
* @Description 批量代收
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx100001 {
public static void main(String args[]){
InfoReq inforeq = DemoUtil.makeReq("100001");
Body reqBody = new Body();
Trans_Sum trans_sum = new Trans_Sum();
trans_sum.setBUSINESS_CODE("10600");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans_sum.setMERCHANT_ID(DemoConfig.merchantid) ;
trans_sum.setTOTAL_ITEM("3") ;
trans_sum.setTOTAL_SUM("6") ;
trans_sum.setNOTIFYURL("http://dongerpil");
reqBody.setTRANS_SUM(trans_sum);
LedgerDtl dtl1 = new LedgerDtl();
dtl1.setMERCHANT_ID("200604000000445");
dtl1.setSN("9");
dtl1.setTYPE("1");
Ledgers ledgers = new Ledgers();
ledgers.addTrx(dtl1);
/*trans_sum.setLEDGERS(ledgers);*/
List<Trans_Detail> transList = new ArrayList<Trans_Detail>();
Trans_Detail trans_detail = new Trans_Detail() ;
trans_detail.setSN("1") ;
trans_detail.setACCOUNT_NAME("张三300800") ;
trans_detail.setACCOUNT_PROP("0") ;
trans_detail.setACCOUNT_NO("3228481200290317805") ;
trans_detail.setBANK_CODE("0103") ;
trans_detail.setAMOUNT("2") ;
trans_detail.setCURRENCY("CNY");
transList.add(trans_detail) ;
Trans_Detail trans_detail2 = new Trans_Detail() ;
trans_detail2.setSN("2") ;
trans_detail2.setACCOUNT_NAME("莉丝000000") ;
trans_detail2.setACCOUNT_NO("3228481200290317809") ;
trans_detail2.setBANK_CODE("0103") ;
trans_detail2.setAMOUNT("2") ;
trans_detail2.setCURRENCY("CNY");
transList.add(trans_detail2);
reqBody.setDetails(transList);
Trans_Detail trans_detail3 = new Trans_Detail() ;
trans_detail3.setSN("3") ;
trans_detail3.setACCOUNT_NAME("张000000") ;
trans_detail3.setACCOUNT_NO("322848461200290317802") ;
trans_detail3.setBANK_CODE("0103") ;
trans_detail3.setAMOUNT("2") ;
trans_detail3.setCURRENCY("CNY");
transList.add(trans_detail3);
reqBody.setDetails(transList);
AipgReq req = new AipgReq();
req.setINFO(inforeq);
req.addTrx(reqBody);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+inforeq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, DemoConfig.url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
com.allinpay.demo.xstruct.trans.brsp.Body rspBody = (com.allinpay.demo.xstruct.trans.brsp.Body)rsp.trxObj();
@SuppressWarnings("unchecked")
List<Ret_Detail> rspList = rspBody.getDetails();
for(Ret_Detail rd : rspList){
System.out.println(rd.getSN());
System.out.println(rd.getRET_CODE());
System.out.println(rd.getERR_MSG());
}
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import java.util.ArrayList;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.breq.Body;
import com.allinpay.demo.xstruct.trans.breq.Trans_Detail;
import com.allinpay.demo.xstruct.trans.breq.Trans_Sum;
import com.allinpay.demo.xstruct.trans.brsp.Ret_Detail;
/**
* @Description 批量代付
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx100002 {
public static void main(String args[]){
InfoReq inforeq = DemoUtil.makeReq("100002");
Body reqBody = new Body();
Trans_Sum trans_sum = new Trans_Sum();
trans_sum.setBUSINESS_CODE("09900");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans_sum.setMERCHANT_ID(DemoConfig.merchantid) ;
trans_sum.setTOTAL_ITEM("2") ;
trans_sum.setTOTAL_SUM("4000") ;
reqBody.setTRANS_SUM(trans_sum);
List<Trans_Detail> transList = new ArrayList<Trans_Detail>();
Trans_Detail trans_detail = new Trans_Detail() ;
trans_detail.setSN("1") ;
trans_detail.setACCOUNT_NAME("测试000000") ;
trans_detail.setACCOUNT_PROP("0") ;
trans_detail.setACCOUNT_NO("62284881515537552886") ;
trans_detail.setBANK_CODE("0103") ;
trans_detail.setAMOUNT("2000") ;
trans_detail.setCURRENCY("CNY");
trans_detail.setTEL("13226665872");
/*trans_detail.setNOTIFYURL("https://piliang1");*/
transList.add(trans_detail) ;
Trans_Detail trans_detail2 = new Trans_Detail() ;
trans_detail2.setSN("2") ;
trans_detail2.setACCOUNT_NAME("测试000000") ;
trans_detail2.setACCOUNT_NO("6228488181553552885") ;
trans_detail2.setBANK_CODE("0103") ;
trans_detail2.setAMOUNT("2000") ;
trans_detail2.setCURRENCY("CNY");
trans_detail2.setNOTIFYURL("https://piliang2");
transList.add(trans_detail2);
reqBody.setDetails(transList);
AipgReq req = new AipgReq();
req.setINFO(inforeq);
req.addTrx(reqBody);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+inforeq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
com.allinpay.demo.xstruct.trans.brsp.Body rspBody = (com.allinpay.demo.xstruct.trans.brsp.Body)rsp.trxObj();
@SuppressWarnings("unchecked")
List<Ret_Detail> rspList = rspBody.getDetails();
for(Ret_Detail rd : rspList){
System.out.println(rd.getSN());
System.out.println(rd.getRET_CODE());
System.out.println(rd.getERR_MSG());
}
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import java.util.ArrayList;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.LedgerDtl;
import com.allinpay.demo.xstruct.trans.Ledgers;
import com.allinpay.demo.xstruct.trans.breq.Body;
import com.allinpay.demo.xstruct.trans.breq.Trans_Detail;
import com.allinpay.demo.xstruct.trans.breq.Trans_Sum;
import com.allinpay.demo.xstruct.trans.brsp.Ret_Detail;
/**
* @Description 批量代收
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx1000025 {
public static void main(String args[]){
InfoReq inforeq = DemoUtil.makeReq("100015");
Body reqBody = new Body();
Trans_Sum trans_sum = new Trans_Sum();
trans_sum.setBUSINESS_CODE("10600");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans_sum.setMERCHANT_ID(DemoConfig.merchantid) ;
trans_sum.setTOTAL_ITEM("3") ;
trans_sum.setTOTAL_SUM("6") ;
trans_sum.setNOTIFYURL("http://dongerpil");
reqBody.setTRANS_SUM(trans_sum);
LedgerDtl dtl1 = new LedgerDtl();
dtl1.setMERCHANT_ID("200604000000445");
dtl1.setSN("9");
dtl1.setTYPE("1");
Ledgers ledgers = new Ledgers();
ledgers.addTrx(dtl1);
/*trans_sum.setLEDGERS(ledgers);*/
List<Trans_Detail> transList = new ArrayList<Trans_Detail>();
Trans_Detail trans_detail = new Trans_Detail() ;
trans_detail.setSN("1") ;
trans_detail.setACCOUNT_NAME("张三300800") ;
trans_detail.setACCOUNT_PROP("0") ;
trans_detail.setACCOUNT_NO("3228481200290317805") ;
trans_detail.setID("4542124545454544");
trans_detail.setBANK_CODE("0103") ;
trans_detail.setAMOUNT("2") ;
trans_detail.setCURRENCY("CNY");
transList.add(trans_detail) ;
Trans_Detail trans_detail2 = new Trans_Detail() ;
trans_detail2.setSN("2") ;
trans_detail2.setACCOUNT_NAME("莉丝000000") ;
trans_detail2.setID("4542124545454544");
trans_detail2.setACCOUNT_NO("3228481200290317809") ;
trans_detail2.setBANK_CODE("0103") ;
trans_detail2.setAMOUNT("2") ;
trans_detail2.setCURRENCY("CNY");
transList.add(trans_detail2);
reqBody.setDetails(transList);
Trans_Detail trans_detail3 = new Trans_Detail() ;
trans_detail3.setSN("3") ;
trans_detail3.setACCOUNT_NAME("张000000") ;
trans_detail3.setID("4542124545454544");
trans_detail3.setACCOUNT_NO("322848461200290317809") ;
trans_detail3.setBANK_CODE("0103") ;
trans_detail3.setAMOUNT("2") ;
trans_detail3.setCURRENCY("CNY");
transList.add(trans_detail3);
reqBody.setDetails(transList);
AipgReq req = new AipgReq();
req.setINFO(inforeq);
req.addTrx(reqBody);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+inforeq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, DemoConfig.url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
com.allinpay.demo.xstruct.trans.brsp.Body rspBody = (com.allinpay.demo.xstruct.trans.brsp.Body)rsp.trxObj();
@SuppressWarnings("unchecked")
List<Ret_Detail> rspList = rspBody.getDetails();
for(Ret_Detail rd : rspList){
System.out.println(rd.getSN());
System.out.println(rd.getRET_CODE());
System.out.println(rd.getERR_MSG());
}
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.LedgerDtl;
import com.allinpay.demo.xstruct.trans.Ledgers;
import com.allinpay.demo.xstruct.trans.TransExt;
import com.allinpay.demo.xstruct.trans.TransRet;
import com.allinpay.demo.xstruct.transfer.Transfer;
/**
* @Description 单笔实时代收
* @Author linwx@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx100007 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100007");
Transfer trans = new Transfer();
trans.setBUSINESS_CODE("09900");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans.setMERCHANT_ID(DemoConfig.merchantid);
trans.setSUBMIT_TIME(DemoUtil.getNow());
trans.setACCOUNT_NAME("徐");
trans.setFROM_ACCOUNT_NO("6222031001002322847");
trans.setID("320684199112318714");
trans.setTEL("13918066770");
trans.setFROM_AMOUNT("10000");
/*trans.setFROM_BANK_CODE("102");*/
trans.setTO_ACCOUNT_NO("6225780603611267");
trans.setSUMMARY("test123");
trans.setREMARK("test456");
/*trans.setFROM_BANK_CODE("103");*/
trans.setAMOUNT("10000");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(trans);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
System.out.println(ret.getSETTLE_DAY());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.AESUtil;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.LedgerDtl;
import com.allinpay.demo.xstruct.trans.Ledgers;
import com.allinpay.demo.xstruct.trans.TransExt;
import com.allinpay.demo.xstruct.trans.TransRet;
/**
* @Description 单笔实时代收
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx100011 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100011");
TransExt trans = new TransExt();
trans.setBUSINESS_CODE("10600");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans.setMERCHANT_ID(DemoConfig.merchantid);
trans.setSUBMIT_TIME(DemoUtil.getNow());
trans.setACCOUNT_NAME("林000000");
trans.setACCOUNT_NO("622700034730729257");
trans.setACCOUNT_PROP("0");
trans.setAMOUNT("70000");
trans.setBANK_CODE("0102");
trans.setCURRENCY("CNY");
/*trans.setREMARK("333");*/
trans.setID_TYPE("5");
trans.setID("4545454321215454");
trans.setSUMMARY("摘要");
trans.setCUST_USERID("xxxx分账");
trans.setTEL("13226665872");
trans.setNOTIFYURL("https://baidu");
AipgReq req = new AipgReq();
LedgerDtl dtl1 = new LedgerDtl();
dtl1.setAMOUNT("9000");
dtl1.setMERCHANT_ID("200604000006167");
dtl1.setSN("0");
dtl1.setTYPE("0");
Ledgers ledgers = new Ledgers();
ledgers.addTrx(dtl1);
req.setINFO(infoReq);
req.addTrx(trans);
/*req.addTrx(ledgers);*/
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
/*try {
signedXml=AESUtil.encrptWithBase64(signedXml, "eYizakQ78DlXHc2mBEhNVpAp8fSlAx8j");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
/* respText=AESUtil.decryptWithBase64(respText, "eYizakQ78DlXHc2mBEhNVpAp8fSlAx8j");*/
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
System.out.println(ret.getSETTLE_DAY());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.TransExt;
import com.allinpay.demo.xstruct.trans.TransRet;
/**
* @Description 单笔实时代付
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx100014 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100014");
TransExt trans = new TransExt();
trans.setBUSINESS_CODE("09900");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans.setMERCHANT_ID(DemoConfig.merchantid);
trans.setSUBMIT_TIME(DemoUtil.getNow());
trans.setACCOUNT_NAME("林维雄");
trans.setACCOUNT_NO("6225487875454545454");
trans.setACCOUNT_PROP("0");
trans.setAMOUNT("3000");
trans.setBANK_CODE("0105");
trans.setCURRENCY("CNY");
trans.setTEL("13226665872");
trans.setID_TYPE("0");
trans.setID("45454545445211");
trans.setCUST_USERID("410421197808247033");
trans.setSUMMARY("摘要");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(trans);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
System.out.println(ret.getSETTLE_DAY());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.LedgerDtl;
import com.allinpay.demo.xstruct.trans.Ledgers;
import com.allinpay.demo.xstruct.trans.TransExt;
import com.allinpay.demo.xstruct.trans.TransRet;
/**
* @Description 单笔实时代收
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx100017 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100018");
TransExt trans = new TransExt();
trans.setBUSINESS_CODE("10600");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans.setMERCHANT_ID(DemoConfig.merchantid);
trans.setSUBMIT_TIME(DemoUtil.getNow());
trans.setACCOUNT_NAME("白十三000000");
trans.setACCOUNT_NO("62366044455454600");
trans.setACCOUNT_PROP("0");
trans.setAMOUNT("15000000");
trans.setBANK_CODE("0102");
trans.setBANK_NAME("zhangsan");
trans.setCURRENCY("CNY");
/*trans.setREMARK("333");*/
trans.setID_TYPE("0");
trans.setID("87874545454");
trans.setTEL("787878787");
trans.setSUMMARY("摘要");
trans.setCUST_USERID("xxxx");
trans.setTEL("13226665872");
trans.setNOTIFYURL("https://baidu");
AipgReq req = new AipgReq();
LedgerDtl dtl1 = new LedgerDtl();
dtl1.setAMOUNT("600");
dtl1.setMERCHANT_ID("200604000006840");
dtl1.setSN("0");
dtl1.setTYPE("0");
Ledgers ledgers = new Ledgers();
ledgers.addTrx(dtl1);
req.setINFO(infoReq);
req.addTrx(trans);
/* req.addTrx(ledgers);*/
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
System.out.println(ret.getSETTLE_DAY());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.LedgerDtl;
import com.allinpay.demo.xstruct.trans.Ledgers;
import com.allinpay.demo.xstruct.trans.TransExt;
import com.allinpay.demo.xstruct.trans.TransRet;
/**
* @Description 单笔实时代收
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx100018 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100017");
TransExt trans = new TransExt();
trans.setBUSINESS_CODE("10600");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans.setMERCHANT_ID(DemoConfig.merchantid);
trans.setSUBMIT_TIME(DemoUtil.getNow());
trans.setACCOUNT_NAME("白十三000000");
trans.setACCOUNT_NO("62366044455454600");
trans.setACCOUNT_PROP("0");
trans.setAMOUNT("15000000");
trans.setBANK_CODE("0102");
trans.setBANK_NAME("zhangsan");
trans.setCURRENCY("CNY");
/*trans.setREMARK("333");*/
trans.setID_TYPE("0");
trans.setID("87874545454");
trans.setTEL("787878787");
trans.setSUMMARY("摘要");
trans.setCUST_USERID("xxxx");
trans.setTEL("13226665872");
trans.setNOTIFYURL("https://baidu");
AipgReq req = new AipgReq();
LedgerDtl dtl1 = new LedgerDtl();
dtl1.setAMOUNT("600");
dtl1.setMERCHANT_ID("200604000006840");
dtl1.setSN("0");
dtl1.setTYPE("0");
Ledgers ledgers = new Ledgers();
ledgers.addTrx(dtl1);
req.setINFO(infoReq);
req.addTrx(trans);
/* req.addTrx(ledgers);*/
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
System.out.println(ret.getSETTLE_DAY());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.qry.QTDetail;
import com.allinpay.demo.xstruct.trans.qry.QTransRsp;
import com.allinpay.demo.xstruct.trans.qry.TransQueryReq;
/**
* @Description 交易查询
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx200004 {
public static void main(String[] args) {
InfoReq infoReq = DemoUtil.makeReq("200004");
TransQueryReq queryReq = new TransQueryReq();
queryReq.setMERCHANT_ID(DemoConfig.merchantid);
queryReq.setQUERY_SN("200604000007293-0001608794847850");///查询交易的文件名
/*queryReq.setSTART_DAY("");
queryReq.setEND_DAY("");*/
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(queryReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
QTransRsp ret = (QTransRsp) rsp.trxObj();
@SuppressWarnings("unchecked")
List<QTDetail> list = ret.getDetails();
for(QTDetail dt : list){
System.out.println(dt.getRET_CODE());
System.out.println(dt.getERR_MSG());
}
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.Refund;
import com.allinpay.demo.xstruct.trans.TransRet;
import com.sun.jndi.url.iiopname.iiopnameURLContextFactory;
/**
* @Description 通用退款
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class TranxRefund {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("REFUND");
Refund refund = new Refund();
refund.setORGBATCHID("200581000001279-0001611042439603");
refund.setMERCHANT_ID(DemoConfig.merchantid);
refund.setORGBATCHSN("0");
refund.setBUSINESS_CODE("09200");
refund.setAMOUNT("10000");
/*refund.setACCOUNT_NAME("银联");
refund.setACCOUNT_NO("6224243000000038");*/
refund.setREMARK("222");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(refund);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.account;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.accttrans.AcctTransferReq;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.ChargeReq;
import com.allinpay.demo.xstruct.trans.TransRet;
public class Tranx100400 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100400");
AcctTransferReq chargeReq = new AcctTransferReq();
chargeReq.setAMOUNT("100000");
chargeReq.setPAYEECUSID("200604000002185");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(chargeReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.account;
import java.util.ArrayList;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.accttrans.AcctTransferReq;
import com.allinpay.demo.xstruct.accttransfer.BSum;
import com.allinpay.demo.xstruct.accttransfer.BacctTransferReq;
import com.allinpay.demo.xstruct.accttransfer.Dtl;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.ChargeReq;
import com.allinpay.demo.xstruct.trans.TransRet;
import com.allinpay.demo.xstruct.trans.brsp.Ret_Detail;
public class Tranx100401 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100401");
BacctTransferReq chargeReq = new BacctTransferReq();
BSum bSum =new BSum();
bSum.setTOTAL_ITEM("1");
bSum.setTOTAL_SUM("1");
chargeReq.setBSUM(bSum);
AipgReq req = new AipgReq();
List<Dtl>list=new ArrayList<Dtl>();
Dtl sDtl=new Dtl();
sDtl.setAMOUNT("1");
sDtl.setPAYEECUSID("200604000000445");
sDtl.setSN("0001");
list.add(sDtl);
chargeReq.setDTLS(list);
req.setINFO(infoReq);
req.addTrx(chargeReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
com.allinpay.demo.xstruct.trans.brsp.Body rspBody = (com.allinpay.demo.xstruct.trans.brsp.Body)rsp.trxObj();
@SuppressWarnings("unchecked")
List<Ret_Detail> rspList = rspBody.getDetails();
for(Ret_Detail rd : rspList){
System.out.println(rd.getSN());
System.out.println(rd.getRET_CODE());
System.out.println(rd.getERR_MSG());
}
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.account;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.acquery.AcNode;
import com.allinpay.demo.xstruct.acquery.AcQueryRep;
import com.allinpay.demo.xstruct.acquery.AcQueryReq;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.CashRep;
import com.allinpay.demo.xstruct.trans.CashReq;
public class Tranx300000 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("300000");
AcQueryReq cashReq = new AcQueryReq();
/*cashReq.setACCTNO("200604000005686001");//通联账户
*/
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(cashReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
AcQueryRep cr = (AcQueryRep)rsp.trxObj();
List<AcNode> cr1=cr.getDetails();
for(AcNode ad:cr1){
System.out.println(ad.getBALANCE());
}
/**/
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.account;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.acquery.AcNode;
import com.allinpay.demo.xstruct.acquery.AcQueryRep;
import com.allinpay.demo.xstruct.acquery.AcQueryReq;
import com.allinpay.demo.xstruct.ahquery.AHQueryRep;
import com.allinpay.demo.xstruct.ahquery.AHQueryReq;
import com.allinpay.demo.xstruct.ahquery.BalNode;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.CashRep;
import com.allinpay.demo.xstruct.trans.CashReq;
public class Tranx300001 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("300001");
AHQueryReq cashReq = new AHQueryReq();
cashReq.setACCTNO("200604000006840001");//通联账户
cashReq.setSTARTDAY("20200914");
cashReq.setENDDAY("20200914");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(cashReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
AHQueryRep cr = (AHQueryRep)rsp.trxObj();
List<BalNode> cr1=cr.getDetails();
for(BalNode ad:cr1){
System.out.println(ad.getBALANCE());
}
/**/
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.account;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.ChargeReq;
import com.allinpay.demo.xstruct.trans.TransRet;
import com.allinpay.demo.xstruct.tunotify.TUNotifyReq;
public class Tranx300002 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("300002");
TUNotifyReq chargeReq = new TUNotifyReq();
chargeReq.setMERCHANT_ID(DemoConfig.merchantid);
chargeReq.setAMOUNT("1");
chargeReq.setACCTNO("200604000005095001");
chargeReq.setINACCT("622484848393030244");
chargeReq.setOUTACCT("6226888899990000");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(chargeReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.account;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.CashRep;
import com.allinpay.demo.xstruct.trans.CashReq;
/**
* @Description 提现
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx300003 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("300003");
CashReq cashReq = new CashReq();
cashReq.setACCTNO("201303000000000130440");//通联账户
cashReq.setAMOUNT("1");
cashReq.setBANKACCT("1212313123123123123123");//银行账户
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(cashReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
CashRep cr = (CashRep)rsp.trxObj();
System.out.println(cr.getAMOUNT());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.account;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.acquery.AcNode;
import com.allinpay.demo.xstruct.acquery.AcQueryRep;
import com.allinpay.demo.xstruct.acquery.AcQueryReq;
import com.allinpay.demo.xstruct.ahquery.AHQueryRep;
import com.allinpay.demo.xstruct.ahquery.AHQueryReq;
import com.allinpay.demo.xstruct.ahquery.BalNode;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.etquery.EtNode;
import com.allinpay.demo.xstruct.etquery.EtQueryRep;
import com.allinpay.demo.xstruct.etquery.EtQueryReq;
import com.allinpay.demo.xstruct.trans.CashRep;
import com.allinpay.demo.xstruct.trans.CashReq;
public class Tranx300004 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("300004");
EtQueryReq cashReq = new EtQueryReq();
cashReq.setACCTNO("200604000005825001");//通联账户
cashReq.setSTARTDAY("20200724");
cashReq.setENDDAY("20200724");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(cashReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
EtQueryRep cr = (EtQueryRep)rsp.trxObj();
List<EtNode> cr1=cr.getDetails();
for(EtNode ad:cr1){
System.out.println(ad.getAMOUNT());
}
/**/
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.account;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.acquery.AcNode;
import com.allinpay.demo.xstruct.acquery.AcQueryRep;
import com.allinpay.demo.xstruct.acquery.AcQueryReq;
import com.allinpay.demo.xstruct.ahquery.AHQueryRep;
import com.allinpay.demo.xstruct.ahquery.AHQueryReq;
import com.allinpay.demo.xstruct.ahquery.BalNode;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.etdtlquery.EtDtl;
import com.allinpay.demo.xstruct.etdtlquery.EtQReq;
import com.allinpay.demo.xstruct.etdtlquery.EtQRsp;
import com.allinpay.demo.xstruct.etquery.EtNode;
import com.allinpay.demo.xstruct.etquery.EtQueryRep;
import com.allinpay.demo.xstruct.etquery.EtQueryReq;
import com.allinpay.demo.xstruct.trans.CashRep;
import com.allinpay.demo.xstruct.trans.CashReq;
public class Tranx300005 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("300005");
EtQReq cashReq = new EtQReq();
cashReq.setQ_DATE("20200520");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(cashReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
EtQRsp cr = (EtQRsp)rsp.trxObj();
List<EtDtl> cr1=cr.getDetails();
for(EtDtl ad:cr1){
System.out.println(ad.getAMOUNT());
}
/**/
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.account;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.ChargeReq;
import com.allinpay.demo.xstruct.trans.TransRet;
/**
* @Description 账户充值
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx300006 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("300006");
ChargeReq chargeReq = new ChargeReq();
chargeReq.setAMOUNT("1");
chargeReq.setBUSINESS_CODE("19900");
chargeReq.setBANKACCT("1212313123123123123123");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(chargeReq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.contract;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FAGRARET;
import com.allinpay.demo.xstruct.stdagr.AGRINFO;
import com.allinpay.demo.xstruct.stdagr.AGRRSP;
public class Contract340001 {
public static void main(String args[]){
InfoReq inforeq = DemoUtil.makeReq("340001");
AGRINFO fagra = new AGRINFO();
fagra.setSIGN_MODE("1");
fagra.setSUBMIT_TIME(DemoUtil.getNow());
fagra.setBUSINESS_CODE("10600");
fagra.setBANK_CODE("0103");
fagra.setACCOUNT_NAME("玉佛77");//
fagra.setACCOUNT_NO("6228480248030876577");//
fagra.setACCOUNT_PROP("0");
fagra.setTEL("13688888887");//
fagra.setID("410728198805081599");//
fagra.setID_TYPE("0");
fagra.setMERCHANT_ID(DemoConfig.merchantid);
fagra.setACCOUNT_TYPE("00");
/*fagra.setCVV2("095");
fagra.setVALIDDATE("2103");*/
fagra.setMERREM("123");
fagra.setREMARK("123123123");
AipgReq req = new AipgReq();
req.setINFO(inforeq);
req.addTrx(fagra);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+inforeq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
AGRRSP fr = (AGRRSP)rsp.trxObj();
System.out.println(fr.getRET_CODE());
System.out.println(fr.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.contract;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FAGRARET;
import com.allinpay.demo.xstruct.stdagr.AGRCFM;
import com.allinpay.demo.xstruct.stdagr.AGRCFMRSP;
import com.allinpay.demo.xstruct.stdagr.AGRINFO;
public class Contract340002 {
public static void main(String args[]){
InfoReq inforeq = DemoUtil.makeReq("340002");
AGRCFM fagra = new AGRCFM();
/*fagra.setSIGN_MODE("0");*/
fagra.setMERCHANT_ID(DemoConfig.merchantid);
fagra.setSRCREQSN("200581000001279-0001611136706576");
fagra.setVERCODE("111111");
AipgReq req = new AipgReq();
req.setINFO(inforeq);
req.addTrx(fagra);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+inforeq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
AGRCFMRSP fr = (AGRCFMRSP)rsp.trxObj();
System.out.println(fr.getRET_CODE());
System.out.println(fr.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.contract;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FAGRARET;
import com.allinpay.demo.xstruct.stdagr.AGRCNL;
import com.allinpay.demo.xstruct.stdagr.AGRCNLRSP;
import com.allinpay.demo.xstruct.stdagr.AGRINFO;
import com.allinpay.demo.xstruct.stdagr.AGRRSP;
public class Contract340003 {
public static void main(String args[]){
InfoReq inforeq = DemoUtil.makeReq("340003");
AGRCNL fagra = new AGRCNL();
fagra.setACCOUNT_NO("625781016999945858219");
fagra.setAGRMNO("STD6146821910600190409000000002");
fagra.setMERCHANT_ID(DemoConfig.merchantid);
AipgReq req = new AipgReq();
req.setINFO(inforeq);
req.addTrx(fagra);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+inforeq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
AGRRSP fr = (AGRRSP)rsp.trxObj();
System.out.println(fr.getRET_CODE());
System.out.println(fr.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.filedownload;
import java.io.File;
import java.security.Provider;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.AIPGSignature;
import com.allinpay.demo.util.FileUtil;
import com.allinpay.demo.util.HttpUtil;
public class FileGet {
private static Provider prvd = null;
public static void main(String args[]){
String url=DemoConfig.urlFileGet;
String MERID =DemoConfig.merchantid;
String SETTDAY ="20210205";
String REQTIME ="20200904102811";//df.format(new Date());
String CONTFEE ="1";
String SIGN ="";
CONTFEE=SETTDAY+"|"+REQTIME+"|"+MERID;
System.out.println(CONTFEE);
try {
AIPGSignature signature = new AIPGSignature(AIPGSignature.SM3_SM2, true);//*国密
try {
SIGN = signature.signMsg(CONTFEE, new File(DemoConfig.pathpfx), DemoConfig.pfxpass);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
url=url.replaceAll("@xxx", SETTDAY).replaceAll("@yyy", REQTIME).replaceAll("@zzz", MERID).replaceAll("@sss", SIGN);
System.out.println(url);
CONTFEE=HttpUtil.post("", url);
} catch (AIPGException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
FileUtil.saveToFile(CONTFEE, "bill.txt", "");//默认编码GBK
}
}
package com.allinpay.demo.trx.filedownload;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.apache.commons.codec.binary.Base64InputStream;
import org.apache.commons.io.IOUtils;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.trans.qry.TransQueryReq;
public class FilePost {
public static void main(String args[]){
AipgReq req = new AipgReq();
InfoReq inforeq = DemoUtil.makeReq("200002");
TransQueryReq dqr=new TransQueryReq();
req.setINFO(inforeq);
req.addTrx(dqr);
dqr.setSTATUS(0);
dqr.setMERCHANT_ID(DemoConfig.merchantid );
dqr.setTYPE(0) ;
dqr.setSTART_DAY("20210115");
dqr.setEND_DAY("20210115");
dqr.setCONTFEE("1");
String xml = XmlParser.toXml(req);
//step2 加签
try {
String signedXml = DemoUtil.buildSignedXml(xml);
String url = DemoConfig.url;
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
writeBill(respText);
System.out.println("====================================================>验签成功");
} catch (AIPGException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void writeBill(String resp) throws Exception {
int iStart = resp.indexOf("<CONTENT>");
if(iStart==-1) throw new Exception("XML报文中不存在<CONTENT>");
int end = resp.indexOf("</CONTENT>");
if(end==-1) throw new Exception("XML报文中不存在</CONTENT>");
String billContext = resp.substring(iStart + 9, end);
//写文件
FileOutputStream sos=null;
sos=new FileOutputStream(new File("bills/bill.gz"));
Base64InputStream b64is=new Base64InputStream(IOUtils.toInputStream(billContext),false);
IOUtils.copy(b64is, sos);
IOUtils.closeQuietly(b64is);
//解压
ZipInputStream zin=new ZipInputStream(new FileInputStream(new File("bills/bill.gz")));
ZipEntry zipEntry=null;
while ((zipEntry = zin.getNextEntry()) != null) {
String entryName = zipEntry.getName().toLowerCase();
FileOutputStream os = new FileOutputStream("bills/"+entryName);
// Transfer bytes from the ZIP file to the output file
byte[] buf = new byte[1024];
int len;
while ((len = zin.read(buf)) > 0) {
os.write(buf, 0, len);
}
os.close();
zin.closeEntry();
}
}
}
package com.allinpay.demo.trx.filedownload;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.ELE_BILL;
/**
* @Description
* @Author meixf@allinpay.com
* @Date 2018年7月16日
**/
public class Tranx100050 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100050");
ELE_BILL eb = new ELE_BILL();
eb.setFILENAME("200581000001279-0001611308586606");
eb.setFSN("0");
eb.setMERCHANT_ID("200581000001279");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(eb);
try{
//step1 对象转xml
final String xml = XmlParser.toXml(req);
//step2 加签
final String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
final String url = DemoConfig.url;//"https://172.16.1.11:8443/aipg/ProcessServlet";
System.out.println("============================请求报文============================");
System.out.println(signedXml);
try{
System.out.println("请求" + Thread.currentThread().getId());
String respText = HttpUtil.downloadFile(url, signedXml, "E:/file", "pdf");
System.out.println("============================响应报文============================");
System.out.println(respText);
}catch(Exception e){
e.printStackTrace();
}
//step4 验签
/*
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
}
*/
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.join;
import java.util.ArrayList;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.JointDtlDto;
import com.allinpay.demo.xstruct.trans.JointDto;
import com.allinpay.demo.xstruct.trans.Jointrans;
import com.allinpay.demo.xstruct.trans.TransRet;
public class Tranx100071 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100071");
Jointrans trans = new Jointrans();
trans.setBUSINESS_CODE("19900");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans.setMERCHANT_ID(DemoConfig.merchantid);
trans.setSUBMIT_TIME(DemoUtil.getNow());
trans.setACCOUNT_NAME("买单宝专用四000000");
trans.setACCOUNT_NO("6222001235152468839");
trans.setACCOUNT_PROP("0");
trans.setAMOUNT("600");
trans.setBANK_CODE("0102");
trans.setCURRENCY("CNY");
trans.setAGRMNO("AIP8839201213001003035");
trans.setTEL("");
JointDto i=new JointDto();
JointDtlDto j=new JointDtlDto();
j.setAMOUNT("250");
j.setMERCHANT_ID("200604000005825");
JointDtlDto k=new JointDtlDto();
k.setAMOUNT("350");
k.setMERCHANT_ID("200604000005974");
/*JointDtlDto l=new JointDtlDto();
l.setAMOUNT("20");
l.setMERCHANT_ID("200604000000445");
i.addTrx(j);*/
i.addTrx(k);
i.addTrx(j);
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(trans);
req.addTrx(i);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
System.out.println(ret.getSETTLE_DAY());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.join;
import java.util.ArrayList;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.JointDtlDto;
import com.allinpay.demo.xstruct.trans.JointDto;
import com.allinpay.demo.xstruct.trans.Jointrans;
import com.allinpay.demo.xstruct.trans.TransRet;
public class Tranx100072 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("100072");
Jointrans trans = new Jointrans();
trans.setBUSINESS_CODE("09900");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans.setMERCHANT_ID(DemoConfig.merchantid);
trans.setSUBMIT_TIME(DemoUtil.getNow());
trans.setACCOUNT_NAME("买单宝专用四307900");
trans.setACCOUNT_NO("6217008340012565987");
trans.setID("454547684646544");
trans.setACCOUNT_PROP("0");
trans.setAMOUNT("2601600");
/*trans.setBANK_CODE("0102");*/
trans.setCURRENCY("CNY");
/*trans.setAGRMNO("AIP5987181018000001801");*/
trans.setTEL("13226665872");
JointDto i=new JointDto();
JointDtlDto j=new JointDtlDto();
j.setAMOUNT("2300800");
j.setMERCHANT_ID("200604000005826");
JointDtlDto k=new JointDtlDto();
k.setAMOUNT("300800");
k.setMERCHANT_ID("200604000005974");
JointDtlDto l=new JointDtlDto();
l.setAMOUNT("10");
l.setMERCHANT_ID("200604000005826");
/*i.addTrx(l);*/
i.addTrx(k);
i.addTrx(j);
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(trans);
req.addTrx(i);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
System.out.println(ret.getSETTLE_DAY());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.stdagr.QAGRDETAIL;
import com.allinpay.demo.xstruct.stdagr.QAGRINFO;
import com.allinpay.demo.xstruct.stdagr.QAGRRSP;
import com.allinpay.demo.xstruct.trans.qry.QTDetail;
import com.allinpay.demo.xstruct.trans.qry.QTransRsp;
import com.allinpay.demo.xstruct.trans.qry.TransQueryReq;
public class Check340009 {
public static void main(String[] args) {
InfoReq infoReq = DemoUtil.makeReq("340009");
QAGRINFO QAGRINFO = new QAGRINFO();
QAGRINFO.setMERCHANT_ID(DemoConfig.merchantid);
QAGRINFO.setAGRTYPE("00");
QAGRINFO.setQUERY_MODE("3");
QAGRINFO.setACCOUNT_NO("641717xxxxxxxxxxxx");
/* QAGRINFO.setQUERY_SN("200604000004870-0001587439536085");*/
/*QAGRINFO.setAGRMNO("STD4870181710600200421000000421");*/
///查询交易的文件名
/*queryReq.setSTART_DAY("20180613000000");
queryReq.setEND_DAY("20180613235959");*/
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(QAGRINFO);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
QAGRRSP ret = (QAGRRSP)rsp.trxObj() ;
@SuppressWarnings("unchecked")
List<QAGRDETAIL> list = ret.getDetails();
for(QAGRDETAIL dt : list){
System.out.println(dt.getAGRMNO());
}
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FAGRA;
import com.allinpay.demo.xstruct.quickpay.FAGRARET;
/**
* @Description 快捷签约短信发起
* @Author meixf@allinpay.com
* @Date 2018年5月24日
**/
public class Tranx310001 {
public static void main(String args[]){
InfoReq inforeq = DemoUtil.makeReq("310001");
FAGRA fagra = new FAGRA();
/* fagra.setBANK_CODE("0102");*/
fagra.setACCOUNT_NAME("林维雄");//
fagra.setACCOUNT_NO("6214850201238229");//
fagra.setACCOUNT_PROP("0");
fagra.setTEL("13226665872");//
fagra.setID("445224199104190312");//
fagra.setID_TYPE("0");
fagra.setMERCHANT_ID(DemoConfig.merchantid);
/* fagra.setCREDIT_ACCTNO("6259770052678136");*/
/*fagra.setCVV2("095");
fagra.setVALIDDATE("2103");*/
fagra.setMERREM("123");
fagra.setREMARK("123123123");
AipgReq req = new AipgReq();
req.setINFO(inforeq);
req.addTrx(fagra);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+inforeq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
FAGRARET fr = (FAGRARET)rsp.trxObj();
System.out.println(fr.getRET_CODE());
System.out.println(fr.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FAGRCEXT;
import com.allinpay.demo.xstruct.quickpay.FAGRCRET;
/**
* @Description 快捷签约验证
* @Author meixf@allinpay.com
* @Date 2018年5月24日
**/
public class Tranx310002 {
public static void main(String args[]){
InfoReq infoReq = DemoUtil.makeReq("310002");
FAGRCEXT fagrcext = new FAGRCEXT();
fagrcext.setSRCREQSN("200581000001279-0001612341788764");
fagrcext.setMERCHANT_ID(DemoConfig.merchantid);
fagrcext.setVERCODE("111111");
fagrcext.setACCOUNT_NAME("林维雄");
fagrcext.setID("445224199104190312");
fagrcext.setTEL("13226665872");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(fagrcext);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
FAGRCRET ret = (FAGRCRET)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FAGRCNL;
import com.allinpay.demo.xstruct.quickpay.FAGRCNLRET;
/**
* @Description 快捷协议解约
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx310003 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("310003");
FAGRCNL fagrc = new FAGRCNL();
fagrc.setMERCHANT_ID(DemoConfig.merchantid);
fagrc.setAGRMNO("AIP8229210119001004905");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(fagrc);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
FAGRCNLRET ret = (FAGRCNLRET)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FASTTRX;
import com.allinpay.demo.xstruct.quickpay.FASTTRXRET;
import com.allinpay.demo.xstruct.quickpay.FASTTRXRETC;
import com.allinpay.demo.xstruct.trans.LedgerDtl;
public class Tranx310010 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("310010");
FASTTRX ft = new FASTTRX();
ft.setMERCHANT_ID(DemoConfig.merchantid);
ft.setBUSINESS_CODE("19900");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
ft.setSUBMIT_TIME(DemoUtil.getNow());
/*ft.setAGRMNO("AIP5988180829000002067");*/
ft.setACCOUNT_NAME("俞");
ft.setAMOUNT("90");
ft.setVER_CODE("111111");
ft.setSRC_REQ_SN("200604000005825-0001597646020619");
ft.setCUST_USERID("哈哈哈哈");
ft.setREMARK("a发送到发斯蒂芬");
ft.setSUMMARY("asjdfasdfkasdf");
LedgerDtl dtl1 = new LedgerDtl();
dtl1.setAMOUNT("1");
dtl1.setMERCHANT_ID(DemoConfig.merchantid);
dtl1.setSN("0");
dtl1.setTYPE("0");
/*Ledgers ledgers = new Ledgers();
ledgers.addTrx(dtl1);*/
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(ft);
/*req.addTrx(ledgers);*/
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
FASTTRXRETC ret = (FASTTRXRETC) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
System.out.println(ret.getSETTLE_DAY());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FASTTRX;
import com.allinpay.demo.xstruct.quickpay.FASTTRXRET;
import com.allinpay.demo.xstruct.trans.LedgerDtl;
import com.allinpay.demo.xstruct.trans.Ledgers;
/**
* @Description 快捷支付
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx310011 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("310011");
FASTTRX ft = new FASTTRX();
ft.setMERCHANT_ID(DemoConfig.merchantid);
ft.setBUSINESS_CODE("19900");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
ft.setSUBMIT_TIME(DemoUtil.getNow());
ft.setAGRMNO("AIP8229210119001004905");
/* ft.setFEEFLAG("0");*/
/*ft.setBANK_CODE("0103");*/
ft.setACCOUNT_NAME("林维雄");
ft.setAMOUNT("307800");
ft.setCUST_USERID("哈哈哈哈");
ft.setREMARK("a发送到发斯蒂芬");
ft.setSUMMARY("asjdfasdfkasdf");
ft.setNOTIFYURL("https:113.108.19.20/notify");
LedgerDtl dtl1 = new LedgerDtl();
dtl1.setAMOUNT("1");
dtl1.setMERCHANT_ID("200604000006167");
dtl1.setSN("0");
dtl1.setTYPE("0");
Ledgers ledgers = new Ledgers();
ledgers.addTrx(dtl1);
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(ft);
/* req.addTrx(ledgers);*/
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
FASTTRXRET ret = (FASTTRXRET) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
System.out.println(ret.getSETTLE_DAY());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FAGRCEXT;
import com.allinpay.demo.xstruct.quickpay.FAGRCRET;
import com.allinpay.demo.xstruct.quickpay.FASTTRX;
import com.allinpay.demo.xstruct.trans.TransRet;
public class Tranx310012C {
public static void main(String args[]){
InfoReq infoReq = DemoUtil.makeReq("310012C");
FASTTRX fagrcext = new FASTTRX();
fagrcext.setSRC_REQ_SN("200604000006036-0001606978775454");
fagrcext.setMERCHANT_ID(DemoConfig.merchantid);
fagrcext.setVER_CODE("111111");
fagrcext.setBUSINESS_CODE("19900");
fagrcext.setMERCHANT_ID(DemoConfig.merchantid);
fagrcext.setACCOUNT_NAME("买单宝专用四000000");//
fagrcext.setACCOUNT_NO("627856400008163132");
fagrcext.setAMOUNT("90");
fagrcext.setNOTIFYURL("https://ceshi/quick888");
fagrcext.setSUBMIT_TIME(DemoUtil.getNow());
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(fagrcext);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import java.util.ArrayList;
import java.util.List;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FASTTRX;
import com.allinpay.demo.xstruct.quickpay.FASTTRXRET;
import com.allinpay.demo.xstruct.quickpay.FasttrxDetail;
import com.allinpay.demo.xstruct.quickpay.RET_DETAIL;
import com.allinpay.demo.xstruct.quickpay.RET_DETAILS;
import com.allinpay.demo.xstruct.trans.LedgerDtl;
import com.allinpay.demo.xstruct.trans.Ledgers;
import com.allinpay.demo.xstruct.trans.breq.Body;
import com.allinpay.demo.xstruct.trans.breq.Trans_Sum;
import com.allinpay.demo.xstruct.trans.brsp.Ret_Detail;
public class Tranx310016 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("310016");
Body reqBody = new Body();
Trans_Sum trans_sum = new Trans_Sum();
trans_sum.setBUSINESS_CODE("19900");//必须使用业务人员提供的业务代码,否则返回“未开通业务类型”
trans_sum.setMERCHANT_ID(DemoConfig.merchantid) ;
trans_sum.setTOTAL_ITEM("1") ;
trans_sum.setTOTAL_SUM("1000000") ;
trans_sum.setNOTIFYURL("https://quick/notify");
reqBody.setTRANS_SUM(trans_sum);
List<FasttrxDetail> fasttrxDetails=new ArrayList<FasttrxDetail>();
FasttrxDetail fasttrxDetail=new FasttrxDetail();
FasttrxDetail fasttrxDetail1=new FasttrxDetail();
fasttrxDetail1.setSN("00002");
fasttrxDetail1.setAGRMNO("AIP7278200624001002027");
fasttrxDetail1.setACCOUNT_NO("6228480395898397278");
fasttrxDetail1.setACCOUNT_NAME("俞");
fasttrxDetail1.setAMOUNT("1000000");
fasttrxDetail1.setCUST_USERID("哈哈哈哈");
fasttrxDetail1.setREMARK("a发送到发斯蒂芬");
fasttrxDetail1.setSUMMARY("asjdfasdfkasdf");
/*fasttrxDetail1.setNOTIFYURL("https://quick/notify");*/
fasttrxDetails.add(fasttrxDetail1);
reqBody.setDetails(fasttrxDetails);
LedgerDtl dtl1 = new LedgerDtl();
dtl1.setAMOUNT("1");
dtl1.setMERCHANT_ID("200604000000445");
dtl1.setSN("0");
dtl1.setTYPE("0");
Ledgers Ledgers = new Ledgers();
Ledgers.addTrx(dtl1);
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(reqBody);
/*trans_sum.setLEDGERS(Ledgers);*/
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
com.allinpay.demo.xstruct.trans.brsp.Body rspBody = (com.allinpay.demo.xstruct.trans.brsp.Body)rsp.trxObj();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
@SuppressWarnings("unchecked")
List<Ret_Detail> rspList = rspBody.getDetails();
for(Ret_Detail ret_DETAIL:rspList){
System.out.println(ret_DETAIL.getSN());
System.out.println(ret_DETAIL.getRET_CODE());
System.out.println(ret_DETAIL.getERR_MSG());
}
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.trans.Refund;
import com.allinpay.demo.xstruct.trans.TransRet;
/**
* @Description 快捷接口退款
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx310021 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("310021");
Refund refund = new Refund();
refund.setORGBATCHID("200581000001279-0001547778112903");
refund.setMERCHANT_ID(DemoConfig.merchantid);
refund.setORGBATCHSN("0");
refund.setAMOUNT("100");
refund.setACCOUNT_NAME("玉佛");
refund.setACCOUNT_NO("6258101645858219");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(refund);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet ret = (TransRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.qpay;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.quickpay.FAGRARET;
import com.allinpay.demo.xstruct.quickpay.FASTTRX;
import com.allinpay.demo.xstruct.trans.TransRet;
public class Tranx311012 {
public static void main(String args[]){
InfoReq inforeq = DemoUtil.makeReq("310012");
FASTTRX fagra = new FASTTRX();
fagra.setBUSINESS_CODE("19900");
fagra.setACCOUNT_NAME("买单宝专用四000000");//
fagra.setBANK_CODE("0306");
fagra.setACCOUNT_NO("627856400008163132");//
fagra.setACCOUNT_PROP("0");
fagra.setTEL("15601257600");//
fagra.setID("310106198707030063");//
fagra.setID_TYPE("0");
fagra.setMERCHANT_ID(DemoConfig.merchantid);
fagra.setACCOUNT_TYPE("00");
fagra.setCVV2("");
fagra.setAMOUNT("90");
fagra.setSUBMIT_TIME(DemoUtil.getNow());
fagra.setVALIDDATE("");
fagra.setREMARK("123123123");
AipgReq req = new AipgReq();
req.setINFO(inforeq);
req.addTrx(fagra);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+inforeq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
TransRet fr = (TransRet)rsp.trxObj();
System.out.println(fr.getRET_CODE());
System.out.println(fr.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
public class QVDREQ {
private String PGTAG;
private String MERCHANT_ID;
private String QUERY_SN;
private String STATUS;
public String getPGTAG() {
return PGTAG;
}
public void setPGTAG(String pGTAG) {
PGTAG = pGTAG;
}
public String getMERCHANT_ID() {
return MERCHANT_ID;
}
public void setMERCHANT_ID(String mERCHANT_ID) {
MERCHANT_ID = mERCHANT_ID;
}
public String getQUERY_SN() {
return QUERY_SN;
}
public void setQUERY_SN(String qUERY_SN) {
QUERY_SN = qUERY_SN;
}
public String getSTATUS() {
return STATUS;
}
public void setSTATUS(String sTATUS) {
STATUS = sTATUS;
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValbSum;
import com.allinpay.demo.xstruct.ver.ValidBD;
import com.allinpay.demo.xstruct.ver.ValidBReq;
import com.allinpay.demo.xstruct.ver.VbDetail;
/**
* @Description 批量实名验证(三要素)
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211000 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211000");
ValidBReq vbreq=new ValidBReq();
ValbSum VALBSUM =new ValbSum();
VALBSUM.setMERCHANT_ID(DemoConfig.merchantid);
VALBSUM.setSUBMIT_TIME(DemoUtil.getNow());
VALBSUM.setTOTAL_ITEM("12");
ValidBD VALIDBD=new ValidBD();
VbDetail vbdetail=null;
for(int i=0;i<12;i++){
vbdetail=new VbDetail();
vbdetail.setACCOUNT_NAME("银联" + i);
vbdetail.setACCOUNT_NO("6224243000000038" + i);
vbdetail.setACCOUNT_PROP("0");
vbdetail.setACCOUNT_TYPE("00");
vbdetail.setSN("00"+i);
vbdetail.setOPTYPE("01");//01—新增;02—解除;03—更改
vbdetail.setID_TYPE("0");//证件类型:0 身份证
vbdetail.setID("44201010423543543543");//身份证号
VALIDBD.addDTL(vbdetail);
}
vbreq.setVALBSUM(VALBSUM);
vbreq.setVALIDBD(VALIDBD);
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(vbreq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidR;
import com.allinpay.demo.xstruct.ver.ValidRet;
/**
* @Description 验证明细查询
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211002 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211002");
QVDREQ valid=new QVDREQ();
valid.setQUERY_SN("200604000006036-0001607069448196");
valid.setMERCHANT_ID("200604000006036");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(valid);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidR;
import com.allinpay.demo.xstruct.ver.ValidRet;
/**
* @Description 账户实名验证三要素
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211003 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211003");
ValidR valid=new ValidR();
valid.setACCOUNT_NAME("验收300400");
valid.setACCOUNT_NO("6227000347307529257");
valid.setACCOUNT_PROP("0");
valid.setACCOUNT_TYPE("00");
/*valid.setBANK_CODE("0105");*/
valid.setID("440101198001010076");
valid.setID_TYPE("0");
valid.setMERCHANT_ID(DemoConfig.merchantid);
/*valid.setTEL("13600913244");*/
valid.setSUBMIT_TIME(DemoUtil.getNow());
valid.setREMARK("单笔实时身份验证-备注字段");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(valid);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidR;
import com.allinpay.demo.xstruct.ver.ValidRet;
/**
* @Description 账户实名验证(四要素)
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211004 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211004");
ValidR valid=new ValidR();
valid.setACCOUNT_NAME("朱瑾春300400");
valid.setACCOUNT_NO("6235758000001354588");
valid.setACCOUNT_PROP("0");
valid.setACCOUNT_TYPE("00");
/*valid.setBANK_CODE("04233310");*/
valid.setID("420101198101012286");
valid.setID_TYPE("0");
valid.setMERCHANT_ID(DemoConfig.merchantid);
valid.setTEL("13600913244");
valid.setSUBMIT_TIME(DemoUtil.getNow());
valid.setREMARK("单笔实时身份验证-备注字段");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(valid);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidR;
import com.allinpay.demo.xstruct.ver.ValidRet;
/**
* @Description 账户实名签约(四要素)
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211005 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211005");
ValidR valid=new ValidR();
valid.setACCOUNT_NAME("朱瑾春");
valid.setACCOUNT_NO("6220025378707780542");
valid.setACCOUNT_PROP("0");
valid.setACCOUNT_TYPE("00");
valid.setBANK_CODE("0102");
valid.setID("420101198101012286");
valid.setID_TYPE("0");
valid.setMERCHANT_ID(DemoConfig.merchantid);
valid.setTEL("13600913244");
valid.setSUBMIT_TIME(DemoUtil.getNow());
valid.setREMARK("单笔实时身份验证-备注字段");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(valid);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.RNPA;
import com.allinpay.demo.xstruct.ver.RNPARET;
/**
* @Description 实名付申请
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211006 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211006");
RNPA rnpa = new RNPA();
rnpa.setMERCHANT_ID(DemoConfig.merchantid);
rnpa.setACCOUNT_TYPE("00");
rnpa.setACCOUNT_NO("6217002000028261982");
rnpa.setACCOUNT_NAME("张玉杰");
rnpa.setACCOUNT_PROP("0");
rnpa.setID_TYPE("0");
rnpa.setID("511321198801151956");
rnpa.setTEL("15966666666");
rnpa.setMERREM("20170908000000000012345");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(rnpa);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
RNPARET ret = (RNPARET) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.RNPC;
import com.allinpay.demo.xstruct.ver.RNPCRET;
/**
* @Description
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211006C {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211006C");
RNPC rnpc = new RNPC();
rnpc.setMERCHANT_ID(DemoConfig.merchantid);
rnpc.setSRCREQSN("200604000007293-0001608105529037");
rnpc.setVERCODE("111111");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(rnpc);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
RNPCRET ret = (RNPCRET) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.RNP;
import com.allinpay.demo.xstruct.ver.RNPR;
/**
* @Description
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211006Q {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211006Q");
RNPR rnpr = new RNPR();
rnpr.setMERCHANT_ID(DemoConfig.merchantid);
rnpr.setSRCREQSN("200604000000445-0001527737043550");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(rnpr);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
RNP ret = (RNP) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.RNPR;
import com.allinpay.demo.xstruct.ver.RNPRRET;
/**
* @Description 实名付重发
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211006R {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211006R");
RNPR rnpr = new RNPR();
rnpr.setMERCHANT_ID(DemoConfig.merchantid);
rnpr.setSRCREQSN("200604000001591-0001527687288109");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(rnpr);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
RNPRRET ret = (RNPRRET) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.RNPA;
import com.allinpay.demo.xstruct.ver.RNPARET;
/**
* @Description 账户实名验证(四要素+短信)
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211007 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211007");
RNPA rnpa = new RNPA();
rnpa.setMERCHANT_ID(DemoConfig.merchantid);
rnpa.setACCOUNT_TYPE("00");
rnpa.setACCOUNT_NO("6217002000028261982");
rnpa.setACCOUNT_NAME("张玉杰");
rnpa.setACCOUNT_PROP("0");
rnpa.setID_TYPE("0");
rnpa.setID("511321198801151956");
rnpa.setTEL("15966666666");
rnpa.setMERREM("20170908000000000012345");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(rnpa);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
RNPARET ret = (RNPARET) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.RNPC;
import com.allinpay.demo.xstruct.ver.RNPCRET;
/**
* @Description
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211007C {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211007C");
RNPC rnpc = new RNPC();
rnpc.setMERCHANT_ID(DemoConfig.merchantid);
rnpc.setSRCREQSN("200604000011060-0001593423082139");
rnpc.setVERCODE("111111");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(rnpc);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
RNPCRET ret = (RNPCRET) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.RNP;
import com.allinpay.demo.xstruct.ver.RNPR;
/**
* @Description
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211007Q {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211007Q");
RNPR rnpr = new RNPR();
rnpr.setMERCHANT_ID(DemoConfig.merchantid);
rnpr.setSRCREQSN("200604000000445-0001527736999531");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(rnpr);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
RNP ret = (RNP) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.RNPR;
import com.allinpay.demo.xstruct.ver.RNPRRET;
/**
* @Description
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211007R {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211007R");
RNPR rnpr = new RNPR();
rnpr.setMERCHANT_ID(DemoConfig.merchantid);
rnpr.setSRCREQSN("200604000001591-0001527687288109");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(rnpr);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
RNPRRET ret = (RNPRRET) rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidR;
import com.allinpay.demo.xstruct.ver.ValidRet;
/**
* @Description 账户实名签约(三要素)
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211008 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211008");
ValidR valid=new ValidR();
valid.setACCOUNT_NAME("朱瑾春");
valid.setACCOUNT_NO("6220025378707780542");
valid.setACCOUNT_PROP("0");
valid.setACCOUNT_TYPE("00");
valid.setBANK_CODE("0102");
valid.setID("420101198101012286");
valid.setID_TYPE("0");
valid.setMERCHANT_ID(DemoConfig.merchantid);
valid.setTEL("13600913244");
valid.setSUBMIT_TIME(DemoUtil.getNow());
valid.setREMARK("单笔实时身份验证-备注字段");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(valid);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidR;
import com.allinpay.demo.xstruct.ver.ValidRet;
/**
* @Description 账户实名验证(二要素)
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211009 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211009");
ValidR valid=new ValidR();
valid.setACCOUNT_NAME("杨会平");
valid.setACCOUNT_NO("6213820501000009207");
valid.setACCOUNT_PROP("0");
valid.setACCOUNT_TYPE("00");
/*valid.setBANK_CODE("0102");
valid.setID("420101198101012286");*/
/*valid.setID_TYPE("0");*/
valid.setMERCHANT_ID(DemoConfig.merchantid);
/*valid.setTEL("13600913244");*/
valid.setSUBMIT_TIME(DemoUtil.getNow());
valid.setREMARK("单笔实时身份验证-备注字段");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(valid);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url ="https://tlt.allinpay.com/aipg/ProcessServlet"+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidRet;
import com.allinpay.demo.xstruct.ver.ValidTR;
/**
* @Description 账户类别验证(二要素)
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211010 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211010");
ValidTR valid=new ValidTR();
valid.setACCOUNT_NAME("朱瑾春");
valid.setACCOUNT_NO("6220025378707780542");
valid.setACCOUNT_PROP("0");
valid.setACCOUNT_TYPE("00");
valid.setBANK_CODE("0104");
valid.setID("420101198101012286");
valid.setID_TYPE("0");
valid.setMERCHANT_ID(DemoConfig.merchantid);
valid.setTEL("13600913244");
valid.setSUBMIT_TIME(DemoUtil.getNow());
valid.setREMARK("单笔实时身份验证-备注字段");
valid.setACCOUNT_ATTRB("1");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(valid);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidRet;
import com.allinpay.demo.xstruct.ver.ValidTR;
/**
* @Description 账户类别验证(五要素)
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211011 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211011");
ValidTR valid=new ValidTR();
valid.setACCOUNT_NAME("苏宝能000000");
valid.setACCOUNT_NO("62357580900001354588");
/*valid.setACCOUNT_PROP("0");
valid.setACCOUNT_TYPE("00");*/
valid.setBANK_CODE("0102");
valid.setID("45270219840630039X");
valid.setID_TYPE("0");
valid.setMERCHANT_ID(DemoConfig.merchantid);
valid.setTEL("17620867789");
valid.setSUBMIT_TIME(DemoUtil.getNow());
valid.setREMARK("单笔实时身份验证-备注字段");
valid.setACCOUNT_ATTRB("1");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(valid);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
\ No newline at end of file
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidRet;
import com.allinpay.demo.xstruct.ver.ValidTR;
/**
* @Description 账户类别验证(三要素)
* @Author linwx@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx211014 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("211014");
ValidTR valid=new ValidTR();
valid.setACCOUNT_NAME("朱瑾春");
valid.setACCOUNT_NO("6220025378707780542");
valid.setBANK_CODE("0104");
valid.setMERCHANT_ID(DemoConfig.merchantid);
valid.setSUBMIT_TIME(DemoUtil.getNow());
valid.setREMARK("单笔实时身份验证-备注字段");
valid.setACCOUNT_ATTRB("1");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(valid);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
package com.allinpay.demo.trx.ver;
import com.allinpay.demo.AIPGException;
import com.allinpay.demo.DemoConfig;
import com.allinpay.demo.util.DemoUtil;
import com.allinpay.demo.util.HttpUtil;
import com.allinpay.demo.xml.XmlParser;
import com.allinpay.demo.xstruct.common.AipgReq;
import com.allinpay.demo.xstruct.common.AipgRsp;
import com.allinpay.demo.xstruct.common.InfoReq;
import com.allinpay.demo.xstruct.common.InfoRsp;
import com.allinpay.demo.xstruct.ver.ValidRet;
import com.allinpay.demo.xstruct.ver.idv.IdVer;
/**
* @Description 国民身份验证
* @Author meixf@allinpay.com
* @Date 2018年5月29日
**/
public class Tranx220001 {
public static void main(String[] args){
InfoReq infoReq = DemoUtil.makeReq("220001");
IdVer vbreq=new IdVer();
vbreq.setNAME("茅㼆月");
vbreq.setIDNO("3201131969120215096");
AipgReq req = new AipgReq();
req.setINFO(infoReq);
req.addTrx(vbreq);
try{
//step1 对象转xml
String xml = XmlParser.toXml(req);
//step2 加签
String signedXml = DemoUtil.buildSignedXml(xml);
//step3 发往通联
String url = DemoConfig.url+"?MERCHANT_ID="+DemoConfig.merchantid+"&REQ_SN="+infoReq.getREQ_SN();
System.out.println("============================请求报文============================");
System.out.println(signedXml);
String respText = HttpUtil.post(signedXml, url);
System.out.println("============================响应报文============================");
System.out.println(respText);
//step4 验签
if(!DemoUtil.verifyXml(respText)){
System.out.println("====================================================>验签失败");
return;
}
System.out.println("====================================================>验签成功");
//step5 xml转对象
AipgRsp rsp = XmlParser.parseRsp(respText);
InfoRsp infoRsp = rsp.getINFO();
System.out.println(infoRsp.getRET_CODE());
System.out.println(infoRsp.getERR_MSG());
if("0000".equals(infoRsp.getRET_CODE())){
ValidRet ret = (ValidRet)rsp.trxObj();
System.out.println(ret.getRET_CODE());
System.out.println(ret.getERR_MSG());
}
}catch(AIPGException e){
e.printStackTrace();
}
}
}
This diff is collapsed.
This diff is collapsed.
package com.allinpay.demo.util;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.security.Security;
public class AESUtil {
private static Log log = LogFactory.getLog(AESUtil.class);
private static final String ENCODING = "GBK";
private static final String KEY_ALGORITHM = "AES"; //密钥算法
private static final String CRYPT_ALGORITHM = "AES/ECB/PKCS5Padding"; //加解密算法/工作模式/填充方式
private static volatile String AES_KEY = null;
static{
if(Security.getProvider("BC") == null){
BouncyCastleProvider prvd = new BouncyCastleProvider(); //密码不能用特殊符号
Security.addProvider(prvd);
}
}
public static String encrptWithBase64(String source, String key) throws Exception{
Cipher cipher = Cipher.getInstance(CRYPT_ALGORITHM, "BC");// 创建密码器
byte[] byteContent = source.getBytes(ENCODING);
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(ENCODING), KEY_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, keySpec);// 初始化为加密模式的密码器
byte[] result = cipher.doFinal(byteContent);// 加密
return Base64.encodeBase64String(result);
}
public static String decryptWithBase64(String encryptedMsg, String key){
try {
//实例化
Cipher cipher = Cipher.getInstance(CRYPT_ALGORITHM, "BC");
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(ENCODING), KEY_ALGORITHM);
//使用密钥初始化,设置为解密模式
cipher.init(Cipher.DECRYPT_MODE, keySpec);
//执行操作
byte[] result = cipher.doFinal(Base64.decodeBase64(encryptedMsg));
return new String(result, ENCODING);
} catch (Exception ex) {
log.warn(ex.getMessage(), ex);
}
return encryptedMsg;
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment