接口参数 若无特殊说明,接口参数同时支持GET和POST传递;推荐:查询/删除用GET,创建/更新用POST。
参数名字 | 参数类型 | 是否必须 | 默认值 | 备注 | 参数说明 |
---|---|---|---|---|---|
app_key | 字符串 | 必须 | 最小:32 | 公共参数 开发者应用的app_key,查看我的app_key,如果还没有,可免费注册开通。 | |
sign | 字符串 | 可选 | 公共参数接口签名,其中: | ||
uuid | 字符串 | 可选 | 公共参数 UUID,当前登录的应用会员ID,即全局唯一用户ID,查看我的应用会员。传递此参数后,可以在开放平台查看每日活跃会员统计图表。uuid需要和token一起传递。 | ||
token | 字符串 | 可选 | 公共参数 当前登录会员的会话凭证,可通过会员登录接口获得。uuid需要和token一起传递。 | ||
return_data | 字符串 | 可选 | 0 | 公共参数 数据返回结构,其中:
| |
province_code | 字符串 | 可选 | 省份编码 | ||
city_code | 字符串 | 可选 | 城市编码 | ||
area_code | 字符串 | 可选 | 区县编码 | ||
street_code | 字符串 | 可选 | 乡镇编码 | ||
village_code | 字符串 | 可选 | 村庄编码 |
在线测试
参数 | 是否必填 | 值 |
---|---|---|
s | 固定 | |
uuid | 可选 | |
token | 可选 | |
return_data | 可选 | |
province_code | 可选 | |
city_code | 可选 | |
area_code | 可选 | |
street_code | 可选 | |
village_code | 可选 |
客户端请求示例
查看我的接口域名、app_key和app_secrect 客户端接入指南(如何生成签名) 开启/关闭签名
请求(第一个示例:从省份开始选择):
{你的接口域名}/?s=App.Common_Address.Choose&province_code=11&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"province": {
"code": "11",
"name": "北京市",
"next": [
{
"code": "1101",
"name": "市辖区"
}
]
},
"city": null,
"area": null,
"street": null,
"village": null,
"province_list": [
{
"code": "11",
"name": "北京市"
},
{
"code": "12",
"name": "天津市"
},
// 略 ……
],
"full_address": "北京市"
},
"msg": "当前请求接口:App.Common_Address.Choose"
}
请求(第二个示例:最后定位到具体的村庄的返回结果):
{你的接口域名}/?s=App.Common_Address.Choose&village_code=110101001010&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"province": {
"code": "11",
"name": "北京市",
"next": [
{
"code": "1101",
"name": "市辖区"
}
]
},
"city": {
"code": "1101",
"name": "市辖区",
"next": [
{
"code": "110101",
"name": "东城区"
},
{
"code": "110102",
"name": "西城区"
},
// 略 ……
]
},
"area": {
"code": "110101",
"name": "东城区",
"next": [
{
"code": "110101001",
"name": "东华门街道办事处"
},
{
"code": "110101002",
"name": "景山街道办事处"
},
// 略 ……
]
},
"street": {
"code": "110101001",
"name": "东华门街道办事处",
"next": [
{
"code": "110101001001",
"name": "多福巷社区居委会"
},
{
"code": "110101001002",
"name": "银闸社区居委会"
},
// 略 ……
]
},
"village": {
"code": "110101001010",
"name": "正义路社区居委会",
"next": [
]
},
"province_list": [
{
"code": "11",
"name": "北京市"
},
{
"code": "12",
"name": "天津市"
},
// 略 ……
],
"full_address": "北京市市辖区东城区东华门街道办事处正义路社区居委会"
},
"msg": "当前请求接口:App.Common_Address.Choose"
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口(第一个示例:从省份开始选择):
$rs = OkayApiClient::request('App.Common_Address.Choose',array('province_code'=>'11'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[province] => Array
(
[code] => 11
[name] => 北京市
[next] => Array
(
[0] => Array
(
[code] => 1101
[name] => 市辖区
)
)
)
[city] =>
[area] =>
[street] =>
[village] =>
[province_list] => Array
(
[0] => Array ( [code] => 11 [name] => 北京市 )
[1] => Array ( [code] => 12 [name] => 天津市 )
[2] => Array ( [code] => 13 [name] => 河北省 )
//略
[32] => Array ( [code] => 81 [name] => 香港特别行政区 )
[33] => Array ( [code] => 82 [name] => 澳门特别行政区 )
)
[full_address] => 北京市
)
[msg] => 小白开放接口:App.Common_Address.Choose
)
*/
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口(第二个示例:最后定位到具体的村庄的返回结果)
$rs = OkayApiClient::request('App.Common_Address.Choose',array('village_code'=>'110101001010'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[province] => Array
(
[code] => 11
[name] => 北京市
[next] => Array
(
[0] => Array ( [code] => 1101 [name] => 市辖区 )
)
)
[city] => Array
(
[code] => 1101
[name] => 市辖区
[next] => Array
(
[0] => Array ( [code] => 110101 [name] => 东城区 )
//略
[15] => Array ( [code] => 110119 [name] => 延庆区 )
)
)
[area] => Array
(
[code] => 110101
[name] => 东城区
[next] => Array
(
[0] => Array ( [code] => 110101001 [name] => 东华门街道办事处 )
//略
[16] => Array ( [code] => 110101017 [name] => 永定门外街道办事处 )
)
)
[street] => Array
(
[code] => 110101001
[name] => 东华门街道办事处
[next] => Array
(
[0] => Array ( [code] => 110101001001 [name] => 多福巷社区居委会 )
//略
[11] => Array ( [code] => 110101001015 [name] => 王府井社区居委会 )
)
)
[village] => Array
(
[code] => 110101001010
[name] => 正义路社区居委会
[next] => Array ( )
)
[province_list] => Array
(
[0] => Array ( [code] => 11 [name] => 北京市 )
//略
[33] => Array ( [code] => 82 [name] => 澳门特别行政区 )
)
[full_address] => 北京市市辖区东城区东华门街道办事处正义路社区居委会
)
[msg] => 小白开放接口:App.Common_Address.Choose
)
*/
接口返回及数据结构
返回字段 | 类型 | 说明 |
---|---|---|
ret | 整型 | 接口状态码,200表示成功,4xx表示客户端非法请求,5xx表示服务端异常,查看异常错误码 |
data | object/array/混合 | 接口返回的业务数据,由不同的API接口决定不同的数据返回字段和结构。当return_data=1时,接口只会返回此data字段。 |
data.province | 对象 | 省份信息(若有) |
data.province.code | 字符串 | 省份编码 |
data.province.name | 字符串 | 省份名称 |
data.province.next | 字符串 | 省份下的城市列表 |
data.city | 对象 | 城市信息(若有) |
data.city.code | 字符串 | 城市编码 |
data.city.name | 字符串 | 城市名称 |
data.city.next | 字符串 | 城市下的区县列表 |
data.area | 对象 | 区县信息(若有) |
data.area.code | 字符串 | 区县编码 |
data.area.name | 字符串 | 区县名称 |
data.area.next | 字符串 | 区县下的乡镇列表 |
data.street | 对象 | 乡镇信息(若有) |
data.street.code | 字符串 | 乡镇编码 |
data.street.name | 字符串 | 乡镇名称 |
data.street.next | 字符串 | 乡镇下的村庄列表 |
data.village | 对象 | 村庄信息(若有) |
data.village.code | 字符串 | 村庄编码 |
data.village.name | 字符串 | 村庄名称 |
data.village.next | 字符串 | 下一级列表 |
data.province_list | 字符串 | 全国省份列表(固定返回) |
data.province_list[].code | 字符串 | 省份编码 |
data.province_list[].name | 字符串 | 省份名称 |
data.full_address | 字符串 | 完整的地址,例如:北京市市辖区东城区东华门街道办事处正义路社区居委会 |
msg | 字符串 | 提示信息,面向技术人员的帮助或错误提示信息 |
_t | 整数 | 服务器当时Unix时间戳,例如:1657513450 |
_auth | 字符串 | 反向数字签名,可用于客户端进行反向验证,防止数据篡改,例如:9bcd54ff53e71a1d80d37c52bdfabf76。验证算法:_auth = md5(data返回的JSON字符串 + _t当前时间戳字符串 + APP_SECRECT密钥字符串) ,若需要关闭或开启请提交工单 |
ret异常错误码
错误码 | 错误类型 | 错误描述信息 | 解决方法 |
---|---|---|---|
ret = 200 | 成功 | 请求成功 | |
ret = 400 | 客户端非法请求 | 表示客户端参数错误 | 1、根据接口文档的接口参数,提供正确的参数 |
ret = 404 | 客户端非法请求 | 表示接口服务不存在 | 1、查看小白接口大全,确保接口服务名称拼写正确 |
ret = 500 | 小白接口异常 | 表示服务端内部错误 | 1、进入QQ交流群897815708,反馈问题;2、或者提交工单,一天内回复 |
常见问题FAQ
Q1 问:出现 414 Request-URI Too Large 时怎么解决?答:对于全部参数,改用POST方式传递,并且从GET链接里面去掉。
Q2 问:浏览器请求和在线测试接口正常,但本地程序无法正常获取接口结果。答:需要注意UTF编码,以及存在中文和特殊字符时的URL编码。GET请求参数应统一进行URL编码后再请求,POST表单数据正常传递即可。
Q3 问:请求接口时提示JSON格式错误。答:请先阅读,然后检测本地传递的参数是否符合JSON格式,使用JSON在线工具辅助检测,注意双引号和特殊符号。确认无误后再重新请求API接口。
Q4 问:出现 405 不允许跨域请求 时怎么办?答:可以追加GET参数 &yesapi_allow_origin=1
,或参考用反向代理解决跨域问题等3种解决方案。
Q4 问:在wx内无法访问yesapi.cn或okayapi.com域名,怎么办?答:由于曾经短链跳转使用被wx误封域名,可以帮忙进行申诉。申诉后截图联系我们,获取15万次接口流量奖励。