---
name: "saveTempOnlineUnlimited"
mode: "api"
versionRequirements:
  - { name: "@ray-js/lock-sdk", version: "1.0.0" }
title: "saveTempOnlineUnlimited - 保存在线不限次数密码，适用于 WiFi 拍照锁设备。"
summary: "保存在线不限次数密码，适用于 WiFi 拍照锁设备。"
---

## saveTempOnlineUnlimited

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

> 💡 此 API 为 WiFi Pro 锁专用，其他锁请勿使用。

### 描述

保存在线不限次数密码

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `params` | `CreateOnlineUnlimitedParams` | 是 | 入参 |

### 返回值

类型: `Promise<SaveTempOnlineUnlimitedResult>`

无（保存成功后 resolve）

##### SaveTempOnlineUnlimitedResult

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `type` | `"custom"` | 密码类型；本接口固定为 `custom`（自定义不限次） |
| `name` | `string` | 密码名称 |
| `pwdId` | `string` | 云端密码 id；后续删除/修改按此定位 |
| `effectiveConfig` | `EffectiveConfig` | 生效配置（生效/失效时间与按周重复设置） |

### 错误码

| 错误码 | 错误信息 |
| --- | --- |
| `1030` | 密码格式不合法 |
| `1031` | 密码名称过长（超过 20 字符） |
| `1032` | 缺少生效时间配置 |
| `1033` | 缺少生效日期 |
| `1034` | 缺少过期日期 |
| `1010` | 生效时间大于过期时间 |
| `1035` | 周重复模式下未传入 weeks |
| `1037` | 云端：密码已存在（USER_PWD_ALREADY_EXIST） |
| `1038` | 云端：密码名称重复（LOCK_PWD_NAME_REPEAT） |
| `1039` | 云端：时间参数不正确（START_END_DATE_NOT_RIGHT） |

### 引用对象

##### `interface` CreateOnlineUnlimitedParams

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `password` | `string` | 密码内容，必须是数字 |
| `name` | `string` | 密码名称，长度不能超过 20 |
| `effective` | `EffectiveConfig` | 密码时效配置 |
| `phone` | `string` | 短信通知手机号；有值表示开启短信 |
| `countryCode` | `string` | 短信国家码 |

##### `interface` EffectiveConfig

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `effectiveDate` | `number` | 生效日（秒级时间戳） |
| `expiredDate` | `number` | 失效日（秒级时间戳） |
| `repeat` | `"none" \| "week"` | 重复策略：无或按周 |
| `weeks` | `Week` | 周重复位图 |
| `effectiveTime` | `number` | 每日生效开始时间，单位：分钟 |
| `expiredTime` | `number` | 每日失效结束时间，单位：分钟 |

##### `type` Week

周重复位图：下标 0–6 对应周日–周六，0 不生效 1 生效

```typescript
export type Week = [
  BitStatus,
  BitStatus,
  BitStatus,
  BitStatus,
  BitStatus,
  BitStatus,
  BitStatus,
];
```


### 示例代码

```ts
import { saveTempOnlineUnlimited } from '@ray-js/lock-sdk';
saveTempOnlineUnlimited({ password: '654321', name: '不限次密码' });
```
