功能命令字

App\Fresns\CmdWords\Main

基础功能

解码签名变量值

命令字:fresns_cmd_decode_sign

参数名类型是否必传说明
decodeSignStringYES参见:为插件生成签名

校验签名

命令字:fresns_cmd_verify_sign

参数名类型是否必传说明
platformNumberYES平台编号(配置表 platforms 键名的键值)
versionStringYES语义化版本号
versionIntNumberYES整型版本号
appIdStringYESApp ID
timestampStringYES签名生成时间(当前 Unix 时间戳,精确到秒的 10 位数值)
signStringYES请求签名
uidStringNO/YES用户参数
midNumberNO/YES成员参数
tokenStringNO/YES身份凭证

上传交互日志

命令字:fresns_cmd_upload_session_log

参数名类型是否必传说明
platformNumberYES平台编号(配置表 platforms 键名的键值)
versionStringYES语义化版本号
versionIntNumberYES整型版本号
langTagStringNO语言标签
uidStringNO用户参数(用户主表 users > uuid 字段)
midNumberNO成员参数(成员主表 members > uuid 字段)
objectTypeNumberYES记录类型 session_logs > object_type
objectNameStringYES目标名称 session_logs > object_name
objectActionStringYES目标行为 session_logs > object_action
objectResultNumberYES行为结果 session_logs > object_result
objectOrderIdStringNO目标 ID session_logs > object_order_id
deviceInfoStringNO交互设备信息 session_logs > device_info
以字符串传参压缩后的 Object 对象信息
moreJsonStringNO其他信息 session_logs > more_json
以字符串传参压缩后的 Object 对象信息

发送验证码

命令字:fresns_cmd_send_code

参数名类型是否必传说明
typeNumberYES类型:1.邮件验证码 / 2.短信验证码
accountStringYES账号(邮箱或手机号)
countryCodeNumberNO国际区号(手机号专用)
templateIdNumberYES验证码模板 ID
langTagStringYES语言标签

校验验证码

命令字:fresns_cmd_check_code

参数名类型是否必传说明
typeNumberYES类型:1.邮件验证码 / 2.短信验证码
accountStringYES账号(邮箱或手机号)
countryCodeNumberNO国际区号(手机号专用)
verifyCodeStringYES验证码

发信功能

发信-邮件

命令字:fresns_cmd_send_email

参数名类型是否必传说明
emailStringYES邮箱地址
titleStringYES标题
contentStringYES内容(支持 HTML 代码)

发信-短信

命令字:fresns_cmd_send_sms

参数名类型是否必传说明
countryCodeNumberYES国际区号
phoneNumberNumberYES手机号
signNameStringNO短信签名名称
templateCodeStringYES模板参数
templateParamStringNO变量参数(以字符串传参压缩后的信息)
查看变量参数 templateParam 格式
// 变量名对应实际值
{
    "nickname": "唐杰",
    "variale1": "有人艾特你"
}

// 压缩后
{"nickname":"唐杰","variale1":"有人艾特你"}
1
2
3
4
5
6
7
8

发信-iOS 推送

命令字:fresns_cmd_send_ios

参数名类型是否必传说明
midNumberYES成员参数(成员主表 members > uuid 字段)
templateStringNO模板参数
coverFileUrlStringNO封面图
titleStringNO标题
contentStringNO内容
timeStringNO时间
linkTypeStringNO链接类型
linkUrlStringNO链接地址

发信-Android 推送

命令字:fresns_cmd_send_android

参数名类型是否必传说明
midNumberYES成员参数(成员主表 members > uuid 字段)
templateStringNO模板参数
coverFileUrlStringNO封面图
titleStringNO标题
contentStringNO内容
timeStringNO时间
linkTypeStringNO链接类型
linkUrlStringNO链接地址

发信-微信推送

命令字:fresns_cmd_send_wechat

参数名类型是否必传说明
channelNumberYES渠道 1.公众号 2.小程序
midNumberYES成员参数(成员主表 members > uuid 字段)
templateStringNO模板参数
coverFileUrlStringNO封面图
titleStringNO标题
contentStringNO内容
timeStringNO时间
linkTypeStringNO链接类型
linkUrlStringNO链接地址

用户功能

用户注册

命令字:fresns_cmd_user_register

