1.1 首先我们先拿到一个接口协议,我们以代理商资质申请手机号码加密码校验接口为例
名称 | 代理商资质申请手机号码加密码校验接口 |
接口协议 | TUXEDO |
服务名(前两个是businessid,后两个是flowid) | cmcvs_CheckAptitudePassWord SVR_CMCVS_CheckAptitudePassWord CLT_CMCVS_CheckAptitudePassWord SVR_CMCVS_CheckAptitudePassWord |
OPCODE | CCEICheckAptitudePassWord |
数据格式 | XML |
路由 | 手机号码 |
请求报文
序号 | 父元素名称 | 前台元素名称 | 后台入参 | 约束 | 类型 | 描述 | 取值说明 |
1.1 | operation_in | content |
| 1 |
| 请求内容 |
|
1.1.1 | content | telnum |
| 1 | VARCHAR2(11) | 手机号码 |
|
1.1.2 | content | password |
| 1 | VARCHAR2(20) | 密码 |
|
|
应答报文
返回包体为空,通过报文头中的resp_code来判断手机号码加密码校验是否成功。
1. 写call中方法的实现类
Public void checkAptitudePassWord ( )
{
//第一步,组装报文体
//创建报文体
Document doc = DocumentHelper.createDocument();
//创建名字为 CMCVSKey.CONTENT 的父节点
Elementcontent = doc.addElement(CMCVSKey.CONTENT);
//根据请求报文,给父节点添加子节点
// 手机号码(addSubElementToEle(父节点,子节点名称,子节点值))
DocumentUtil.addSubElementToEle(content, "telnum", registerPo.getTelNum());
//密码
DocumentUtil.addSubElementToEle(content,"password",registerPo.getPassword());
/**
*添加子节点也可以使用如下方法
* content.addElement(子节点名).addText(子节点值);
*/
//第二步,获取请求报文头实体
MsgHeaderPO msgHeaderPO = CommonUtil.getMsgHeaderByOperator(null, CommonUtil.getParamValueById(ParamIdConstants.cmcvs_CheckAptitudePassWord),
CMCVSKey.REQUEST_TYPE_QUERY,
CMCVSKey.ROUTE_TYPE_REGION,
registerPo.getTelNum());
/**
* getMsgHeaderByOperator(操作员实体类,根据id查出的参数值,操作类型,路由类型,
*路由值)
* 其中红色字体为协议中给出的服务名,其对应的id为businessid
*/
//第三步,组装调用接口的请求报文
Document docXML = intMsgUtil.createMsg(doc,msgHeaderPO);
//第四步,调用接口返回bean
IntReturnWrap rw = intMsgUtil.invokeRtnMapOrList(docXML, "");
/**
* invokeRtnMapOrList(请求报文,地市编码region)为接口调用平台
*/
//第五步,判断结果
if (SSReturnCode.SUCCESS != rw.getStatus())
{
thrownew ReceptionException(rw.getReturnMsg());
}
/**
*if中,根据方法具体返回类型而定,
*①如果无返回类型void,则只需抛出异常;
*②若返回为实体bean,则需将返回的map转换成对应的bean,用
*CommonUtil.createObjectByMap(fromAttr,*toAttr,rw.getRtnmap(),RegisterPo.class.getName());
*③如果返回其他类型则调用相应的方法,
*其中createObjectByMap中的参数分别对应
* fromAttr:请求报文各个元素组成的数组
* toAttr:相对应的Po中的各个字段元素
* rtnMap:返回的map
*classType:对应po的类名
*/
}