# Authorize

> 建议使用 [WMPFAccountApi.login](/doc/oplatform/Miniprogram_Frame/api/cli/account/login) 接口.

用于调起二维码登录

## 调用参数

| 属性          | 说明                                                         |
| ------------- | ------------------------------------------------------------ |
| needOauthCode | 是否需要微信登录凭据，默认为 false。传 true 时需确认该 hostAppId 是否有开发者资质，否则无效 |

## 返回参数

| 属性      | 说明                                                         |
| --------- | ------------------------------------------------------------ |
| oauthCode | 微信登录授权凭据，详细见[文档](/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.md) |

## 示例代码

```kotlin
val request = WMPFAuthorizeRequest()
request.baseRequest = WMPFBaseRequestHelper.checked()
// 需要 OauthCode，将该变量置为 true
// OauthCode 需要 BuildConfig.HOST_APPID 有开发者资质
request.needOauthCode = needOauthCode

val result = WMPFIPCInvoker.invokeAsync<IPCInvokerTask_Authorize,
        WMPFAuthorizeRequest, WMPFAuthorizeResponse>(
    request,
    IPCInvokerTask_Authorize::class.java
) { response ->
    Log.i(response)
    if (isSuccess(response)) {
        it.onSuccess(response)
    } else {
        it.onError(TaskErrorException(createTaskError(response)))
    }
}

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

## 常见问题

若调用接口后报错，errMsg 包含错误码 10006（应用无小程序登录权限），可按下列步骤操作：
  1. 在「微信终端合作平台」-「查询设备状态」中，确认是否有注册过对应 deviceId 的设备；
  2. 若未查询找到相关设备或查询参数有误，请重新调用 addDevice 注册设备，并填入**正确**的 deviceId 以及 modelName。**支付设备的 modelName 请在商户支付商户平台查找**
