mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 21:02:25 +08:00
61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
package device
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/silenceper/wechat/util"
|
|
)
|
|
|
|
type ReqBind struct {
|
|
Ticket string `json:"ticket"`
|
|
DeviceId string `json:"device_id"`
|
|
OpenId string `json:"open_id"`
|
|
}
|
|
type resBind struct {
|
|
BaseResp util.CommonError `json:"base_resp"`
|
|
}
|
|
|
|
// Bind 设备绑定
|
|
func (d *Device) Bind(req ReqBind) (err error) {
|
|
var accessToken string
|
|
if accessToken, err = d.GetAccessToken(); err != nil {
|
|
return
|
|
}
|
|
uri := fmt.Sprintf("%s?access_token=%s", uriBind, 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
|
|
}
|
|
|
|
// Bind 设备解绑
|
|
func (d *Device) Unbind(req ReqBind) (err error) {
|
|
var accessToken string
|
|
if accessToken, err = d.GetAccessToken(); err != nil {
|
|
return
|
|
}
|
|
uri := fmt.Sprintf("%s?access_token=%s", uriUnbind, 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
|
|
}
|