# 账号体系

## CloudUrlRequest

### 介绍

> &#x20;   云端API发送请求类，包含账户体系的所有请求

### 获取对象

```
CloudUrlRequest cloudUrlRequest = CloudUrlRequest.getInstance();
```

## 发送效验码

### 介绍

需要发送验证码的，通过此方法发送验证码

### 方法原型

```
/**
* 获取效验码
*
* @param phoneNumber 账号
* @param listener    验证码发送结果监听
*/
public void requestIdentifyingCode(@NonNull String phoneNumber, @NonNull final CloudUrlRequestListener listener);
```

### 调用

> &#x20;  使用CloudUrlRequest对象调用

### 参数介绍

* phoneNumber：需要发送验证码的手机号码
* listener：一个CloudUrlRequestListener对象，验证码发送结果监听

{% hint style="success" %}
请求成功调用CloudUrlRequestListener对象的onResponse(T response);方法，参数是一个IdentifyingCodeBean的Java bean对象，含有部分的请求返回数据。
{% endhint %}

{% hint style="warning" %}
请求失败调用CloudUrlRequestListener对象的onFailure(int errType);方法，参数请求错误的错误码，详情请参考错误码
{% endhint %}

## 账号注册

### 介绍

此方法用于注册账号

### 方法原型

```
/**
* 注册账号
*
* @param phoneNumber     账号
* @param password        密码
* @param password2       验证密码
* @param identifyingCode 验证码
* @param listener        注册结果监听
*/
public void requestRegister(@NonNull String phoneNumber, @NonNull String password, String password2, @NonNull int identifyingCode, @NonNull final CloudUrlRequestListener listener);
```

### 调用

* 使用CloudUrlRequest对象调用，此方法需要验证效验码，调用方法前需要调用发送验证码，详情请参考发送验证码

### 参数介绍

* phoneNumber:注册的手机号码
* password：输入注册账号的密码
* password2：重新确认密码
* identifyingCode：用户输入的验证码
* listener：一个CloudUrlRequestListener对象，注册账号结果监听

{% hint style="success" %}
请求成功调用CloudUrlRequestListener对象的onResponse(T response);方法，参数是一个RegisterBean的Java bean对象，含有注册的数据。
{% endhint %}

{% hint style="warning" %}
请求失败调用CloudUrlRequestListener对象的onFailure(int errType);方法，参数请求错误的错误码，详情请参考错误码
{% endhint %}

## 重置密码

### 介绍

此方法用于重置密码，需要验证码，密码是系统随机生成，并通过短信告知用户

### 方法原型

```
/**
* 重置密码
*
* @param phoneNumber     账号 
* @param identifyingCode 验证码
* @param listener        注册结果监听
*/
public void registerBackPassword(@NonNull String phoneNumber, @NonNull int identifyingCode, final @NonNull CloudUrlRequestListener listener)
```

### 调用

* 使用CloudUrlRequest对象调用，此方法需要验证效验码，调用方法前需要调用发送验证码，详情请参考发送验证码

### 参数介绍

* phoneNumber：账号
* identifyingCode：用户输入的验证码验证码
* listener：一个CloudUrlRequestListener对象，重置密码请求结果监听

{% hint style="success" %}
请求成功调用CloudUrlRequestListener对象的onResponse(T response);方法，参数是一个BackPasswordBean的Java bean对象。
{% endhint %}

{% hint style="warning" %}
请求失败调用CloudUrlRequestListener对象的onFailure(int errType);方法，参数请求错误的错误码，详情请参考错误码
{% endhint %}

## 找回密码

### 介绍

通过验证码重新设置密码，需要验证码

### 方法原型

```
/**
* 通过验证码修改账户密码
*
* @param phoneNumber     账号
* @param identifyingCode 验证码
* @param newPassword1    新密码
* @param newPassword2    确认密码
* @param listener        注册结果监听
*/
public void registerBackPassword(@NonNull String phoneNumber, @NonNull int identifyingCode, @NonNull String newPassword1, @NonNull String newPassword2, final CloudUrlRequestListener listener);
```

### 调用

* 使用CloudUrlRequest对象调用，此方法需要验证效验码，调用方法前需要调用发送验证码，详情请参考发送验证码

### 参数介绍

* phoneNumber：用户输入账号
* identifyingCode：用户输入的效验码
* newPassword1：用户输入的新密码
* newPassword2：用户确认输入的新密码
* listener：一个CloudUrlRequestListener对象，找回密码请求结果监听

{% hint style="success" %}
请求成功调用CloudUrlRequestListener对象的onResponse(T response);方法，参数是一个AlterPasswordBean的Java bean对象。
{% endhint %}

{% hint style="warning" %}
请求失败调用CloudUrlRequestListener对象的onFailure(int errType);方法，参数请求错误的错误码，详情请参考错误码
{% endhint %}

## 修改密码

### 介绍

可以使用这个方法用原密码修改当前账户的密码

### 方法原型

```
/**
* 修改账户密码
*
* @param phoneNumber  需要修改密码的账号
* @param oldPassword  旧密码
* @param newPassword1 新密码
* @param newPassword2 确认新密码
* @param listener     修改密码结果监听
*/
public void requestAlterPassword(@NonNull String phoneNumber, @NonNull String oldPassword, @NonNull String newPassword1, @NonNull String newPassword2, final CloudUrlRequestListener listener)
```

### 调用

使用CloudUrlRequest对象调用

### 参数介绍

* phoneNumber：需要修改密码的
* oldPassword：用户输入的原密码
* newPassword1：用户输入的新密码
* newPassword2：用户确认输入的新密码
* listener：一个CloudUrlRequestListener对象，找回密码请求结果监听

{% hint style="success" %}
功调用CloudUrlRequestListener对象的onResponse(T response);方法，参数是一个AlterPasswordBean的Java bean对象。
{% endhint %}

{% hint style="warning" %}
请求失败调用CloudUrlRequestListener对象的onFailure(int errType);方法，参数请求错误的错误码，详情请参考错误码
{% endhint %}

## 登录

### 介绍

用于账号和密码登录

### 方法原型

```
/**
* 登录账号
*
* @param phoneNumber 账号
* @param password    密码
* @param listener    注册结果监听
*/
public synchronized void requestLogging(@NonNull String phoneNumber, @NonNull String password, @NonNull final CloudUrlRequestListener listener);
```

### 调用

* 使用CloudUrlRequest对象调用

### 参数介绍

* phoneNumber：用户输入账号
* password：用户输入的密码
* listener：一个CloudUrlRequestListener对象，登录请求结果监听

{% hint style="success" %}
请求成功调用CloudUrlRequestListener对象的onResponse(T response);方法，参数是一个LoginBean的Java bean对象。
{% endhint %}

{% hint style="warning" %}
请求失败调用CloudUrlRequestListener对象的onFailure(int errType);方法，参数请求错误的错误码，详情请参考错误码
{% endhint %}
