API 文档
DDSM批量二维码生成器的 API 接口文档,支持编程方式批量生成和下载二维码。
概述
DDSM 提供 HTTP API 接口,允许开发者以编程方式批量生成和下载二维码。所有 API 均以 JSON 格式返回。
基础URL
https://ddsm.com/api认证
目前 API 无需认证即可调用。后续版本将增加 API Key 认证机制。
生成二维码
记录二维码生成次数,用于统计和下载保留时长管理。
请求
POST /api/qr/generate
Content-Type: application/json
{
"count": 10,
"content": "[\"https://example.com\",\"https://example2.com\"]",
"names": "[\"链接1\",\"链接2\"]",
"settings": "{\"size\":200,\"format\":\"image/png\",\"errorLevel\":\"M\"}"
}参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
count | number | 是 | 生成二维码的数量 |
content | string (JSON) | 否 | 二维码数据内容数组,用于后续重新下载 |
names | string (JSON) | 否 | 二维码文件名数组 |
settings | string (JSON) | 否 | 生成设置,包含 size、format、errorLevel 等 |
响应
{
"success": true
}重新下载二维码
从历史记录中重新下载已生成的二维码,受会员保留时长限制。
请求
GET /api/qr/download?recordId=xxx&index=0或 POST 方式:
POST /api/qr/download
Content-Type: application/json
{
"recordId": "xxx",
"index": 0
}参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
recordId | string | 是 | 生成记录的 ID |
index | number | 否 | 二维码在批次中的索引,默认 0 |
format | string | 否 | 输出格式,默认 image/png |
响应
成功时直接返回二维码图片文件(Content-Type: image/png 或 image/svg+xml)。
超出保留期时返回:
{
"error": "该记录已超出下载保留期(7 天),请升级会员获取更长的保留时长",
"retentionDays": 7,
"expired": true
}检查会员状态
获取当前登录用户的会员状态和下载保留时长。
请求
POST /api/user/member-status响应
{
"code": 0,
"data": {
"isMember": true,
"planName": "年度会员",
"planTier": "annual",
"retentionDays": 365,
"subscription": {
"status": "active",
"planName": "年度会员",
"currentPeriodEnd": "2026-06-18T00:00:00.000Z"
}
}
}字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
isMember | boolean | 是否为会员 |
planName | string | 会员方案名称 |
planTier | string | 等级标识:free / basic / premium / annual / premium-annual |
retentionDays | number | 下载保留天数 |
subscription | object | 订阅详情,非会员为 null |
保留时长对照
| 等级 | 保留天数 |
|---|---|
| 免费 | 7 天 |
| 月度会员 | 30 天 |
| 高级月度 | 90 天 |
| 年度会员 | 365 天 |
| 高级年度 | 永久 |
获取用户信息
获取当前登录用户的基本信息和积分余额。
请求
POST /api/user/get-user-info响应
{
"code": 0,
"data": {
"id": "xxx",
"name": "用户名",
"email": "user@example.com",
"isAdmin": false,
"credits": {
"remainingCredits": 100
}
}
}支付结账
创建支付订单并获取支付链接(用于开通会员)。
请求
POST /api/payment/checkout
Content-Type: application/json
{
"product_id": "member-monthly",
"currency": "CNY",
"locale": "zh",
"payment_provider": "wechat"
}参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
product_id | string | 是 | 定价表中的产品 ID |
currency | string | 否 | 币种,默认根据 locale 自动切换 |
locale | string | 否 | 语言 |
payment_provider | string | 否 | 支付方式:stripe / wechat / paypal / creem |
响应
{
"code": 0,
"data": {
"sessionId": "prepay_id_xxx",
"checkoutUrl": "https://...",
"orderNo": "1234567890"
}
}微信支付时
checkoutUrl为二维码链接,需展示为二维码供用户扫码。
错误码说明
| HTTP 状态码 | 说明 |
|---|---|
| 200 | 成功 |
| 400 | 请求参数错误 |
| 401 | 未登录 |
| 403 | 无权限 |
| 404 | 资源不存在 |
| 410 | 资源已过期(超出保留期) |
| 500 | 服务器内部错误 |