AbleCloud PHP SDK  1.8.x
PHP SDK of AbleCloud API
Public 成员函数 | Public 属性 | 所有成员列表
ACBridgeWeChat类 参考

Public 成员函数

 __construct ($accessToken, $jsTicket)
 
 setAccessToken ($accessToken)
 
 setJsTicket ($jsTicket)
 
 getUser ($openId)
 
 getUserOpenId ($userId)
 
 setPhone ($openId, $phone, $verifyCode)
 
 getDeviceQRCode ($physicalId, $subDomain, $withACShareCode=FALSE, $openId='', $timeout=300)
 
 wxBindDevice ($openId, $physicalId)
 
 wxUnbindDevice ($openId, $physicalId)
 
 getLastError ()
 
微信推送的事件的处理方法
 onEventSubscribe ($xmlMsg, $unionId='')
 
 onEventUnsubscribe ($xmlMsg)
 
 onDeviceEventBind ($xmlMsg, $deviceName, $subDomain)
 
 onDeviceEventUnbind ($xmlMsg, $subDomain)
 
 onDeviceEventSubscribeStatus ($xmlMsg, $doSync=TRUE)
 
 onDeviceEventUnsubscribeStatus ($xmlMsg, $doSync=TRUE)
 
信息同步方法。
 syncBindings ($openId, $physicalIdOfStatus='')
 
 syncBindingsByDevice ($physicalId, $deviceType, $subDomain)
 
 checkAndBindDevice ($openId, $physicalId, $deviceName, $subDomain)
 

Public 属性

const WXBindUrl = "https://api.weixin.qq.com/device/bind?access_token=ACCESS_TOKEN"
 
const WXCompelBindUrl = "https://api.weixin.qq.com/device/compel_bind?access_token=ACCESS_TOKEN"
 
const WXUnbindUrl = "https://api.weixin.qq.com/device/unbind?access_token=ACCESS_TOKEN"
 
const WXCompelUnbindUrl = "https://api.weixin.qq.com/device/compel_unbind?access_token=ACCESS_TOKEN"
 
const WXQRCodeUrl = "https://api.weixin.qq.com/device/create_qrcode?access_token=ACCESS_TOKEN"
 
const WXListDevicesUrl = "https://api.weixin.qq.com/device/get_bind_device?access_token=ACCESS_TOKEN&openid=OPENID"
 
const WXListUserUrl = "https://api.weixin.qq.com/device/get_openid?access_token=ACCESS_TOKEN&device_type=DEVICE_TYPE&device_id=DEVICE_ID"
 
const WXGetStatUrl = "https://api.weixin.qq.com/device/get_stat?access_token=ACCESS_TOKEN&device_id=DEVICE_ID"
 

详细描述

AbleCloud-微信公众号服务接口。 主要用于同步用户信息及用户与设备的绑定关系。

构造及析构函数说明

◆ __construct()

ACBridgeWeChat::__construct (   $accessToken,
  $jsTicket 
)

构造函数。

参数
$accessTokenstring 是微信公众号的Access Token。注意:微信的Access Token的有效期是有期限限制的。
$jsTicketstring 字符串,是微信公众号的JS API Ticket。注意:微信公众号的JS API Ticket的有效期是有期限限制的。

成员函数说明

◆ checkAndBindDevice()

ACBridgeWeChat::checkAndBindDevice (   $openId,
  $physicalId,
  $deviceName,
  $subDomain 
)

检查设备在微信平台的授权及绑定状态,并尝试绑定设备与指定的用户。

使用微信客户端扫描设备二维码绑定设备却无反应时,可能是因为:(1)设备未在微信平台授权;(2)或用户已经绑定了该设备。 本方法首先检查设备在微信平台的授权状态,其次检查设备是否已在微信平台绑定了该用户,之后尝试在AbleCloud平台绑定设备,并与微信平台同步用户绑定设备的信息。

