zhongminli 2013-08-12
接口采用技术:Http
一、基础信息。
1.流程描述:发送post请求至接口地址。进行身份认证,通过后,调用需要的接口方法,处理后,返回结果。
2.接口路径:http://apiuu.k.cn/http/httpService.php
3.post传输参数定义:
参数名描述类型
xmlData传输进行身份验证的信息。包含:AppID,AppToken,AppTime,CilentIP,AppCtid
其中AppCtid为签名生成规则为
AppCtid=md5(key+AppToken+AppID+AppTime);
Key为双方约定的字符串
infobird
Xml
格式如下:
$xml=<<<EOD
<?xmlversion="1.0"?>
<msg>
<Head>
<AppID>AppID值</AppID>
<AppToken>AppToken值</AppToken>
<AppCtid>AppCtid值</AppCtid>
<AppTime>AppTime值</AppTime>
<class>调用的类名</class>
<method>调用的方法名</method>
<parametername="参数名1"type="array">
<array>
<elementname="值名1">1111</element>
<elementname="值名2">2222</element>
</array>
</parameter>
<parametername="参数名2">22</parameter>
</Head>
</msg>
EOD;
4.Php代码示例:
$url='http://api.zn.com/http/httpService.php';
try{
$appid="101";
$key=“infobird”;
$keywordcode=“STAFF101”;
$curr_time=time();
$CTID=md5($key.$keywordcode.$appID.$curr_time);
$xml=<<<EOD
<?xmlversion="1.0"?>
<msg>
<Head>
<AppID>$appID</AppID>
<AppToken>$keywordcode</AppToken>
<AppCtid>$CTID</AppCtid>
<AppTime>$curr_time</AppTime>
<class>AccountCtrl</class>
<method>test</method>
<parametername="test"type="array">
<array>
<elementname="aa">1111</element>
<elementname="bb">2222</element>
</array>
</parameter>
<parametername="bb">22</parameter>
</Head>
</msg>
EOD;
$post_data=array(
"xmlData=$xml",
);
$post_data=implode('&',$post_data);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
$output=curl_exec($ch);
if(!$output){
echo'error:';var_dump(curl_error($ch));exit;
}
curl_close($ch);
}catch(Exception$e){
echo2;var_dump($e);
}
var_dump($output);
5.公用状态码定义:
状态码描述
XML请求格式错误2001
请求的AppID错误2002
请求的AppToken错误2003
请求的AppCtid错误2004
请求的AppTime超时(AppTime与当前时间相差30秒)2005
请求的类不存在2006
请求的方法不存在2007
参数不同2008
参数名称错误2009
IP地址不被允许2010
身份认证通过200
二、具体接口
1.登录接口
a)调用方式:
i.Class:AccountCtrl’;
ii.Method:‘login’;
iii.Parameter
<?xmlversion="1.0"?>
<msg>
<Head>
<AppID>$appID</AppID>
<AppToken>$keywordcode</AppToken>
<AppCtid>$CTID</AppCtid>
<AppTime>$curr_time</AppTime>
<class>AccountCtrl</class>
<method>login</method>
<parametername="username">[email protected]</parameter>
<parametername="password">1</parameter>
</Head>
</msg>
b)参数说明:
i.传入参数username:用户名
ii.传入参数password:密码
iii.返回值
成功:
<?xmlversion="1.0"encoding="utf8"?>
<msg>
<Head>
<AppID>101</AppID>
<AppToken>STAFF101</AppToken>
<AppCtid>84dd50cc39f3c37e545e60e0a9c95452</AppCtid>
<AppTime>1316081132</AppTime>
<class>AccountCtrl</class>
<method>login</method>
<status>200</status>
<body>
<uid>9133</uid>
<username>[email protected]</username>
</body>
</Head>
</msg>
c)错误码定义
i.32001登录失败
2.获得用户信息
a)调用方式
i.Class:AccountCtrl’;
ii.Method:‘getByUid’;
iii.Parameter
<?xmlversion="1.0"?>
<msg>
<Head>
<AppID>$appID</AppID>
<AppToken>$keywordcode</AppToken>
<AppCtid>$CTID</AppCtid>
<AppTime>$curr_time</AppTime>
<class>AccountCtrl</class>
<method>getByUid</method>
<parametername="uid">用户id</parameter>
</Head>
</msg>
b)参数说明:
i.传入参数uid:用户uid,登录时返回的uid信息。
ii.返回值
成功:
<?xmlversion="1.0"encoding="utf8"?>
<msg>
<Head>
<AppID>$appID</AppID>
<AppToken>$keywordcode</AppToken>
<AppCtid>$CTID</AppCtid>
<AppTime>$curr_time</AppTime>
<class>AccountCtrl</class>
<method>getByUid</method>
<status>200</status>
<body>
<uid></uid>
<email>[email protected]</email>
<comname>企业名称2</comname>
<mobile>1591111111112</mobile>
<name>真实姓名1</name>
<nickname>昵称</nickname>
</body>
</Head>
</msg>
失败:
<?xmlversion="1.0"encoding="utf8"?>
<msg>
<Head>
<AppID>$appID</AppID>
<AppToken>$keywordcode</AppToken>
<AppCtid>$CTID</AppCtid>
<AppTime>$curr_time</AppTime>
<class>AccountCtrl</class>
<method>getByUid</method>
<status>错误码</status>
<body><success>0<success></body>
</Head>
</msg>
c)错误码定义:
i.36001用户不存在