UpdatePwd 修改密码
账号授权模式下的密码修改入口:校验原密码后,把账号密码更新为新密码。
| 项目 | 值 |
|---|---|
| action | UpdatePwd |
| 入口 | Handle POST https://www.a7p.cn/api/verify/{ApiPassword} |
| 是否计入验证统计 | 否 |
调用步骤
- 完成 Init 握手,拿到
ApiPassword。 - 拼接明文:
action=UpdatePwd&UserName=账号&OldPassword=原密码&NewPassword=新密码。 - RC4 加密 + MD5 签名,POST 到 Handle 接口。
code == 200→ 密码修改成功,下次登录使用新密码。
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 是 | 固定值 UpdatePwd |
UserName | string | 是 | 用户名。等价别名:username |
OldPassword | string | 是 | 原密码(明文,已由 RC4 整体加密)。等价别名:OldPwd |
NewPassword | string | 是 | 新密码。等价别名:NewPwd |
明文示例:
text
action=UpdatePwd&UserName=testuser01&OldPassword=123456&NewPassword=abcdef业务规则
- 三个字段缺一不可,缺失返回
1013。 - 用户名不存在返回
1016。 - 原密码不匹配返回
1003,建议提示用户「原密码错误」。
请求示例
python
# 复用 /api/handle 页面中的 handle() 与 rc4() 函数
API_PW = "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6"
plain = "action=UpdatePwd&UserName=testuser01&OldPassword=123456&NewPassword=abcdef"
result = handle(API_PW, plain)
code = result["code"]
if code == 200:
print("密码修改成功")
elif code == 1016:
print("用户未注册")
elif code == 1003:
print("原密码错误")
else:
print(f"修改失败 {code}: {result['message']}")csharp
// 复用 /api/handle 页面中的 A7Client
var client = new A7Client(apiPassword);
string plain = "action=UpdatePwd&UserName=testuser01&OldPassword=123456&NewPassword=abcdef";
JsonElement result = await client.HandleAsync(plain);
int code = result.GetProperty("code").GetInt32();
switch (code)
{
case 200:
Console.WriteLine("密码修改成功");
break;
case 1016:
Console.WriteLine("用户未注册");
break;
case 1003:
Console.WriteLine("原密码错误");
break;
default:
Console.WriteLine($"修改失败 {code}: {result.GetProperty("message").GetString()}");
break;
}javascript
// 复用 /sdk/nodejs 中的 A7Client
const client = new A7Client({ appId: '150018', appKey: 'YOUR_APP_KEY' })
await client.init()
const result = await client.call('UpdatePwd', {
UserName: 'testuser01',
OldPassword: '123456',
NewPassword: 'abcdef',
})
if (result.code === 200) {
console.log('密码修改成功')
} else if (result.code === 1003) {
console.log('原密码错误')
} else {
console.error(`修改失败 ${result.code}: ${result.message}`)
}text
.版本 2
.子程序 A7_修改密码, 逻辑型
.参数 ApiPassword, 文本型
.参数 账号, 文本型
.参数 原密码, 文本型
.参数 新密码, 文本型
.局部变量 TimeStamp, 文本型
.局部变量 加密参数, 文本型
.局部变量 Sign, 文本型
.局部变量 返回文本, 文本型
.局部变量 状态码, 文本型
TimeStamp = 到文本 (时间_取现行时间戳 ())
加密参数 = RC4加密 (ApiPassword, "action=UpdatePwd&UserName=" + 账号 + "&OldPassword=" + 原密码 + "&NewPassword=" + 新密码)
Sign = 取数据摘要 (到字节集 (ApiPassword + TimeStamp + 加密参数))
返回文本 = 到文本 (网页_访问 ("https://www.a7p.cn/api/verify/" + ApiPassword, 1, "TimeStamp=" + TimeStamp + "&Sign=" + Sign + "&Data=" + 加密参数))
状态码 = JSON_解析 (返回文本, "code")
.判断开始 (状态码 = "200")
返回 (真)
.判断 (状态码 = "1003")
信息框 ("原密码错误", 0, )
.默认
信息框 ("修改失败:" + JSON_解析 (返回文本, "message"), 0, )
.判断结束
返回 (假)成功响应
json
{
"code": 200,
"message": "success",
"data": { "username": "testuser01" }
}| 字段 | 类型 | 说明 |
|---|---|---|
username | string | 已修改密码的用户名 |
失败响应
json
{ "code": 1013, "message": "参数不完整: UserName, OldPassword, NewPassword 必填", "data": null }json
{ "code": 1016, "message": "用户未注册", "data": null }json
{ "code": 1003, "message": "原密码错误", "data": null }错误码
| 错误码 | 含义 | 解决方案 |
|---|---|---|
1013 | 参数不完整 | UserName、OldPassword、NewPassword 必填 |
1016 | 用户未注册 | 引导先调用 UserRegin |
1003 | 原密码错误 | 提示用户重新输入原密码 |
完整列表见错误码对照表。
相关文档
- UserRegin 用户注册
- UserLogin 用户登录
- SDK 实现:易语言 · C# · Python · Node.js