| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package device
- import (
- "encoding/json"
- "fmt"
- "github.com/silenceper/wechat/context"
- "github.com/silenceper/wechat/util"
- )
- const (
- uriAuthorize = "https://api.weixin.qq.com/device/authorize_device"
- uriQRCode = "https://api.weixin.qq.com/device/create_qrcode"
- 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"
- )
- //Device struct
- type Device struct {
- *context.Context
- }
- //NewDevice 实例
- func NewDevice(context *context.Context) *Device {
- device := new(Device)
- device.Context = context
- return device
- }
- // ResDeviceState 设备状态响应实体
- type ResDeviceState struct {
- util.CommonError
- Status int `json:"status"`
- StatusInfo string `json:"status_info"`
- }
- // State 设备状态查询
- func (d *Device) State(device string) (res ResDeviceState, err error) {
- var accessToken string
- if accessToken, err = d.GetAccessToken(); err != nil {
- return
- }
- uri := fmt.Sprintf("%s?access_token=%s&device_id=%s", uriState, accessToken, device)
- var response []byte
- if response, err = util.HTTPGet(uri); err != nil {
- return
- }
- if err = json.Unmarshal(response, &res); err != nil {
- return
- }
- if res.ErrCode != 0 {
- err = fmt.Errorf("DeviceState Error , errcode=%d , errmsg=%s", res.ErrCode, res.ErrMsg)
- return
- }
- return
- }
|