市场应用程序开发指南
Blesium 应用程序是为仪表板和产品(CRM、ERP、电子商务、邮件等)添加新功能的附加组件,如 Shopify App Store 或 Slack 应用程序。 不是移动应用程序安装在手机上。
简而言之:您的代码在自己的服务器上运行。 您只需在 Blesium 中存储应用的身份、所需权限及其价格;当租户安装您的应用时,您的应用将通过 Blesium API 运行。
工作模式
您的应用程序在"远程 HTTP"模式下运行:代码不会加载到 Blesium,它会在服务器上的网络边界之外运行,并通过签名、SSRF 保护、速度限制的 REST 调用进行通信。 无法直接访问数据库。
- 在布莱西姆 → 应用的身份、类别、目标产品、请求权限、定价和版本历史记录
- 你有一个。 → 应用程序本身:业务逻辑,接口,数据处理
- 数据访问 → 仅通过 API,仅在租户批准的权限范围内
1. 定义您的应用
从控制台创建新应用程序时填写的字段:
- 姓名 → 商店中显示的名称
- 蜗牛 → 地址附件;仅小写字母、数字和连字符
- 类别 下面的列表是其中一个。
- 说明 → 应用程序的功能
- 目标产品 → 客户关系管理 · ERP · B2B · 邮件 · 呼叫中心 · 商店 · musavir
- 所需权限 → 您的应用需要工作的范围
- 定价 → 免费 · 一次性 · 订阅
分类必须来自标准列表;列表外的键将拒绝提交。
- 融合 → 将 Blesium 连接到外部系统
- 报告 → 将报告/指标添加到仪表板
- 主题 → 视觉主题
- 自动化 → 工作流程自动化
- 销售渠道 → 销售渠道
- 消息_频道 → 消息通道
- 航运 → 货物/运输
- 元素 → 部件面板
- 部门_包 → 部门包
- 语言包 → 语言包
- 其他 → 其他
如果您是产品综合开发人员,则只能针对您批准的产品;选择的提交内容中包含的非综合产品将被拒绝。
2. 权限
您的应用程序只能在其请求的权限下运行,并且租户在安装期间会批准这些权限。 请求更少的权限:不必要的宽权限会使人们对安装授权失去信心。
| 范围 | 它提供了什么 | 随时随地 |
|---|---|---|
| 核心 | 读取核心数据 | 租户、用户、订阅。 |
| 核心 | 写入内核数据 | 是否创建/更新内核记录 |
| 客户关系管理.read / 客户关系管 | CRM 读/写 | 如果你在处理客户、会议、请求数据, |
| 读取 | 企业资源规划读数 | 如果你在读库存、当前、发票数据 |
| 阅读 | B2B阅读 | 如果你在读零售/批发数据, |
| 阅读更多 | 电子商务阅读 | 如果您阅读产品、订单、购物车数据 |
| 邮件 | 发送电子邮件 | 您代表租户发送电子邮件。 |
| 订阅我们的新闻 | 订阅活动 | 如果你想知道它发生的时候 |
安装记录租户授予的权限;您的应用程序只能在这些权限范围内运行。
3. 认证
对 Blesium API 的每个请求都使用 API 密钥签名。 密钥格式为blsk_{ortam}_{kimlik}_{gizli},秘密部分在创建时只显示一次。
curl https://firmaniz.blescript.com/api/v1/me \
-H "Authorization: Bearer blsk_live_ab12cd34_gizli-anahtariniz"不要将密钥放在客户端(浏览器、移动应用程序) — 只保留在自己的服务器上。 如果它泄漏,关掉它。
4. 使用 webhook 监听事件
与其不断地问问题,当它发生时联系。 每个交付品都有三个标题:
- 布雷斯特 事件的名称(或。 已付)
- 交付 → 交付 ID;用于消除重复
- 布列斯特 → 原始文本的 HMAC-SHA256 签名(十六进制)
您可以订阅的事件及其触发时间:
- 发票.创建 → 创建新发票
- 发票.已付 → 发票已付
- 发票.退款 → 发票退回
- 订阅.续订 → 订阅续订
- 订阅计划_更改 → 订阅计划更改
- 订阅.取消 → 订阅取消
- 用户.邀请 → 用户被邀请加入团队
- 加入 → 受邀用户加入
- 创建“中国国际高新技术成果交易会” → 支持请求已开启
- 票.已答复 → 支持请求已回复
使用固定时间比较,对照原始正文验证签名(不要转换为 JSON — 空间差异会破坏签名):
import crypto from "node:crypto";
export function imzaDogrula(rawBody, header, secret) {
const beklenen = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
const a = Buffer.from(beklenen);
const b = Buffer.from(header ?? "");
return a.length === b.length && crypto.timingSafeEqual(a, b);
}不要处理未经验证的签名请求。 同一交付 ID 可以重复出现(重试) — 使您的操作具有耐重复性。
5. 释放
发布版本时输入的字段:
- 渠道 → 稳定版或beta版
- 差额 → 从0-100%逐渐开启
- 杜魯姆 → 广播或撤回
出版物流量:
- 提交版本 — 输入版本号、通道和更改说明。
- 逐渐解包 — 首先将释放给一个小片段,并设定发布百分比。
- 等待审核 — 当应用通过审核后,将在应用商店中发布。
- 必要时还原 — 还原问题版本;不删除记录,恢复以前的版本。
在控制台中显示应用程序的状态:
| 杜魯姆 | 你想要什么? | 你想干什么? |
|---|---|---|
| 塔斯拉克 | 尚未发送 | 填写字段并提交 |
| 正在审查 | 布莱西姆小组在找 | 请稍候;可能需要更多信息 |
| 广播 | 店里有卖 | 您可以发布版本。 |
| 被拒绝 | 未接受提交的材料 | 重新提交更正 |
| 暂停 | 从广播中删除 | 解决问题并获得支持 |
6. 发布前检查清单
- 您已最小化所需权限。
- 您验证 webhook 签名,而不会重新处理重复交付。
- API 密钥仅在服务器端;您的泄漏备份流即可。
- 您的应用程序不会在出现故障时停止租户的工作(软下降) 。
- 说明和截图显示了该应用程序实际上做什么.
打开您遇到的问题的支持请求 — 使用应用程序的 Slug 来写,以获得更快的响应。