首页
 > 开放接入中心 > 数据交换 > 接口说明 > 报文接收(webservice)

报文接收接口功能(WebService)

1、总体说明

接收方主动到交换平台轮询获取其他人发给自己的信件,如成功则返回信件内容;失败则返回错误消息和错误代码。

2、请求地址

测试地址:

  #ssl.logink.org/cuteinfo/services/ExchangeTransportService?wsdl

生产地址:

  1号 #exa.logink.org/cuteinfo/services/ExchangeTransportService?wsdl

  3 #exb.logink.org/cuteinfo/services/ExchangeTransportService?wsdl

3、函数说明:

函数名称:receive

完整样式:USendResponse receive (UReceiveRequest receiveReq )

参数说明

序号

参数属性

参数名称

中文名称

数据类型

说明

 1 

发送参数

receiveReq

发送请求对象

UReceiveRequest


2

返回参数

USendResponse

接收请求对象

USendResponse


接收参数

序号

报文层次

英文名称

中文名称

约束

数据格式

说明

示例

 1 

1

Envelope

报文

1..1


XML标签


2

2

Header

报文头

1..1


XML标签


3

3

Security

安全信息

1..1


XML标签


4

4

UsernameToken

用户身份

1..1


XML标签


5

5

Username

用户名

1..1

string

用户物流交换代码

物流代码

6

5

UserTokenID

令牌

1..1

string

用户令牌

用户令牌

7

2

Body

报文体

1..1


XML标签


8

3

ReceiveRequest

接收请求

1..1


XML标签


9


ReceiveNumber(属性)

接收数量

1..1

int

接收事件数目。缺省为1(单条) ,最多100。

10

10

Timeout(属性)

超时时间

1..1

long

指定接收消息的超时时间。缺省为3000ms。

暂未启用

11

ISBloacked(属性)

是否阻塞

1..1

boolean

是否等待直到有消息收到,默认为false

暂未启用

返回参数

序号

报文层次

英文名称

中文名称

约束

数据格式

说明

示例

 1 

1

Envelope

报文

1..1


XML标签


2

2

Body

报文体

1..1


XML标签


3

3

ReceiveResponse

接收响应

1..1


XML标签


4


TotalEventCount(属性)

未处理事件数

1..1

int

指当前地址未被处理的事件数件

未接收报文数量

5

4

GenericFault

异常信息

0..1


XML标签


6

5

Code

异常编码

1..1

String

异常的错误代码。

异常代码

7

5

ErrorMessage

异常信息

1..1

String

异常的详细信息。

异常中文描述

8

4

ReceiveExchangeEvent

接收事件

1..1


XML标签


9


EventReceiver

接收方

1..1

int

事件的接收方物流代码

物流代码

10

EventSender

发送方

1..1

int

事件的发送方代码

物流代码

11

ReceivedTime

接收时间

1..1

int



12

5

ExchangeEvent

交换事件

1..n


XML标签


13


EventID(属性)

事件标识

1..1

String

交换事件的唯一标识

UUID

14

ActionType(属性)

操作类型

1..1

string

操作类型

操作类型列表

15

6

ExchangeDataPackage

交换数据包

1..1


XML标签


17


packageID(属性)

交换数据报标识

1..1

string

唯一标识一个数据交换包的ID。

UUID

18

transactionID(属性)

交易标识

1..1

string

唯一标识一次数居交换交易的ID。

UUID

19

createTime(属性)

创建时间

1..1

dateTime

交换数据包创建的时间。

YYYY-MM-DD

HH:MM:SS

20

expireTime(属性)

失效时间

0..1

dateTime

交换数据包数据有效的时间。不指定该时间表示永久有效。

YYYY-MM-DD

HH:MM:SS

21

title(属性)

标题

1..1

string

交换数据包的描述性名称。



7

ExchangeDataPackageUnit

数据包单元

1..n


XML标签


22


groupID(属性)

分组标识

1..1

string

在一个交换数据包中唯一标识一个分组的标识符。

UUID

23

groupSize(属性)

分组大小

1..1

int


1

24

sequenceInGroup(属性)

组内序号

1..1

int


UUID

25

unitID(属性)

包单元ID

1..1

string


UUID

26

source(属性)

数据来源

1..1

string


xml stream

27

entityIDName(属性)

实体标识名

1..1

string


XMLFile

28

entityDispName(属性)

实体显示名

0..1

string


XMLFile

29

createDate(属性)

创建时间

1..1

datetime


YYYY-MM-DD

HH:MM:SS

30

expireDate(属性)

失效时间

0..1

datetime


YYYY-MM-DD

HH:MM:SS

31

8

DataFile

数据文件

0..1


XML标签


32


dataFileID(属性)

文件标识

1..1

string


UUID

33

fileName(属性)

文件名

1..1

string


XMLFile

34

dataFileFormat(属性)

文件格式

1..1

string


XML

35

9

Base64EncodedData

嵌入式内容

1..1

base64Binary

经过Base64转换的业务报文

经过Base64转换的业务报文

36

9

AttachmentData

数据附件

1..1

base64Binary

数据附件

数据附件

4、参考样例

采用平台接入包样例

