协议说明
该协议仅供参考,接口调用请使用对应语言的SDK
下载地址
1、使用HTTP协议进行信息交互,字符编码统一采用UTF-8
2、除非特殊说明,接口地址统一为:https://api.talk-fun.com/portal.php
3、除非特殊说明,同时支持GET和POST两种参数传递方式
4、除非特殊说明,返回信息支持JSON格式
5、除了sign外,其余所有请求参数值都需要进行URL编码
6、参数表中,类型一栏声明的定义为:int 代表整数类型;string 代表字符串类型,如果后面有括号,括号中的数字代表该参数的最大长度;array/object表示数组类型
7、openID、openToken参数的获取见对接流程说明
请求参数说明
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
openID | string | Y | 合作方唯一标识码,由欢拓统一分配提供 |
timestamp | int | Y | 当前Unix时间戳,请保证请求服务器时间正确,有些API接口是有时效性要求的 |
cmd | string | Y | 调用接口的名称 |
format | string | Y | 返回参数格式:支持json |
ver | string | Y | 协议版本号(如果您根据协议自行开发客户端程序,该参数请填写1.0) |
params | string | Y | 接口参数:具体接口所需参数数组,经过json_encode,再urlencode所得,SDK已经封装好(没有提供SDK的语言,可以参数其它语言的实现方式) |
sign | string | Y | 签名,生成规则详见下面的说明,其中openToken是由欢拓网统一分配并提供的用户密钥。 |
sign生成规则可以分为4个步骤:
1、把除sign参数外的其它所有请求参数按key升序排序。
2、把key和它对应的value拼接成一个字符串。按步骤1中顺序,把所有键值对字符串拼接成一个字符串。
3、把分配给的openToken拼接在第2步骤得到的字符串后面。
4、计算第3步骤字符串的md5值,使用md5值的16进制字符串作为sign的值。
示例:
例如要访问进入课程course.access接口
那么cmd=course.access,假设openID为10000,openToken为8469039490c68cc9063f15e11f3498dd,timestamp为1451606400
params按course.access接口的参数编码后为%7B%22course_id%22%3A10000%2C%22uid%22%3A10001%2C%22nickname%22%3A%22%5Cu6d4b%5Cu8bd5%22%2C%22role%22%3A%22user%22%7D
则按key升序,再按key与对应的value拼接后的结果str=cmdcourse.accessformatjsonopenID10000params%7B%22course_id%22%3A10000%2C%22uid%22%3A10001%2C%22nickname%22%3A%22%5Cu6d4b%5Cu8bd5%22%2C%22role%22%3A%22user%22%7Dtimestamp1451606400ver1.0
则sign等于md5(str+openToken)为 4efb375c28a4ca903813e03b53f40f70
返回参数说明
名称 | 类型 | 描述 |
---|---|---|
code | int | 状态值:0表示操作成功;其它值表示失败,具体含义见msg说明 |
msg | string | 状态说明 |
total | int | 符合条件的记录数量 |
data | array | 返回具体信息 |
@查询数据相关接口:
* 当查询成功的时候,code === 0
* 当查询的数据不存在的时候,code !== 0 或者 code === 0 && data 为空,具体参见详细的接口
* 当查询失败的时候,code !== 0,详细信息参见msg字段
@数据添加相关接口:
* 当添加成功的时候,code === 0
* 当添加失败的时候,code !== 0 ,详细信息参见msg字段,data 部分可能将返回一些数据参数,具体参见详细的接口说明
@数据删除相关接口:
* 当删除功能的时候,code === 0
* 当删除失败的时候,code !== 0 ,详细信息参见 msg 字段,data 部分可能将返回一些数据参数,具体参见详细的接口说明
@数据更新相关接口
* 当更新成功的时候,code === 0
* 当更新失败的时候,code !== 0,详细信息参见 msg 字段,data 部分可能将返回一些数据参数,具体参见详细的接口说明