参数名类型是否必传说明
typeNumberYES账号类型:1.邮箱 / 2.手机号 / 3.互联平台
accountStringNO邮箱或手机号专用:邮箱地址 / 手机号码
countryCodeNumberNO手机号专用:国际区号(type=2 时必填)
connectInfoStringNO互联平台专用:平台信息(type=3 时必填)
以字符串传参压缩后的 Array 对象信息
passwordStringNO登录密码
nicknameStringYES创建成员时使用:昵称
关联字段 members > nickname
avatarFidStringNO创建成员时使用:头像 fid (uuid),存储时转换成 file id
关联字段 members > avatar_file_id
avatarUrlStringNO创建成员时使用:头像 URL
关联字段 members > avatar_file_url
genderNumberNO创建成员时使用:性别
关联字段 members > gender
birthdayStringNO创建成员时使用:生日
关联字段 members > birthday
timezoneStringNO创建成员时使用:偏好时区
关联字段 members > timezone
languageStringNO创建成员时使用:偏好语言
关联字段 members > language
结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        "userId": "users > id",
        "userType": "users > user_type",
        "uid": "users > uuid",
    }
}
1
2
3
4
5
6
7
8
9
查看 connectInfo 参数介绍

支持多个,例如微信平台会同时有 UnionID 和 OpenID 两个参数,传参时以字符串传参压缩后的 Array 对象信息。

[
    {
        "connectId": 8, //存储到 user_connects > connect_id
        "connectToken": "unionid", //存储到 user_connects > connect_token
        "connectName": "用户名", //存储到 user_connects > connect_name
        "connectNickname": "昵称", //存储到 user_connects > connect_nickname
        "connectAvatar": "头像 URL", //存储到 user_connects > connect_avatar
    },
    {
        "connectId": 9,
        "connectToken": "openid",
        "connectName": "用户名",
        "connectNickname": "昵称",
        "connectAvatar": "头像 URL",
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
查看注册逻辑
  • 注册时需要生成的数据清单
    • 用户主表 users
    • 用户钱包表 user_wallets
    • 成员主表 members:以“昵称”参数生成一个初始成员,成员名 members > name 随机生成一个 6~8 位字符,需要避免使用禁用名(键名 disable_names 禁用值)。
    • 成员数据统计表 member_stats
    • 成员角色关联表 member_role_rels:初始角色来自配置表 default_role 键值。
    • 其余传参有值时直接录入,无值时留空;头像 fid 需转换为真实 id 存储。
  • 注册完成后,增加数据统计。配置表键值 user_counts +1member_counts +1

用户登录

命令字:fresns_cmd_user_login

参数名类型是否必传说明
typeNumberYES账号类型:1.邮箱 / 2.手机号
accountStringYES邮箱地址
手机号码
countryCodeNumberNO手机号专用:国际区号(type=2 时必填)
passwordStringNO密码登录专用(以 Base64 传参)
verifyCodeStringNO验证码登录专用(命令字 fresns_cmd_check_code 查验)
结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        "userId": "users > id",
        "userType": "users > user_type",
        "uid": "users > uuid",
    }
}
1
2
3
4
5
6
7
8
9

用户基本信息

命令字:fresns_cmd_user_detail

参数名类型是否必传说明
uidStringYES用户 UUID
结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        // 参见接口页的描述 /api/fresns/user/detail
        // 所有涉及图片的参数,会判断是否开启了防盗链,如果开启了,会根据配置获取防盗链链接。
    }
}
1
2
3
4
5
6
7
8

创建交互凭证

命令字:fresns_cmd_create_session_token

参数名类型是否必传说明
platformNumberYES平台编号(配置表 platforms 键名的键值)
uidStringYES用户参数(用户主表 users > uuid 字段)
midNumberNO成员参数(成员主表 members > uuid 字段)
expiredTimeNumberNO过期时间,单位:小时(为空代表永久有效)
结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        "token": "session_tokens > token",
        "expiredTime": "session_tokens > expired_at 留空代表永久有效,格式为 Y-m-d H:i:s"
    }
}
1
2
3
4
5
6
7
8

校验交互凭证

命令字:fresns_cmd_verify_session_token

参数名类型是否必传说明
platformNumberYES平台编号(配置表 platforms 键名的键值)
uidStringYES用户参数(用户主表 users > uuid 字段)
midNumberNO成员参数(成员主表 members > uuid 字段)
tokenStringYES身份凭证(凭证表 session_tokens > token 字段)

钱包收入交易

命令字:fresns_cmd_wallet_increase

