Socke提交数据,数据格式以以XML为基本格式,对于请求报文,根报文域的XML标签固定为TRAN_REQ,对于应答报文,根报文域的XML标签固定为TRAN_RESP。非必输节点或空节点,可不出现。整体报文结构如表1:
域1 域2 域3 域4 域5 域6
报文总长度 合作方编码 交易服务码 签名域长度 签名域值 XML报文主体密文
---------------------------------------------------------------------------------------------------------
域1:报文总长度
固定8个字节,以字符串表示,值为:合作方编码长度+交易服务码长度+签名域长度+签名域值长度+XML密文长度,位数不足左补“0”。
域2:合作方编码
固定15个字节,以字符串表示,位数不足左补空格。
域3:交易服务码
固定8个字节,对应值可查看章节3.1服务码,以字符串表示,位数不足左补空格。
域4:签名域长度
固定4个字节,该长度为不经Base64编码的长度,以字符串表示,位数不足左补“0”。
域5:签名域值
字节数为签名域长度值,该域是整个XML报文明文参与签名后的值,包括XML标签,不经Base64编码。
域6:XML报文主体密文
字节数为剩余的字节数(域1的值扣去域2、域3、域4、域5的长度),该域是整个XML报文明文参与加密后的值,不经Base64编码。
注:具体的报文接口可查看交易接口的样例报文。
<?xml version="1.0" encoding="UTF-8"?>
<TRAN_REQ>
<TRAN_DATE>20151208</TRAN_DATE>
<TRAN_TIME>164737</TRAN_TIME>
<TRAN_ID>2015120810020000</TRAN_ID>
<ACC_NO>123456</ACC_NO>
<ACC_NAME>账号余额查询测试</ACC_NAME>
</TRAN_REQ>
==========================================
求接触过这玩意的,上面那个xml 还能怎么搞成上面文档描述的 变成报文有6个域~~~~
实在很看不懂啊~~~之前开发都是居于http方式。。。也搞过加密签名。。。
但突然换成Socket的Xml 报文我突然不知道怎么理解上面的那6个域~~~~求科普啊~~~
刚还特意去看了下对方给的Java 案例。。。看到构建这个报文格式真的是难理解~~~