---
name: "addPassword"
mode: "api"
versionRequirements:
  - { name: "@ray-js/lock-sdk", version: "1.0.0" }
title: "addPassword - 添加开锁密码。"
summary: "添加开锁密码。"
---

## addPassword

> [VERSION] @ray-js/lock-sdk >= 1.0.0

### 描述

添加密码类开锁方式。

### 参数

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `password` | `string` | 是 | 密码内容 |
| `userId` | `string` | 是 | 用户 id |
| `name` | `string` | 是 | 开锁方式名称 |
| `isSpecial` | `boolean` | 否 | 是否特殊开锁方式 |
| `specialInfo` | `SpecialUnlockMethodInfo` | 否 | 特殊开锁方式配置信息 |

##### SpecialUnlockMethodInfo 的属性

| 属性 | 类型 | 必填 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `appSend` | `boolean` | 否 | - | 是否支持 App 消息通知 |
| `msgSend` | `boolean` | 否 | - | 是否支持短信通知 |
| `msgPhone` | `string` | 否 | - | 短信通知手机号 |
| `verifyCode` | `string` | 否 | - | 手机验证码 |
| `countryCode` | `string` | 否 | - | 短信通知国家码 |


### 返回值

类型: `Promise<CreateUnlockMethodResult>`

无（添加成功后 resolve）

##### CreateUnlockMethodResult

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `opModeId` | `number` | 开锁方式 id |
| `unlockName` | `string` | 开锁方式名称 |

### 错误码

| 错误码 | 错误信息 |
| --- | --- |
| `1054` | 密码为空 |
| `1057` | 不支持特殊密码且未开启 App 推送 |
| `1058` | 支持短信但未开启 App 推送且未开启短信 |
| `1066` | 短信号码为空 |
| `1056` | 国家码为空 |
| `1055` | 验证码为空 |
| `1014` | 不支持该开锁方式类型 |
| `1001` | 设备不在线 |
| `1002` | 操作超时 |
| `1015` | ~1025 设备上报添加失败（status 0~10） |
| `1026` | 设备上报添加失败（status 0xfe） |
| `1037` | 云端：密码已存在（USER_PWD_ALREADY_EXIST） |
| `1038` | 云端：密码名称重复（LOCK_PWD_NAME_REPEAT） |
| `1040` | 云端：记录不存在（RECORD_NOT_EXIST） |

### 示例代码

#### 示例

```ts
import { addPassword } from '@ray-js/lock-sdk';
await addPassword({ password: '123456', userId: 'user_001', name: '日常密码' });
```
