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.AGRACCTCHECK;


/**
 * @Description
 * @Author meixf@allinpay.com
 * @Date 2022年2月21日
 **/
public class Tranx340011 {

    public static void main(String[] args) {
        InfoReq inforeq = DemoUtil.makeReq("340011");
        
        AGRACCTCHECK check = new AGRACCTCHECK();
        check.setAGRMNO("AIP452924101598A0805E0");
        check.setACCOUNT_NO("6216607985612314529");
        check.setACCOUNT_NAME("按理说");
        check.setID_TYPE("0");
        check.setID("789654196312023256");
        check.setTEL("19316161231");
        
        AipgReq req = new AipgReq();
        req.setINFO(inforeq);
        req.addTrx(check);
    
        try{
            //step1 对象转xml
            String xml = XmlParser.toXml(req);
            //step2 加签
            String signedXml = DemoUtil.buildSignedXml(xml);
            //step3 发往通联
            String url = DemoConfig.url;//"https://172.16.1.11:8443/aipg/ProcessServlet";
            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();
        }
    }
    
}
