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\"}"
}

参数说明

参数类型必填说明
countnumber生成二维码的数量
contentstring (JSON)二维码数据内容数组,用于后续重新下载
namesstring (JSON)二维码文件名数组
settingsstring (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
}

参数说明

参数类型必填说明
recordIdstring生成记录的 ID
indexnumber二维码在批次中的索引,默认 0
formatstring输出格式,默认 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"
    }
  }
}

字段说明

字段类型说明
isMemberboolean是否为会员
planNamestring会员方案名称
planTierstring等级标识:free / basic / premium / annual / premium-annual
retentionDaysnumber下载保留天数
subscriptionobject订阅详情,非会员为 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_idstring定价表中的产品 ID
currencystring币种,默认根据 locale 自动切换
localestring语言
payment_providerstring支付方式:stripe / wechat / paypal / creem

响应

{
  "code": 0,
  "data": {
    "sessionId": "prepay_id_xxx",
    "checkoutUrl": "https://...",
    "orderNo": "1234567890"
  }
}

微信支付时 checkoutUrl 为二维码链接,需展示为二维码供用户扫码。


错误码说明

HTTP 状态码说明
200成功
400请求参数错误
401未登录
403无权限
404资源不存在
410资源已过期(超出保留期)
500服务器内部错误