# PotatoCloud SDK - EasyClick 平台
# 介绍
potato cloud EasyClick sdk 开发包,potato cloud 全方位的后端服务平台。
# 项目地址
https://gitee.com/chengdu-xuda-network/potato_cloud_easyclick_sdk.git (opens new window)
# 文件说明
| 文件 | 说明 |
|---|---|
potato_cloud.js | SDK 核心文件(单文件,直接引入即可) |
main.js | 测试/示例脚本 |
README.md | 本文档 |
# 快速开始
# 1. 引入 SDK
将 potato_cloud.js 放入你的 EasyClick 项目目录,然后引入:
var PotatoCloud = require("./potato_cloud.js");
1
# 2. 创建实例
var myApp = PotatoCloud.createApp({
askKey: "你的应用密钥",
signSecretKey: "你的签名密钥",
signType: 1,
requestEncryptType: 2,
responseEncryptType: 2,
encryptSecretKey: "你的加密密钥"
});
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 3. 调用接口
// 获取应用信息
var appInfo = myApp.getAppInfo();
logd("应用信息: " + JSON.stringify(appInfo));
// 卡密验证
var result = myApp.verifyCardV2({
card: "你的卡密",
deviceCode: device.getIMEI()
});
logd("验证结果: " + JSON.stringify(result));
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 配置参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
askKey | String | 是 | 应用密钥 |
host | String | 否 | API地址,默认 https://api.potatocloud.cn |
signSecretKey | String | 否 | 验签密钥 |
signType | Number | 否 | 验签类型,默认 0 |
requestEncryptType | Number | 否 | 请求加密类型,默认 0 |
responseEncryptType | Number | 否 | 响应加密类型,默认 0 |
encryptSecretKey | String | 否 | 加解密密钥 |
timeout | Number | 否 | 请求超时(毫秒),默认 30000 |
# 加密类型说明
| 值 | 类型 | 说明 |
|---|---|---|
| 0 | 不加密 | 明文传输 |
| 1 | Base64 | Base64 编码 |
| 2 | AES/ECB/PKCS5Padding | AES 加密,密钥自动填充至32字节 |
| 3 | DES/ECB/PKCS7 | DES 加密,密钥截取/填充至8字节 |
| 4 | AES/ECB/NoPadding | AES 加密,16位密钥,数据手动填充 |
| 5 | RC4 | RC4 流加密 |
# 验签类型说明
| 值 | 类型 | 算法 |
|---|---|---|
| 0 | 不验签 | - |
| 1 | V1 | md5(signSecretKey + timestamp) |
| 2 | V2 | md5(排序参数拼接 + signSecretKey + timestamp) |
| 3 | V3 | md5(排序参数拼接 + signSecretKey + timestamp + nonce) |
# API 列表
# 基础接口
| 方法 | 说明 | 请求方式 |
|---|---|---|
getAppInfo() | 获取应用信息 | GET |
getNotice(params) | 获取公告 | GET |
updateApp(params) | 检查更新 | POST |
verifyCardV2(params) | 卡密验证(卡密制) | POST |
unbindCard(params) | 解绑卡密 | POST |
createOrder(params) | 创建订单 | POST |
pay(params) | 发起支付 | POST |
searchOrder(params) | 查询订单 | POST |
getSignInList(params) | 获取签到列表 | POST |
startApp(params) | 启动应用 | GET |
getAppUpdateLog(params) | 获取更新日志 | POST |
feedBack(params) | 用户反馈 | POST |
getDoc(params) | 获取文本 | POST |
messageBoard(params) | 用户留言 | POST |
getMessageBoardList(params) | 查询留言板 | POST |
getGoodsList(params) | 获取商品列表 | POST |
getLabelList(params) | 获取标签列表 | GET |
registerV2(params) | 用户注册V2 | POST |
createCardMy(params) | 生成卡密 | POST |
getCardMyList(params) | 查询卡密列表 | POST |
updateUserBalance(params) | 修改用户余额 | POST |
getUserBalanceList(params) | 查询余额列表 | POST |
getVipList(params) | 查询会员列表 | POST |
userByVipWithBalance(params) | 余额购买会员 | POST |
sendWeChatMessage(params) | 发送微信消息 | POST |
sendBatchWeChatMessage(params) | 批量发送微信消息 | POST |
execFunction(params) | 执行云函数 | POST |
# 用户接口
| 方法 | 说明 | 请求方式 |
|---|---|---|
sendEmailMessage(params) | 发送注册邮箱验证码 | POST |
register(params) | 用户注册 | POST |
login(params) | 用户登录 | POST |
updateUserInfo(params) | 修改用户信息 | POST |
updatePassWord(params) | 修改密码 | POST |
sendEmailByUser(params) | 用户发送邮件 | POST |
verifyCardV1(params) | 卡密验证(会员制) | POST |
getCodeImg(params) | 获取验证码图片 | GET |
signInUser(params) | 用户签到 | GET |
# 数据库接口
| 方法 | 说明 | 请求方式 |
|---|---|---|
selectOne(tableName, params) | 查询单条数据 | POST |
selectList(tableName, params) | 查询多条数据 | POST |
addOne(tableName, params) | 新增单条数据 | POST |
addList(tableName, params) | 新增多条数据 | POST |
updateOne(tableName, params) | 修改数据 | POST |
deleteOne(tableName, params) | 删除数据 | POST |
# Token 管理
| 方法 | 说明 |
|---|---|
setUserToken(token) | 手动设置用户Token |
removeUserToken() | 清除用户Token |
getUserToken() | 获取当前Token |
登录成功后 Token 会自动保存,无需手动设置。
# 通用请求
// 自定义请求
var result = myApp.request("/api/yourEndpoint", "POST", {key: "value"});
1
2
2
# 使用示例
# 卡密验证
var PotatoCloud = require("./potato_cloud.js");
var myApp = PotatoCloud.createApp({
askKey: "你的askKey",
signSecretKey: "Potato",
signType: 1,
requestEncryptType: 2,
responseEncryptType: 2,
encryptSecretKey: "Potato"
});
function main() {
var result = myApp.verifyCardV2({
card: "XXXX-XXXX-XXXX",
deviceCode: device.getIMEI()
});
if (result && result.code == 200) {
logd("验证成功: " + JSON.stringify(result.data));
} else {
logd("验证失败: " + (result ? result.message : "未知错误"));
}
}
main();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 用户登录 + 数据库操作
var PotatoCloud = require("./potato_cloud.js");
var myApp = PotatoCloud.createApp({
askKey: "你的askKey",
signSecretKey: "Potato",
signType: 1,
requestEncryptType: 0,
responseEncryptType: 0,
encryptSecretKey: ""
});
function main() {
// 登录
var loginResult = myApp.login({
userName: "user1",
passWord: "pass123"
});
logd("登录: " + JSON.stringify(loginResult));
// 登录成功后 Token 自动保存,可直接调用需要认证的接口
if (loginResult && loginResult.code == 200) {
// 查询数据
var data = myApp.selectList("my_table", {
pageNum: "1",
pageSize: "10"
});
logd("数据: " + JSON.stringify(data));
}
}
main();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31