参数名类型是否必传说明
typeNumberYES类型(1.充值 2.解冻 3.交易)
关联字段 user_wallet_logs > object_type
uidStringYES收入方用户,转换后关联字段 user_wallet_logs > user_id
midNumberNO收入方成员,转换后关联字段 user_wallet_logs > member_id
amountNumberYES交易总金额 user_wallet_logs > amount
transactionAmountNumberYES交易金额 user_wallet_logs > transaction_amount
systemFeeNumberYES交易差额 user_wallet_logs > system_fee
originUidStringNO来源用户 user_wallet_logs > object_user_id
originMidNumberNO来源成员 user_wallet_logs > object_member_id
originNameStringYES交易处理者 user_wallet_logs > object_name
originIdNumberNO交易记录凭证 user_wallet_logs > object_id
查看收入逻辑
  • 参数 originUid 为空
    • 1、查询 uid 最后一条 is_enable=1 的交易记录,以 closing_balance 字段值对比 user_wallets > balance 字段值,如果不一致,流程中止。
    • 2、给 uid 用户的钱包 user_wallets > balance transactionAmount 数值,并生成一条交易记录 user_wallet_logs 表
  • 参数 originUid 有值
    • 1、查询 uid 最后一条 is_enable=1 的交易记录,以 closing_balance 字段值对比 user_wallets > balance 字段值,如果不一致,流程中止。
    • 2、查询 originUid 钱包 user_wallets > balance 字段的数值是否大于或等于 amount 参数值,如果小于,流程中止。
    • 3、查询 originUid 最后一条 is_enable=1 的交易记录,以 closing_balance 字段值对比 user_wallets > balance 字段值,如果不一致,流程中止。
    • 4、给 originUid 用户的钱包 user_wallets > balance amount 数值,并生成一条交易记录 user_wallet_logs 表
    • 5、给 uid 用户的钱包 user_wallets > balance transactionAmount 数值,并生成一条交易记录 user_wallet_logs 表
  • 备注:查询最后一条 is_enable=1 的交易记录时,如果查询不到交易记录,默认期末余额为 0 值。

钱包支出交易

命令字:fresns_cmd_wallet_decrease

参数名类型是否必传说明
typeNumberYES类型(4.提现 5.冻结 6.交易)
关联字段 user_wallet_logs > object_type
uidStringYES支出方用户,转换后关联字段 user_wallet_logs > user_id
midNumberNO支出方成员,转换后关联字段 user_wallet_logs > member_id
amountNumberYES交易总金额 user_wallet_logs > amount
transactionAmountNumberYES交易金额 user_wallet_logs > transaction_amount
systemFeeNumberYES交易差额 user_wallet_logs > system_fee
originUidStringNO去向用户 user_wallet_logs > object_user_id
originMidNumberNO去向成员 user_wallet_logs > object_member_id
originNameStringYES交易处理者 user_wallet_logs > object_name
originIdNumberNO交易记录凭证 user_wallet_logs > object_id
查看支出逻辑
  • 参数 originUid 为空
    • 1、查询 uid 最后一条 is_enable=1 的交易记录,以 closing_balance 字段值对比 user_wallets > balance 字段值,如果不一致,流程中止。
    • 2、给 uid 用户的钱包 user_wallets > balance amount 数值,并生成一条交易记录 user_wallet_logs 表
  • 参数 originUid 有值
    • 1、查询 uid 最后一条 is_enable=1 的交易记录,以 closing_balance 字段值对比 user_wallets > balance 字段值,如果不一致,流程中止。
    • 2、查询 uid 钱包 user_wallets > balance 字段的数值是否大于或等于 amount 参数值,如果小于,流程中止。
    • 3、查询 originUid 最后一条 is_enable=1 的交易记录,以 closing_balance 字段值对比 user_wallets > balance 字段值,如果不一致,流程中止。
    • 4、给 uid 用户的钱包 user_wallets > balance amount 数值,并生成一条交易记录 user_wallet_logs 表
    • 5、给 originUid 用户的钱包 user_wallets > balance transactionAmount 数值,并生成一条交易记录 user_wallet_logs 表
  • 备注:查询最后一条 is_enable=1 的交易记录时,如果查询不到交易记录,默认期末余额为 0 值。

成员功能

成员登录

命令字:fresns_cmd_member_auth

参数名类型是否必传说明
midNumberYES成员 UUID
passwordStringNO密码(以 Base64 传参,查验 members 表)

成员基本信息

命令字:fresns_cmd_member_detail

参数名类型是否必传说明
midNumberNO成员 UUID
mnameStringNO成员 Name

mid 或 mname 二选一传参

文件功能

获取上传凭证

命令字:fresns_cmd_get_upload_token

参数名类型是否必传说明
typeNumberYES1.图片 / 2.视频 / 3.音频 / 4.文档
sceneNumberYES参考 files > table_type 来源类型
结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        "storageId": "存储服务商编号,见字典键值",
        "token": "跟插件索要的 SDK 上传 token",
        "expireTime": "到期时间"
    }
}
1
2
3
4
5
6
7
8
9

上传文件

命令字:fresns_cmd_upload_file

