# 公共参数
# 域名
wss://xwcloudapi.weixin.qq.com/
# 请求参数
请求参数遵循xwschema协议中定义的websocket_req
字段名 | 类型 | 含义 |
---|---|---|
cmd | int | 固定为0 |
product | int | 固定为6201 |
seq | int | 固定填0 |
http.method | string | 固定都是使用post |
http.path | string | 调用接口路径,参见:接口说明 |
http.query | string | 保持为空即可 |
http.header.Host | string | 固定使用xwcloudapi.weixin.qq.com |
http.header.Ticket | string | 票据信息,通过/xwopenapi/authdevice 接口获取 |
http.header.RequestID | string | 请求ID,每个请求唯一 |
content | string | 接口请求内容进行base64encode后的结果,下文有详细说明 |
注:Ticket 除调用/xwopenapi/authdevice 接口填空,其余所有接口必填 |
# content字段格式说明
content内容与接口类型相关,但加密方式一样:都是先将接口内容JSON序列化成字符串,再base64加密。 js代码表示为:
window.btoa(JSON.stringify({{接口内容JSON对象}}));
golang代码表示为:
content, _ := json.Marshal({{接口内容对象}})
sendContent := base64.StdEncoding.EncodeToString(content)
# 请求结构示例
{
"cmd": 0,
"product": 6201,
"seq": 0,
"http": {
"method": "post",
"path": "/xwopenapi/authdevice",
"query": "",
"header": {
"Host": "xwcloudapi.weixin.qq.com",
"Ticket": "xxxx",
"RequestID": "KIFQBATLQKXTRIHKPRUTWFTRTWPJHFSO"
}
},
"content": "xxxx"
}
# 返回结果格式
返回参数遵循xwschema协议中定义的websocket_rsp
字段名 | 类型 | 含义 |
---|---|---|
cmd | int | 为0 代表为同步返回,为其他代表异步返回 |
seq | int | 固定为0 |
http.statusCode | int | http状态码 |
http.header | object | http header头部信息 |
encoding | string | 编码类型 |
scene | string | 后台推送时为notify ,同步返回为空 |
content | string | base64编码后的返回内容 |
# 返回content字段解析步骤
- 对content字段使用base64解码
- 再对上一步得到的字符串进行json反序列化,得到json对象,结构如下:
{
"request_id":"", // 对应请求的request_id
"type":1, // 参见下文介绍
"response":""
}
- 上一步得到的
response
字段内容为各个业务接口实际返回的内容经过JSON序列化后的结果,对其进行JSON反序列化可得到业务返回的实际内容。
# content.type字段说明
type | 说明 |
---|---|
1 | 代表notify结果,需要根据返回的cmd字段解析 |
2 | 同步返回的结果,code=0 代表请求成功,不为0表示该请求出错,不会收到异步结果推送 |
3 | auth结果,专门针对/xwopenapi/authdevice 接口返回的结果,返回code=0表示auth成功,否则失败 |
# 返回结构示例
{
"cmd": 0,
"seq": 0,
"http": {
"statusCode": 200,
"header": { }
},
"encoding": "base64",
"scene": "notify",
"content": "eyJjb2RlIjowLCJtc2ciOiJzdWNjZXNzIiwiaW50ZXJ2YWwiOjEwfQ=="
}