# 公共参数

# 域名

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字段解析步骤

  1. 对content字段使用base64解码
  2. 再对上一步得到的字符串进行json反序列化,得到json对象,结构如下:
{
  "request_id":"", // 对应请求的request_id
  "type":1, // 参见下文介绍
  "response":""
}
  1. 上一步得到的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=="
}