参数名类型是否必传说明
platformNumberYES平台编号(配置表 platforms 键名的键值)
typeNumberYES1.图片 / 2.视频 / 3.音频 / 4.文档
tableTypeNumberYES来源类型
tableNameStringYES来源表名
tableFieldStringYES来源字段名,默认为 id
tableIdStringNO来源表 UUID,存储时转换成真实 ID
tableKeyStringNO来源表键名
modeNumberYES1.上传文件
2.上传文件信息
fileFileNO1.上传文件(以 request()->file('file') 方式获取文件信息后传值)
fileInfoStringNO2.上传文件信息数组,以字符串传参压缩后的 Array 数组信息
参见 API 上传文件 /api/fresns/editor/upload
结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        //输出文件信息 fileInfo,参见 API 上传文件 /api/fresns/editor/upload
    }
}
1
2
3
4
5
6
7
查看转参给插件的参数

主程序将文件存档后,再通过请求存储服务商命令字 fresns_cmd_upload_file 将文件告之插件,请求参数如下:

参数名类型是否必传说明
fidStringYES多个,以字符串传参压缩后的 Array 数组信息
示例:["a1","a2","a3"]
modeNumberYES1.上传文件
2.上传文件信息

图片:获取带防盗链签名的地址

命令字:fresns_cmd_anti_link_image

参数名类型是否必传说明
fileIdStringNO文件 id
fidStringNO文件 uuid

fileId 或 fid 二选一传参

结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        "imageDefaultUrl": "默认图片,未处理图",
        "imageConfigUrl": "images_bucket_domain + 文件路径 + images_thumb_config",
        "imageAvatarUrl": "images_bucket_domain + 文件路径 + images_thumb_avatar",
        "imageRatioUrl": "images_bucket_domain + 文件路径 + images_thumb_ratio",
        "imageSquareUrl": "images_bucket_domain + 文件路径 + images_thumb_square",
        "imageBigUrl": "images_bucket_domain + 文件路径 + images_thumb_big",
        "originalUrl": "原始文件(file_appends > file_original_path)"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13

视频:获取带防盗链签名的地址

命令字:fresns_cmd_anti_link_video

参数名类型是否必传说明
fileIdStringNO文件 id
fidStringNO文件 uuid

fileId 或 fid 二选一传参

结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        "videoCover": "视频服务商生成的视频封面图",
        "videoGif": "视频服务商生成的视频动图",
        "videoUrl": "视频文件",
        "originalUrl": "原始文件(file_appends > file_original_path)"
    }
}
1
2
3
4
5
6
7
8
9
10

音频:获取带防盗链签名的地址

命令字:fresns_cmd_anti_link_audio

参数名类型是否必传说明
fileIdStringNO文件 id
fidStringNO文件 uuid

fileId 或 fid 二选一传参

结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        "audioUrl": "音频文件",
        "originalUrl": "原始文件(file_appends > file_original_path)"
    }
}
1
2
3
4
5
6
7
8

文档:获取带防盗链签名的地址

命令字:fresns_cmd_anti_link_doc

参数名类型是否必传说明
fileIdStringNO文件 id
fidStringNO文件 uuid

fileId 或 fid 二选一传参

结果示例
{
    "code": 0,
    "message": "ok",
    "output": {
        "docUrl": "文档文件",
        "originalUrl": "原始文件(file_appends > file_original_path)"
    }
}
1
2
3
4
5
6
7
8

逻辑删除文件

命令字:fresns_cmd_logical_deletion_file

参数名类型是否必传说明
fileIdStringNO文件 id
fidStringNO文件 uuid

fileId 或 fid 二选一传参

物理删除文件

命令字:fresns_cmd_physical_deletion_file

参数名类型是否必传说明
fileIdStringNO文件 id
fidStringNO文件 uuid

fileId 或 fid 二选一传参

内容功能

提交发表内容

命令字:fresns_cmd_direct_release_content

参数名类型是否必传说明
typeNumberYES类型 1.帖子 2.评论
logIdNumberYES日志表 ID

该功能比较复杂,点击这里可以了解功能逻辑。

逻辑删除内容

命令字:fresns_cmd_logical_deletion_content

参数名类型是否必传说明
typeNumberYES类型 1.帖子 2.评论
contentTypeNumberYES类型 1.主表正式内容 2.日志表内容
contentIdNumberNO内容主键 id
contentUuidStringNO内容 uuid

contentId 或 contentUuid 二选一传参

物理删除内容

命令字:fresns_cmd_physical_deletion_content

参数名类型是否必传说明
typeNumberYES类型 1.帖子 2.评论
contentTypeNumberYES类型 1.主表正式内容 2.日志表内容
contentIdNumberNO内容主键 id
contentUuidStringNO内容 uuid

contentId 或 contentUuid 二选一传参