参数
$openIdstring 拟要绑定设备的用户在微信平台的OpenID。
$physicalIdstring 要检查其状态并被绑定的设备在微信平台上的ID,即设备的物理ID。
$deviceNamestring 绑定设备和用户时,设备的显示名称。
$subDomainstring 设备在AbleCloud平台上所属的子域的名字。
返回
bool 操作成功时返回TRUE,否则返回FALSE。操作失败时可调用getLastError()方法获取错误信息。

◆ getDeviceQRCode()

ACBridgeWeChat::getDeviceQRCode (   $physicalId,
  $subDomain,
  $withACShareCode = FALSE,
  $openId = '',
  $timeout = 300 
)

获取设备的二维码:微信二维码(附加设备在AbleCloud平台上所属的子域的信息),还可选择是否附加AbleCloud分享码。附加的信息是以JSON格式的字符串表示的。

参数
$physicalIdstring 表示设备的物理ID。
$subDomainstring 表示设备在AbleCloud平台中所属的子域的名字。如果值不为空字符串,则会以第三方自定义数据的方式在微信标准二维码的末尾附加该子域信息。
$withACShareCodebool 为TRUE时表示需要附加设备的AbleCloud分享码,否则表示不需附加该信息。
$openIdstring $withShareCode为TRUE时,需要指定获取该分享码的用户的微信OpenID。仅设备的管理员用户有权限获取设备的分享码。
$timeoutint $withShareCode为TRUE时,需要指定分享码的有效时长。该参数的类型为整数,是以秒为单位指定分享码的有效时长。
返回
string 操作成功时返回制作设备二维码的字符串。依据参数设置,该字符串中可能包含AbleCloud平台的分享码。操作失败时返回空字符串,此时可调用getLastError()方法获取错误消息。

◆ getLastError()

ACBridgeWeChat::getLastError ( )

取最近一次错误消息。

返回
array 返回一个包含错误码和消息的关联数组:['errCode': 0, 'errMessage': '']。errCode为0时表示没有错误发生。

◆ getUser()

ACBridgeWeChat::getUser (   $openId)

获取开发者用户信息。

参数
$openIdstring 字符串,是要检查的微信用户的OpenID。
返回
ACUser 操作成功时返回ACUser对象,表示AbleCloud平台存储的用户信息。返回NULL表示失败,并且可调用getLastError()方法获取错误消息。

◆ getUserOpenId()

ACBridgeWeChat::getUserOpenId (   $userId)

获取用户的OpenId。

参数
$userIdint 整数,是用户在AbleCloud平台上的ID。
返回
string 返回一个字符串,表示用户在微信系统中对应的OpenID。如果返回值为空字符串,表示操作失败。此时,可调用getLastError()方法获取错误信息。

◆ onDeviceEventBind()

ACBridgeWeChat::onDeviceEventBind (   $xmlMsg,
  $deviceName,
  $subDomain 
)

微信推送消息:MsgType为"device_event",Event为"bind"时的响应函数:将微信记录的用户与设备的绑定关系同步到AbleCloud平台。

参数
$xmlMsgstring 微信推送的原始XML消息内容。
$deviceNamestring 字符串,表示设备的显示名。
$subDomainstring 字符串,是将要绑定的设备在AbleCloud平台上所属的子域的名字。如果设备的二维码信息中包含了其所属子域的名字,则以二维码中的信息为准。
返回
ACDevice 操作成功时返回ACDevice对象,表示绑定后设备的信息。失败时返回NULL,并且可调用getLastError()方法获取错误消息。

◆ onDeviceEventSubscribeStatus()

ACBridgeWeChat::onDeviceEventSubscribeStatus (   $xmlMsg,
  $doSync = TRUE 
)

微信推送消息:MsgType为"device_event",Event为"subscribe_status"时的响应函数:微信订阅设备状态信息(目前微信仅查询WIFI设备的状态信息)。

参数
$xmlMsgstring 微信推送的原始XML消息内容。
$doSyncbool 标记是否执行设备绑定状态的同步操作。同步设备绑定状态是指同步该设备在AbleCloud平台与微信平台上分别记录的绑定状态。该过程可能需要耗费一定的时间。缺省值为TRUE,表示需要执行同步操作。
返回
string 返回XML格式的文本内容,表示可回复给微信的设备状态信息。返回空字符串表示操作失败,并且可调用getLastError()方法获取错误消息。

