# ActivateDeviceByIoT

对于使用这种方式激活的设备,所有其他接口都需在该接口调用成功后才能使用,失败时请重试。

支付设备通过 IOT 方式直接激活设备。

仅 WMPF < 2.1.0 支持

# 调用参数

属性 说明
hostAppId 移动应用的 AppId ,微信开放平台申请

# 返回参数

属性 说明
invokeToken 调用凭证,用于后续操作

# 示例代码

val request = WMPFActivateDeviceByIoTRequest().apply {
    this.baseRequest = WMPFBaseRequestHelper.checked()
    this.hostAppId = hostAppId
}

val result = WMPFIPCInvoker.invokeAsync<IPCInvokerTask_ActivateDeviceByIoT,
        WMPFActivateDeviceByIoTRequest, WMPFActivateDeviceByIoTResponse>(
    request,
    IPCInvokerTask_ActivateDeviceByIoT::class.java,
    object : IPCInvokeCallbackEx<WMPFActivateDeviceByIoTResponse> {
        override fun onBridgeNotFound() {
            it.onError(Exception("bridge not found"))
        }

        override fun onCallback(response: WMPFActivateDeviceByIoTResponse) {
            if (isSuccess(response)) {
                if (response != null && !response.invokeToken.isNullOrEmpty()) {
                    initInvokeToken(response.invokeToken)
                }

                it.onSuccess(response)
            } else {
                it.onError(TaskErrorException(createTaskError(response)))
            }
        }

        override fun onCaughtInvokeException(exception: java.lang.Exception?) {
            if (exception != null) {
                it.onError(exception)
            } else {
                it.onError(java.lang.Exception("null"))
            }
        }
    })

if (!result) {
    it.onError(Exception("invoke activateDeviceByIoT fail"))
}

# 注意

  • 强烈推荐注册 onBridgeNotFound 、onCallback 失败回调,一旦激活失败,请重试。
  • 可以先通过 AuthorizeStatus 判断是否设备是否已激活。