## 7示例
### 7.1最简单请求示例(推荐)
示例源代码位置:
![](https://img.kancloud.cn/d0/ea/d0eaae3e27351a72935874e1a5c21cd5_280x259.png)
必须在源代码的根目录下添加 tws.properties 配置文件,配置参数内容如下:
```
server.url.rest=http://168.33.130.43/tws/rest
connection.timeout=60000
cert.crt.path=D:/twscerts/szfsWS0000000001.crt cert.pfx.path=D:/twscerts/szfsB00000000001.pfx
cert.pfx.pwd=12345678
#schema.zip=D:/schema.zip
```
调用示例代码如下图 – 以一个主动查询账户验证处理结果的业务为例
![](https://img.kancloud.cn/b9/b3/b9b3209f10125fbe09ae855a50a2644a_511x391.png)
REST请求结果:
```
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SzfsTwsReturn>
<reqmsgtype>INFOTRANSQUERY</reqmsgtype>
<reqversion>1.0</reqversion>
<reqsubnode>B00000000002</reqsubnode>
<reqmsgno>14295858708901</reqmsgno>
<status>99</status>
<remark>根据msgtype[INFOTRANSQUERY]和 version[1.0]系统查找不到对应的服务
</remark>
</SzfsTwsReturn>
```
### 7.2API 注入参数示例
示例源代码位置:
![](https://img.kancloud.cn/7a/d0/7ad068fb3f4b5fa536c8549720f2f4bf_279x256.png)
调用方式示例:
![](https://img.kancloud.cn/68/c2/68c2dce3371f1d5f7b298736ebc4a768_539x328.png)
### 7.3配置文件外置示例
示例源代码位置:
![](https://img.kancloud.cn/35/b1/35b17a19773949688f3becf4c59dca58_279x269.png)
调用方式示例:
![](https://img.kancloud.cn/de/a1/dea1a74e428c66ec8710bf246ab78751_447x199.png)
### 7.4扩展 HTTP 实现示例
示例源代码位置:
![](https://img.kancloud.cn/7b/7e/7b7e1c7c3c764ee5fe1891fddab9f60d_289x303.png)
实现 TwsHttpRequest 接口,用自已的 HTTP 组件实现请求发起和响应内容抽
取的方法:
![](https://img.kancloud.cn/22/fb/22fb70f232652dbbfbf6f695b9a6e5b4_593x596.png)
把扩展的 TwsHttpRequest 接口实现类实例注入请求中
![](https://img.kancloud.cn/02/7b/027ba7478ee5d1fd4737d8c05116efb0_439x235.png)
### 7.5原始 POST 参数示例
该样例以手工形式装组 POST 请求的所有参数,并实现对报文内容的加密与签名
示例源代码位置:
![](https://img.kancloud.cn/91/b3/91b32d1fbcb2fecbf0f7ac98ed63e164_275x284.png)
限于篇幅,更多细节请阅读该示例源代码
### 7.6异步回调 Server 示例
当请求的业务接口响应模式选择为异步时,要求接入商户需要自行开发用于接收回调的Server,可以用任何语言开发,不做限制,下面以 Java Servlet 为范例做一个简单说明。
以 Eclispe 为开发工具,建立一个动态 Web 工程,内容大致如下图所示
![](https://img.kancloud.cn/dc/8d/dc8da20568a71454778a836cd6e70434_232x241.png)
引入 tws-adpter-2.0.jar 做为依赖项
web.xml 定义内容如下
![](https://img.kancloud.cn/3f/fc/3ffce20dc6bb0fb11fdb35cb3dc7dece_596x252.png)
指定一个 Servlet 来处理请求参数,参数和报文标准的文档描述完全一样,是: msgtype、version、subnode、sendtime、msgno、resptype、ziptype、respurl、signature、msgbody、gatewayversion
Servlet 非常简单,可能同时处理 GET 和 POST,具体直连接口系统以什么样的方式请求过来,取决于之前商户发起的模式,你是 POST,它回调就用 POST,你是 GET,它回调就是 GET,保持一致。
![](https://img.kancloud.cn/4d/ee/4deeb38a44c76287ac72d52a8947423e_486x333.png)
处理流程大概如下
![](https://img.kancloud.cn/8a/8f/8a8f766ab490fb148889a09fde7d991c_576x662.png)
处理返回 xml 签名的调用如下:
![](https://img.kancloud.cn/67/f2/67f2359d400fb668334f6d16f0f20540_717x346.png)
由于 Java 开发一个 Web Server 的模式也是多种多样的,该例子仅是以最简单的范例进行说明,具体可以参考详细代码,也可以自行按照类似的思路开发自己的 Server