# 土豆api自动精灵SDK

# 介绍

土豆api自动精灵sdk,支持所有的加密,所有的验签,支持所有的接口,一键接入,轻松调用

# 项目地址

https://gitee.com/chengdu-xuda-network/potatocloudzdjlsdk (opens new window)

# 准备工作

  1. 下载土豆API (opens new window)
  2. 注册土豆API账号
  3. 创建一个APP应用
  4. 下载自动精灵 (opens new window)

# 使用步骤

  1. 下载SDK (opens new window)可在脚本市场中搜索【土豆API_SDK】
  2. 导入SDK代码
  3. 配置TD对象
  4. 调用对应函数

# 注意事项

  • SDK只为快速开发提供,具体使用需自行斟酌
  • 签名密钥、请求密钥、加密密钥请勿外传

# TD对象配置示例

{
  url: "https://api.potatocloud.cn", // 请求地址/域名,默认官方地址
  askKey: "", // 请求密钥,从土豆API控制台获取
  signKey: "", // 签名密钥,用于请求签名验证
  signType: 3, // 验签类型:0=不验签,1=V1签名,2=V2签名,3=V3签名
  responseEncryptType: 1, // 请求加密类型:0=不加密,1=Base64,2=AES,3=DES,4=AES无填充,5=RC4
  requestEncryptType: 1, // 响应加密类型:0=不加密,1=Base64,2=AES,3=DES,4=AES无填充,5=RC4
  encryptSecretKey: "" // 加密密钥,用于数据加密解密
};
1
2
3
4
5
6
7
8
9

# 验签类型说明

类型 说明 安全性
0 int 不进行签名验证
1 int V1签名,仅使用时间戳
2 int V2签名,使用时间戳和请求数据
3 int V3签名,使用时间戳、请求数据和随机字符串 极高

# 加密类型说明(请求 / 响应通用)

类型 加密方式 详细说明
0 int 不加密 数据传输过程中不进行任何加密处理,明文传输
1 int Base64 采用 Base64 编码方式处理数据(非加密,仅编码)
2 int AES/ECB/PKCS5Padding 对称加密:AES 算法,ECB 模式,PKCS5Padding 填充方式
3 int DES/ECB/PKCS7 对称加密:DES 算法,ECB 模式,PKCS7 填充方式
4 int AES/ECB/NOPadding 对称加密:AES 算法,ECB 模式,无填充(需确保密钥为 16 位)
5 int RC4 流加密:RC4 对称加密算法,使用指定密钥进行数据加密

# API 接口列表