◆ onDeviceEventUnbind()

ACBridgeWeChat::onDeviceEventUnbind (   $xmlMsg,
  $subDomain 
)

微信推送消息:MsgType为"device_event",Event为"unbind"时的响应函数:将微信记录的用户与设备解除绑定的关系同步到AbleCloud平台。

本方法解绑设备后会自动通知微信平台执行额外的设备绑定关系同步。

参数
$xmlMsgstring 微信推送的原始XML消息内容。
$subDomainstring 字符串,是要解绑的设备在AbleCloud平台上所属的子域的名字。
返回
bool 操作成功时返回TRUE;失败时返回FALSE,并且可调用getLastError()方法获取错误消息。

◆ onDeviceEventUnsubscribeStatus()

ACBridgeWeChat::onDeviceEventUnsubscribeStatus (   $xmlMsg,
  $doSync = TRUE 
)

微信推送消息:MsgType为"device_event",Event为"unsubscribe_status"时的响应函数:微信退订设备状态信息(目前微信仅查询WIFI设备的状态信息)。

参数
$xmlMsgstring 微信推送的原始XML消息内容。
$doSyncbool 标记是否执行设备绑定状态的同步操作。同步设备绑定状态是指同步该设备在AbleCloud平台与微信平台上分别记录的绑定状态。该过程可能需要耗费一定的时间。缺省值为TRUE,表示需要执行同步操作。
返回
string 返回XML格式的文本内容,表示可回复给微信的设备状态信息。返回空字符串表示操作失败,并且可调用getLastError()方法获取错误消息。

◆ onEventSubscribe()

ACBridgeWeChat::onEventSubscribe (   $xmlMsg,
  $unionId = '' 
)

微信推送消息:MsgType为"event",Event为"subscribe"时的响应函数:将微信用户注册为开发者所提供服务的用户。

参数
$xmlMsgstring 微信推送的原始XML消息内容。
$unionIdstring 字符串。是关注公众号的用户在微信平台对应的UnionID。如果不提供该参数,则无法识别同一个用户关注开发者的多个微信公众号的情况。
返回
ACUser 操作成功时返回ACUser对象,表示新注册的用户信息。失败时返回NULL,并且可调用getLastError()方法获取错误消息。

◆ onEventUnsubscribe()

ACBridgeWeChat::onEventUnsubscribe (   $xmlMsg)

微信推送消息:MsgType为"event",Event为"unsubscribe"时的响应函数:在AbleCloud平台中解除该用户与所有设备的绑定关系。

参数
$xmlMsgstring 微信推送的原始XML消息内容。
返回
bool 返回TRUE表示操作成功,否则返回FALSE。失败时,可调用getLastError()方法获取错误消息。

◆ setAccessToken()

ACBridgeWeChat::setAccessToken (   $accessToken)

设置/更新微信公众号的Access Token。

参数
$accessTokenstring 是新的Access Token。

◆ setJsTicket()

ACBridgeWeChat::setJsTicket (   $jsTicket)

设置/更新微信公众号的JS API Ticket。

参数
$jsTicketstring 是新的JS API Ticket。

◆ setPhone()

ACBridgeWeChat::setPhone (   $openId,
  $phone,
  $verifyCode 
)

设置用户的手机号。

参数
$openIdstring 字符串,是微信用户的OpenID。
$phonestring 字符串,是用户的新手机号。
$verifyCodestring 字符串,是用户修改手机号码的验证码。
返回
bool 操作成功时返回TRUE;否则返回FALSE,并且可调用getLastError()获取错误信息。

◆ syncBindings()

ACBridgeWeChat::syncBindings (   $openId,
  $physicalIdOfStatus = '' 
)

针对指定用户,同步AbleCloud平台与微信硬件平台记录的用户-设备绑定信息。同时检查指定设备的在线状态。

