背景简述
为了保障用户的数据安全,所有对外开放的接口须使用统一鉴权的方式,为了防止API调用过程中被恶意篡改,调用任何一个API都需要携带请求签名,签名不合法的请求都将被拒绝。
调用流程
调用流程
客户端需要按照接口统一鉴权的规范拼接一个正确的url请求到服务端
公共请求参数
参数名称 | 参数类型 | 是否必传 | 参数描述 |
---|---|---|---|
method | string | 是 | api接口名 |
access_token | string | 是 | 用户授权令牌(获取方式另写文档补充) |
timestamp | string | 是 | 时间戳,格式为yyyy-MM-dd HH:mm:ss,例如:2019-05-01 00:00:00。 |
sign | string | 是 | api接口入参签名,请查看下方调用示例的详细介绍 |
format | string | 是 | 请求返回的数据格式,目前仅支持json形式 |
调用示例
sign签名获取
- app_key : myappkey
- app_secret : myappsecret
- access_token : myaccesstoken
原始参数
method="user_info_query"
access_token="myaccesstoken "
timestamp="2021-04-28 14:13:04"
format="json"
user_info_query_json={}
把原始参数按照字母顺序排序
access_token="myaccesstoken "
format="json"
method="user_info_query"
timestamp="2021-04-28 14:13:04"
user_info_query_json={}
连接参数名与参数值,并在首尾加上app_secret
myappsecretaccess_token=myaccesstoken format=jsonmethod=user_info_querytimestamp=1619605281177user_info_query_json=myappsecret
时间戳获取方式
System.currentTimeMillis();
MD5加密
MD5加密后转成大写:EDBE87FB9640EDD681FEBC79D858AAC0
组装新的请求url
https://api.wx.com/index.do?access_token="myaccesstoken"&format="json"&method="user_info_query"&timestamp="2021-04-28 14:13:04"&user_info_query_json={}&sign=EDBE87FB9640EDD681FEBC79D858AAC0