1. 发送注册邮箱验证码
potatoapi('/api/sendEmailMessage', "POST", {
  "userNumber": "10086", // 用户名
  "email": "3328842962@qq.com" // 邮箱
})
1
2
3
4
2. 用户注册
potatoapi('/api/register', "POST", {
  "userNumber": "potatoapi",  // 账号
  "email": "3328842962@qq.com", // 邮箱
  "passWord": "potato123456", // 密码
  "code": "666666" // 验证码
})
1
2
3
4
5
6
3. 用户注册V2
potatoapi('/api/registerV2', "POST", {
  "userNumber": "potatoapi", // 账号
  "passWord": "potato123456" // 密码
})
1
2
3
4
4. 用户登陆
potatoapi('/api/login', "POST", {
  "userNumber": "potatoapi", // 账号
  "passWord": "potato123456" // 密码
})
1
2
3
4
5. 查询用户详情
potatoapi('/api/findUserInfo', "GET")
1
6. 修改用户信息
potatoapi('/api/updateUserInfo', "POST", {
  "qqNumber": "3328842962", // 某位帅哥的QQ
  "userName": "发霉的土豆", // 一个帅气的名字
  "birth": "2026-01-01" // 刚出生不久
})
1
2
3
4
5
7. 修改用户密码
potatoapi('/api/updatePassWord', "POST", {
  "oldPassWord": "potato123456", // 旧密码
  "newPassWord": "potato1" // 新密码
})
1
2
3
4
8. 获取当前应用信息
potatoapi('/api/getAppInfo', "GET")
1
9. 获取公告
potatoapi('/api/getNotice', "GET")
1
10. 获取app是否需要更新
potatoapi('/api/updateApp', "POST", {
  "version": "1.0.0" // 版本号
})
1
2
3
11. 发送邮件
potatoapi('/api/sendEmailByUser', "POST", {
  "email": "3328842962@qq.com", // 邮箱
  "title": "测试邮件", // 标题
  "content": "这是一封测试邮件" // 内容
})
1
2
3
4
5
12. 验证卡密V2
potatoapi('/api/verifyCardV2', "POST", {
  "mac": "MAC", // 设备号
  "cardStr": "6666666" // 卡密
})
1
2
3
4
13. 验证卡密V1
potatoapi('/api/verifyCardV1', "POST", {
  "cardStr": "6666666" // 卡密
})
1
2
3
14. 获取登陆图片验证码
potatoapi('/api/getCodeImg', "GET")
1
15. 用户签到
potatoapi('/api/signInUser', "GET")
1
16. 解绑卡密接口
potatoapi('/api/unbindCard', "POST", {
  "mac": "MAC", // 原设备号
  "cardStr": "6666666" // 卡密
})
1
2
3
4
17. 获取签到排行榜
potatoapi('/api/getSignInList', "POST", {
  "p": 1, // 分页页数
  "s": 10 // 分页条数(最大1000)
})
1
2
3
4
18. 启动APP
potatoapi('/api/startApp', "GET")
1
19. 历史版本更新记录
potatoapi('/api/getAppUpdateLog', "POST", {
  "p": 1, // 分页页数
  "s": 10 // 分页条数(最大1000)
})
1
2
3
4
20. 用户反馈
potatoapi('/api/feedBack', "POST", {
  "content": "感谢反馈,下次一定", // 反馈内容
  "contact": "3328842962", // 联系方式
})
1
2
3
4
21. 获取单个文本
potatoapi('/api/getDoc', "POST", {
  "key": "potato" // 文本KEY
})
1
2
3
22. 用户留言板留言
potatoapi('/api/messageBoard', "POST", {
  "id": "potato", // 留言ID
  "content": "神秘留言" // 留言内容
})
1
2
3
4
23. 获取留言板列表
potatoapi('/api/getMessageBoardList', "POST", {
  "p": 1, // 分页页数
  "s": 10 // 分页条数(最大1000)
})
1
2
3
4
24. 获取商品列表
potatoapi('/api/getGoodsList', "POST", {
  "name": "商品001" // 商品名称
})
1
2
3
25. 获取商品标签列表
potatoapi('/api/getLabelList', "GET")
1
26. 用户生成卡密
potatoapi('/api/createCardMy', "POST", {
  "type": 1, // 卡密类型 0天卡,1周卡,2月卡,3季卡,4年卡,5永久卡
  "total": 10 // 卡密数量
})
1
2
3
4
27. 查询用户生成卡密列表
potatoapi('/api/getCardMyList', "POST", {
  "p": 1, // 分页页数
  "s": 10 // 分页条数(最大1000)
})
1
2
3
4
28. 修改用户余额接口
potatoapi('/api/updateUserBalance', "POST", {
  "amount": 100, // 金额
  "type": 1 // 修改类型 0增加,1减少
})
1
2
3
4
29. 查询用户余额流水
potatoapi('/api/getUserBalanceList', "POST", {
  "p": 1, // 分页页数
  "s": 10 // 分页条数(最大1000)
})
1
2
3
4
30. 用户查询会员列表
potatoapi('/api/getVipList', "POST", {
  "p": 1, // 分页页数
  "s": 10 // 分页条数(最大1000)
})
1
2
3
4
31. 用户余额购买会员
potatoapi('/api/userByVipWithBalance', "POST", {
  "vipId": "793803358835597312" // 会员id 【需通过用户查询会员列表】获取
})
1
2
3
32. 公众号通知
potatoapi('/api/sendWeChatMessage', "POST", {
  "openId": "openUserId", // 【potato cloud】公众号内获取
  "head": "土豆api提醒标题",
  "content": "土豆api提醒内容"
})
1
2
3
4
5
33. 公众号批量通知
potatoapi('/api/sendBatchWeChatMessage', "POST", {
  "openId": "openUserId", // 【potato cloud】公众号内获取
  "head": "土豆api提醒标题",
  "content": "土豆api提醒内容"
})
1
2
3
4
5
34. 执行云函数
potatoapi('/api/execFunction', "POST", {
  "name": "test11", // 函数名称
  "params": {
    "name": "土豆api" // 传递的参数
  }
})
1
2
3
4
5
6
35. 卡密心跳
potatoapi('/api/heartbeat', "POST", {
  "carMyToken": "token" // 验证卡密V2登录后返回的carMyToken
})
1
2
3

# 数据库接口

1. 查询一条数据库数据
potatoapi('/api/selectOne/表名称', "POST", {
  "id": "1"
})
1
2
3
2. 查询数据库列表
potatoapi('/api/selectList/表名称', "POST", {
  "where": [
    {
      "reg": "gte",
      "column": "id",
      "value": "1"
    },
    {
      "reg": "lte",
      "column": "id",
      "value": "3"
    }
  ],
  "pc": {
    "p": 1,
    "s": 10
  }
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
3. 新增一条数据
potatoapi('/api/addOne/表名称', "POST", {
  "id": 4,
  "name": 111
})
1
2
3
4
4. 批量新增数据
potatoapi('/api/addList/表名称', "POST", {
  "list": [
    {
      "id": 9,
      "name": "1212"
    },
    {
      "id": 10,
      "name": "1212"
    }
  ]
})
1
2
3
4
5
6
7
8
9
10
11
12
5. 修改一条数据
potatoapi('/api/updateOne/表名称', "POST", {
  "column": {
    "name": 111,
    "age": 1212
  },
  "where": {
    "id": 1,
    "age": 1212
  }
})
1
2
3
4
5
6
7
8
9
10
6. 删除一条数据
potatoapi('/api/deleteOne/表名称', "POST", {
  "where": {
    "id": 9,
    "name": "11"
  }
})
1
2
3
4
5
6

# 常见问题

# 如何获取请求密钥和签名密钥?

登录土豆API控制台,创建应用后即可获取相关密钥。

# 为什么请求总是返回签名验证失败?

请检查以下几点:

  • 签名密钥是否正确
  • 验签类型是否匹配
  • 时间戳是否在有效范围内
  • 请求数据是否被篡改

# 如何处理加密响应?

SDK会自动处理加密响应,只需确保配置了正确的加密密钥即可。

# 技术支持

lastUpdate: 1/13/2026, 2:52:05 PM