在响应微信硬件平台推送的subscribe_status/unsubscribe_status事件(比如用户打开/关闭公众号主界面)的方法 onDeviceEventSubscribeStatusonDeviceEventUnsubscribeStatus 中, 可选择性地调用本方法同步数据。开发者也可根据实际情况主动调用本方法同步数据,比如处理蓝牙设备绑定关系的同步,或者将用户从“家”或“房间”里移除之后。

参数
$openIdstring 待检查的用户的微信OpenID。
$physicalIdOfStatusstring 是要查询其在线状态的设备的物理ID。
返回
bool 返回TRUE表示待查询的设备在线;返回FALSE表示待查询的设备不在线。

◆ syncBindingsByDevice()

ACBridgeWeChat::syncBindingsByDevice (   $physicalId,
  $deviceType,
  $subDomain 
)

针对指定设备,同步AbleCloud平台与微信硬件平台记录的用户-设备绑定信息。

在调用AbleCloud平台提供的API解除了某用户与设备的绑定关系后,或者将设备从“房间”或“家”中移除后,开发者需要调用本方法在AbleCloud平台与微信平台之间同步设备与用户的绑定关系。 在其它情况下,开发者也可根据实际情况主动调用本方法同步数据。

参数
$physicalIdstring 是设备的物理ID。
$deviceTypestring 是本设备在微信公众号平台上的设备类型。
$subDomainstring 是本设备在AbleCloud平台上所属的子域的名字。
返回
bool 操作成功时返回TRUE;操作失败时返回FALSE,同时可调用方法getLastError()获取错误信息。

◆ wxBindDevice()

ACBridgeWeChat::wxBindDevice (   $openId,
  $physicalId 
)

通知微信绑定设备与用户。普通绑定失败时尝试强制绑定。

参数
$openIdstring 要绑定设备的用户的OpenID。
$physicalIdstring 要被绑定的设备在微信平台上的ID,即设备的物理ID。
返回
bool 成功时返回TRUE,否则可调用getLastError()方法获取错误信息。

◆ wxUnbindDevice()

ACBridgeWeChat::wxUnbindDevice (   $openId,
  $physicalId 
)

通知微信解绑设备。普通解绑失败时尝试强制解绑。

参数
$openIdstring 要解绑设备的用户的OpenID。
$physicalIdstring 要被解绑的设备在微信平台上的ID,即设备的物理ID。
返回
bool 成功时返回TRUE,否则可调用getLastError()方法获取错误信息。

类成员变量说明

◆ WXBindUrl

const ACBridgeWeChat::WXBindUrl = "https://api.weixin.qq.com/device/bind?access_token=ACCESS_TOKEN"

◆ WXCompelBindUrl

const ACBridgeWeChat::WXCompelBindUrl = "https://api.weixin.qq.com/device/compel_bind?access_token=ACCESS_TOKEN"

◆ WXCompelUnbindUrl

const ACBridgeWeChat::WXCompelUnbindUrl = "https://api.weixin.qq.com/device/compel_unbind?access_token=ACCESS_TOKEN"

◆ WXGetStatUrl

const ACBridgeWeChat::WXGetStatUrl = "https://api.weixin.qq.com/device/get_stat?access_token=ACCESS_TOKEN&device_id=DEVICE_ID"

◆ WXListDevicesUrl

const ACBridgeWeChat::WXListDevicesUrl = "https://api.weixin.qq.com/device/get_bind_device?access_token=ACCESS_TOKEN&openid=OPENID"

◆ WXListUserUrl

const ACBridgeWeChat::WXListUserUrl = "https://api.weixin.qq.com/device/get_openid?access_token=ACCESS_TOKEN&device_type=DEVICE_TYPE&device_id=DEVICE_ID"

◆ WXQRCodeUrl

const ACBridgeWeChat::WXQRCodeUrl = "https://api.weixin.qq.com/device/create_qrcode?access_token=ACCESS_TOKEN"

◆ WXUnbindUrl

const ACBridgeWeChat::WXUnbindUrl = "https://api.weixin.qq.com/device/unbind?access_token=ACCESS_TOKEN"

该类的文档由以下文件生成: