larry.liu пре 6 година
родитељ
комит
733c53a044
2 измењених фајлова са 48 додато и 2 уклоњено
  1. 46 2
      device/bind.go
  2. 2 0
      device/device.go

+ 46 - 2
device/bind.go

@@ -9,9 +9,9 @@ import (
 
 // ReqBind 设备绑定解绑共通实体
 type ReqBind struct {
-	Ticket   string `json:"ticket"`
+	Ticket   string `json:"ticket,omitempty"`
 	DeviceID string `json:"device_id"`
-	OpenID   string `json:"open_id"`
+	OpenID   string `json:"openid"`
 }
 type resBind struct {
 	BaseResp util.CommonError `json:"base_resp"`
@@ -60,3 +60,47 @@ func (d *Device) Unbind(req ReqBind) (err error) {
 	}
 	return
 }
+
+// CompelBind 强制绑定用户和设备
+func (d *Device) CompelBind(req ReqBind) (err error) {
+	var accessToken string
+	if accessToken, err = d.GetAccessToken(); err != nil {
+		return
+	}
+	uri := fmt.Sprintf("%s?access_token=%s", uriCompelBind, accessToken)
+	var response []byte
+	if response, err = util.PostJSON(uri, req); err != nil {
+		return
+	}
+	var result resBind
+	if err = json.Unmarshal(response, &result); err != nil {
+		return
+	}
+	if result.BaseResp.ErrCode != 0 {
+		err = fmt.Errorf("DeviceBind Error , errcode=%d , errmsg=%s", result.BaseResp.ErrCode, result.BaseResp.ErrMsg)
+		return
+	}
+	return
+}
+
+// CompelUnbind 强制解绑用户和设备
+func (d *Device) CompelUnbind(req ReqBind) (err error) {
+	var accessToken string
+	if accessToken, err = d.GetAccessToken(); err != nil {
+		return
+	}
+	uri := fmt.Sprintf("%s?access_token=%s", uriCompelUnbind, accessToken)
+	var response []byte
+	if response, err = util.PostJSON(uri, req); err != nil {
+		return
+	}
+	var result resBind
+	if err = json.Unmarshal(response, &result); err != nil {
+		return
+	}
+	if result.BaseResp.ErrCode != 0 {
+		err = fmt.Errorf("DeviceBind Error , errcode=%d , errmsg=%s", result.BaseResp.ErrCode, result.BaseResp.ErrMsg)
+		return
+	}
+	return
+}

+ 2 - 0
device/device.go

@@ -14,6 +14,8 @@ const (
 	uriVerifyQRCode = "https://api.weixin.qq.com/device/verify_qrcode"
 	uriBind         = "https://api.weixin.qq.com/device/bind"
 	uriUnbind       = "https://api.weixin.qq.com/device/unbind"
+	uriCompelBind   = "https://api.weixin.qq.com/device/compel_bind"
+	uriCompelUnbind = "https://api.weixin.qq.com/device/compel_unbind"
 	uriState        = "https://api.weixin.qq.com/device/get_stat"
 )