Properties properties = PropertiesUtils.PROPERTIES.getProperties("client_demo.properties"); 
String targetURL = properties.getProperty("targetURL"); 
String username = "xxxx"; 
String psw = "xxxxx"; 
IMessageTransporterDAO transporter = null; 
try { 
UserToken user = UserTokenUtils.getTicket(username, psw,properties.getProperty("resourceId"),properties.getProperty("authURL")); 
System.out.println("tokenid:" + user.getTokenID()); 
transporter = ITransportClientFactory.createMessageTransporter(user, targetURL); 
UReceiveRequest receiveReq = new UReceiveRequest(1); 
receiveReq.setConfirmReceive(false); 
long start = System.currentTimeMillis(); 
UReceiveResponse response = transporter.receive(receiveReq); 
try { 
for (int i = 0; i < response.getUEventReceiverList().size(); i++) { 
UEventReceiver event = response.getUEventReceiverList().get(i); 
String actiontype = event.getActiontype(); 
System.out.println("actiontype:" + actiontype); 
String eventid = event.getEventid(); 
System.out.println("eventid:" + eventid); 
for (int j = 0; j < event.getEventReceiverPackage().getEventReceiverUnitList().size(); j++) { 
UEventReceiverPackageUnit unit = event.getEventReceiverPackage().getEventReceiverUnitList().get(j); 
if (unit.getEventReceiverUnitSimpleDataList() != null) { 
for (int k = 0; k < unit.getEventReceiverUnitSimpleDataList().size(); k++) { 
UEventReceiverUnitSimpleData simpledata = unit.getEventReceiverUnitSimpleDataList().get(k); 
System.out.println(simpledata.getFieldname() + ":" + simpledata.getFieldvalue()); 
} 
} 
if (unit.getEventReceiverUnitDataFile() != null && unit.getEventReceiverUnitDataFile().getAttachmentData() != null) { 
byte[] bytes = unit.getEventReceiverUnitDataFile().getAttachmentData(); 
String filename = unit.getEventReceiverUnitDataFile().getFilename(); 
FileUtil.getFileFromBytes(bytes, "d:/" + filename); 
} 
if (unit.getEventReceiverUnitDataFile() != null && unit.getEventReceiverUnitDataFile().getBase64EncodedData() != null) { 
String xml = new String(unit.getEventReceiverUnitDataFile().getBase64EncodedData(), "utf-8"); 
xml = new String(Base64Util.getFromBASE64Byte(xml),"utf-8"); 
System.err.println("xml==================" + xml); 
} 
} 
long end = System.currentTimeMillis(); 
System.out.println("耗时:" + (end - start) + "毫秒"); 
//接收确定 
UConfirmReceiveRequest confirmReq = new UConfirmReceiveRequest(); 
confirmReq.setDeleteEvent(true); 
confirmReq.setConfirmReceiveRequest(eventid);//设置事件id 
UConfirmReceiveResponse confirmResponse = transporter.confirmReceive(confirmReq); 
if(confirmResponse.getConfirmResult().isConfirmResult()){ 
System.out.println("接收确定成功"); 
}else{ 
System.out.println("接收确定失败"); 
} 
System.out.println(); 
} 
} catch (Exception e) { 
e.printStackTrace(); 
} 
} catch (UMessageTransportException e) { 
e.printStackTrace(); 
}

自主开发请求报文样例:

<soapenv:Envelope> 
<soapenv:Header> 
<wsse:Security> 
<wsse:UsernameToken> 
<wsse:Username>8643</wsse:Username> <wsse:UserTokenID>ticket:MWEzMzMyMzctNTJkYi00NjY1LWFhZjEtN2VlZTU2Y2E2YmEwQVNfUExBVEZPUk1sb2dpbmtfMA 
</wsse:UserTokenID> 
</wsse:UsernameToken> 
</wsse:Security> 
</soapenv:Header> 
<soapenv:Body> 
<ns4:ReceiveRequest ReceiveNumber="100" Timeout="0" ISBloacked="false"> 
</ns4:ReceiveRequest> 
</soapenv:Body> 
</soapenv:Envelope>

报文返回结果样例:

<soap:Envelope> 
<soap:Body> 
<ns3:ReceiveResponse TotalEventCount="2"> 
<ns3:ReceiveExchangeEvent EventReceiver="8643" EventSender="8643" ReceivedTime="2014-09-04T14:07:14.280+08:00"> 
<ns3:ReceivedEvent ActionType="LOGINK_CN_TRANSPORT_PREBOOKING" EventID="8a8184e2483f44d001483f44d02a0003"> 
<ExchangeDataPackage title="titleZhouJing" expireTime="2014-09-04T14:04:13.381+08:00" createTime="2014-09-04T14:04:13.381+08:00" transactionID="8a8184e2483f44d001483f44d02a0007" packageID="8a8184e2483f44d001483f44d02a0006"> 
<ExchangeDataPackageUnit expireDate="2014-09-04T06:05:47.442Z" createDate="2014-09-04T06:05:47.446Z" entityDispName="entitydispname" entityIDName="//www.wondersgroup.com" source="source" unitID="8a8184e2483f44d001483f44d02b0009" sequenceInGroup="1" groupSize="1" groupID="8a8184e2483f44d001483f44d02c000b"> 
<DataFile dataFileFormat="xml" fileName="xml" dataFileID="www.wondersgroup.com"> 
<Base64EncodedData>NXJXTDZLK1Y=</Base64EncodedData> 
</DataFile> 
</ExchangeDataPackageUnit> 
</ExchangeDataPackage> 
</ns3:ReceivedEvent> 
</ns3:ReceiveExchangeEvent> 
</ns3:ReceiveResponse> 
</soap:Body> 
</soap:Envelope>