支付宝自动化
  1. 闲蛋云端 - V2.0
支付宝自动化
  • 闲蛋云端 - V2.0
    • 支付宝开放平台开发者登录 API 使用说明 Copy
  1. 闲蛋云端 - V2.0

支付宝开放平台开发者登录 API 使用说明 Copy

功能概述#

该功能提供支付宝开放平台(open.alipay.com)的扫码登录能力,使用与个人支付宝账号登录相同的技术实现方式。

⚠️ 授权限制说明#

重要提示:AlipayOpen 功能受到授权到期时间的限制:
✅ 当授权到期时间 ≥ 30天 时,所有 AlipayOpen 功能正常可用
❌ 当授权到期时间 < 30天 时,AlipayOpen 功能将被自动禁用
🔄 续费后重启服务即可恢复功能
禁用时的响应示例:
{
  "code": "-1",
  "msg": "[闲蛋云端] AlipayOpen功能已禁用:授权到期时间不足30天,请续费"
}
影响范围:所有 /AlipayOpen/* 相关接口都会受到此限制的影响。

快速开始#

方式一:使用Web界面(推荐)#

直接访问登录页面,通过可视化界面完成登录:
http://localhost:9000/AlipayOpen/Login
功能特性:
✅ 自动获取并显示二维码
✅ 实时显示登录状态(等待扫码、已扫码、登录成功)
✅ 自动轮询检查登录状态
✅ 登录成功后显示Cookies
✅ 一键复制Cookies到剪贴板
✅ 支持刷新二维码

方式二:使用API接口#

通过API接口集成到自己的系统中。

技术实现#

采用与支付宝个人账号登录相同的Session机制
登录页面: https://auth.alipay.com/login/ant_sso_index.htm?redirectType=self&bizFrom=openhome&goto=...
二维码: 通过解析登录页面HTML提取 securityId 生成
状态检查: 使用支付宝官方API https://securitycore.alipay.com/barcode/barcodeProcessStatus.json
降级方案: 页面关键字匹配(扫码成功、已扫码、登录成功等)

API 接口#

0. 登录页面(推荐使用)#

接口地址: /AlipayOpen/Login
请求方法: GET
说明: 访问此页面可直接使用可视化界面完成登录,无需手动调用API。

1. 创建登录会话并获取二维码#

接口地址: /AlipayOpen/CreateID
请求方法: GET 或 POST
请求参数:
uuid: 客户端生成的唯一标识符(必填)
建议使用UUID v4格式
示例:550e8400-e29b-41d4-a716-446655440000
每次请求必须使用新的UUID,不能重复
请求示例:
响应示例:
{
  "code": "1",
  "msg": "success",
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "qrcode_url": "https://qr.alipay.com/_d?securityId=xxx",
    "qrcode_base64": "data:image/png;base64,iVBORw0KGgoAAAANS...",
    "status": "waiting"
  }
}
字段说明:
id: 返回客户端提供的UUID(用于后续查询登录状态)
qrcode_url: 二维码链接地址(支付宝原始URL)
qrcode_base64: 二维码图片的Base64编码(PNG格式,256x256像素,可直接在img标签中使用)
status: 当前状态
waiting: 等待扫码
scanned: 已扫码,等待确认
confirmed: 已确认登录
expired: 二维码已过期
错误响应:
{
  "code": "-1",
  "msg": "缺少uuid参数"
}
或
{
  "code": "-1",
  "msg": "uuid已存在,请使用新的uuid"
}

2. 刷新登录(重新获取二维码)#

接口地址: /AlipayOpen/RefreshLogin
请求方法: GET 或 POST
说明: 保留会话的应用信息(AppID、AppName、公私钥等),只更新登录状态和cookies
请求参数:
uuid: 已存在的会话UUID(必填)
请求示例:
响应示例:
{
  "code": "1",
  "msg": "success",
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "qrcode_url": "https://qr.alipay.com/_d?securityId=xxx",
    "qrcode_base64": "data:image/png;base64,iVBORw0KGgoAAAANS...",
    "status": "waiting",
    "app_id": "2021001234567890",
    "app_name": "我的应用"
  }
}

3. 检查登录状态#

接口地址: /AlipayOpen/IsLoginStatus
请求方法: GET
请求参数:
id: 会话ID(必填)
响应示例:
{
  "code": "1",
  "msg": "success",
  "status": "confirmed",
  "data": {
    "id": "abc123...",
    "status": "confirmed",
    "cookies": [
      {
        "name": "ALIPAYJSESSIONID",
        "value": "xxx",
        "domain": ".alipay.com",
        "path": "/",
        "expires": "2024-01-01T00:00:00Z"
      }
    ]
  }
}

4. 查询已有应用#

接口地址: /AlipayOpen/QueryApps
请求方法: GET 或 POST
说明: 查询当前登录账号下的所有WEBAPP类型应用
请求参数:
uuid: 会话UUID(必填)
cookies: 可选,前端发送的cookies数组
请求示例:
响应示例:
{
  "code": "1",
  "msg": "success",
  "data": {
    "has_webapp": true,
    "apps": [
      {
        "appId": "2021001234567890",
        "appName": "测试应用",
        "appType": "WEBAPP",
        "status": "ON_LINE"
      }
    ],
    "logon_id": "example@example.com"
  }
}

5. 创建网页应用#

接口地址: /AlipayOpen/CreateApp
请求方法: POST
说明: 在支付宝开放平台创建一个新的网页应用(WEBAPP)
请求参数:
uuid: 会话UUID(必填)
app_name: 应用名称(必填)
app_icon: 应用图标URL(可选)
cookies: 可选,前端发送的cookies数组
请求示例:
响应示例:
{
  "code": "1",
  "msg": "应用创建成功",
  "data": {
    "app_name": "我的测试应用",
    "app_icon": "https://example.com/icon.png",
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "principal_id": "2088123456789012",
    "logon_id": "example@example.com",
    "app_id": "2021001234567890"
  }
}

6. 发送手机验证码#

接口地址: /AlipayOpen/SendCode
请求方法: POST
说明: 发送手机验证码(用于后续设置应用签名验证)
请求参数:
uuid: 会话UUID(必填)
mobile_no: 手机号码(必填)
请求示例:
响应示例:
{
  "code": "1",
  "msg": "验证码发送成功",
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "mobile_no": "13800138000"
  }
}

7. 验证手机验证码#

接口地址: /AlipayOpen/VerifyCode
请求方法: POST
说明: 验证手机验证码(验证通过后才能设置应用签名)
请求参数:
uuid: 会话UUID(必填)
check_code: 验证码(必填)
rds_token: 风控token(可选)
请求示例:
响应示例:
{
  "code": "1",
  "msg": "验证码验证成功",
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "check_code": "123456",
    "cookies": [...]
  }
}

8. 设置应用签名#

接口地址: /AlipayOpen/SetSignature
请求方法: POST
说明: 为应用设置RSA2签名(自动生成公私钥对)
前置条件: 必须先完成手机验证码验证
请求参数:
uuid: 会话UUID(必填)
app_id: 应用ID(必填)
cookies: 验证后的cookies(必填)
请求示例:
响应示例:
{
  "code": "1",
  "msg": "签名设置成功",
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "app_id": "2021001234567890",
    "public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBg...",
    "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBA..."
  }
}

9. 提交应用审核#

接口地址: /AlipayOpen/SubmitAudit
请求方法: POST
说明: 提交应用上线审核
请求参数:
uuid: 会话UUID(必填)
app_id: 应用ID(必填)
app_name: 应用名称(必填)
请求示例:
响应示例:
{
  "code": "1",
  "msg": "提交审核成功",
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "app_id": "2021001234567890",
    "app_name": "我的测试应用"
  }
}

10. 查询审核状态#

接口地址: /AlipayOpen/CheckAuditStatus
请求方法: GET 或 POST
说明: 查询应用审核状态
请求参数:
uuid: 会话UUID(必填)
app_id: 应用ID(可选,不填则使用会话中的app_id)
请求示例:
响应示例:
{
  "code": "1",
  "msg": "success",
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "app_id": "2021001234567890",
    "status": "ON_LINE",
    "status_desc": "已上线"
  }
}
状态说明:
ON_LINE: 已上线
AUDIT: 审核中
INIT: 初始化
REJECTED: 审核拒绝
OFFLINE: 已下线

完整工作流程#

创建新应用的完整流程#

1.
创建登录会话
POST /AlipayOpen/CreateID
2.
轮询检查登录状态
GET /AlipayOpen/IsLoginStatus?id=xxx
3.
查询现有应用(可选)
POST /AlipayOpen/QueryApps
4.
创建新应用
POST /AlipayOpen/CreateApp
5.
发送验证码
POST /AlipayOpen/SendCode
6.
验证验证码
POST /AlipayOpen/VerifyCode
7.
设置应用签名
POST /AlipayOpen/SetSignature
8.
提交审核
POST /AlipayOpen/SubmitAudit
9.
查询审核状态
POST /AlipayOpen/CheckAuditStatus

错误码说明#

错误码说明
1成功
-1失败(具体原因见msg字段)
常见错误消息:
缺少uuid参数: 请求中缺少必填的uuid参数
uuid已存在,请使用新的uuid: 该uuid已被使用,请生成新的
会话不存在: 指定的uuid对应的会话不存在
尚未登录或登录已过期: 需要重新登录
未找到ctoken,请重新登录: Cookie失效,需重新登录
AlipayOpen功能已禁用:授权到期时间不足30天,请续费: 授权即将到期
method not allowed: HTTP方法不正确

使用示例#

JavaScript 示例#

Go 示例#

注意: 需要安装UUID库:go get github.com/google/uuid

注意事项#

1.
授权限制
当授权到期时间小于30天时,所有AlipayOpen功能将被禁用
请及时续费以保证功能正常使用
2.
二维码有效期
二维码有效期有限,建议在创建后尽快扫码
如果二维码过期,可使用 /AlipayOpen/RefreshLogin 接口刷新
3.
状态检查频率
轮询检查登录状态的间隔建议为2-3秒
避免过于频繁的请求,以免被限流
4.
Cookie管理
登录成功后会返回cookies,可用于后续API调用
Cookies有有效期,过期后需要重新登录
验证码验证成功后返回的cookies必须用于后续的签名设置操作
5.
会话持久化
会话信息会保存到 open_sessions.json 文件
服务重启后会自动加载已有会话
可以通过UUID恢复之前的工作流程
6.
应用创建流程
创建应用 → 发送验证码 → 验证验证码 → 设置签名 → 提交审核
每个步骤都有前置条件,必须按顺序执行
设置签名需要先完成手机验证码验证
7.
密钥管理
系统会自动生成RSA2密钥对(2048位)
私钥非常重要,请妥善保管
不要将私钥泄露或提交到代码仓库

技术支持#

如有问题或建议,请联系技术支持或查看项目文档。

更新日期: 2026-01-12
版本: v2.0
修改于 2026-01-12 05:40:26
Built with