建议:Creator Pro 付费资源增加第三方订单校验接口
目前 Creator Pro 的付费资源加密/解密安装能力已经支持通过爱发电订单系统进行购买资格校验。
这个机制对于使用爱发电售卖资源的创作者非常方便,但对于已经拥有自己官网、商城或订单系统的创作者来说,目前似乎只能依赖爱发电的订单校验机制,扩展性会受到一些限制。
因此想建议是否可以考虑将 Creator Pro 的订单验证机制抽象成可配置的第三方订单校验 Provider,在保留现有爱发电支持的同时,增加一个「自定义订单验证」选项。
大致设想
允许创作者自行配置一个用于订单/授权验证的 HTTPS API,例如:
用户购买资源
↓
创作者自己的商城 / 官网订单系统
↓
用户通过 AstroBox 尝试安装加密资源
↓
AstroBox 请求创作者配置的验证 API
↓
创作者服务器验证订单/授权状态
↓
返回是否具有该资源的安装权限
↓
验证通过后继续现有的加密资源解密安装流程
API 可以由创作者自行实现,AstroBox 只需要按照约定的协议进行请求和解析结果即可。
例如允许配置:
- API Endpoint
- GET / POST
- Authorization Token / Secret
- 资源 ID
- 订单号 / License ID 等参数
- 返回结果中的授权状态字段
- 可选的签名验证
这样就可以支持:
- 自建官网订单系统
- WordPress / WooCommerce
- 自己开发的商城
- 其他第三方商城
- 自定义 License / 授权系统
而不需要 AstroBox 针对每一个平台单独开发适配。
另外一个设想:Webhook
如果条件允许,也希望可以考虑增加类似爱发电 Webhook 的机制。
例如允许创作者配置:
https://example.com/api/astrobox/webhook
当订单发生状态变化时,将事件通知给创作者自己的服务器,例如:
这样创作者可以在自己的服务器中维护资源授权状态。
例如:
订单系统
│
├── 支付成功 ──→ Webhook ──→ 授权数据库
│
└── 退款 ─────→ Webhook ──→ 撤销授权
│
↓
AstroBox 验证授权
这样 AstroBox 在实际安装时只需要查询:
这个用户是否拥有 resource_xxx 的有效授权?
而不需要了解创作者具体使用的是哪个订单平台。
Webhook 如果实现的话,可以考虑加入:
- Secret / Token
- HMAC 签名
- Timestamp
- Event ID
等机制,用于防止伪造和重复请求。
我认为这个功能的价值
这样 Creator Pro 的付费资源体系就可以从:
进一步扩展为:
┌── 爱发电
│
Creator Pro ────────┼── 自建商城
│
├── WooCommerce
│
└── 自定义订单系统
爱发电仍然可以作为默认/官方支持的订单来源,而有自己业务系统的创作者可以通过自定义 Provider 接入。
这样既不会影响现有用户,也能让 Creator Pro 的付费资源能力对独立开发者和拥有自有商城的创作者更加友好。
如果目前 Creator Pro 的资源授权机制在架构上已经有类似 Provider / Adapter 的设计,那么感觉这个功能应该也比较适合作为一个扩展点来实现。
如果不希望开放过于复杂的自定义 API,也可以先提供一个比较简单的标准化接口协议,只需要返回 authorized: true/false 以及对应的资源 ID 即可。具体的订单验证逻辑完全由创作者自己的服务器负责。
建议:Creator Pro 付费资源增加第三方订单校验接口
目前 Creator Pro 的付费资源加密/解密安装能力已经支持通过爱发电订单系统进行购买资格校验。
这个机制对于使用爱发电售卖资源的创作者非常方便,但对于已经拥有自己官网、商城或订单系统的创作者来说,目前似乎只能依赖爱发电的订单校验机制,扩展性会受到一些限制。
因此想建议是否可以考虑将 Creator Pro 的订单验证机制抽象成可配置的第三方订单校验 Provider,在保留现有爱发电支持的同时,增加一个「自定义订单验证」选项。
大致设想
允许创作者自行配置一个用于订单/授权验证的 HTTPS API,例如:
API 可以由创作者自行实现,AstroBox 只需要按照约定的协议进行请求和解析结果即可。
例如允许配置:
这样就可以支持:
而不需要 AstroBox 针对每一个平台单独开发适配。
另外一个设想:Webhook
如果条件允许,也希望可以考虑增加类似爱发电 Webhook 的机制。
例如允许创作者配置:
当订单发生状态变化时,将事件通知给创作者自己的服务器,例如:
这样创作者可以在自己的服务器中维护资源授权状态。
例如:
这样 AstroBox 在实际安装时只需要查询:
而不需要了解创作者具体使用的是哪个订单平台。
Webhook 如果实现的话,可以考虑加入:
等机制,用于防止伪造和重复请求。
我认为这个功能的价值
这样 Creator Pro 的付费资源体系就可以从:
进一步扩展为:
爱发电仍然可以作为默认/官方支持的订单来源,而有自己业务系统的创作者可以通过自定义 Provider 接入。
这样既不会影响现有用户,也能让 Creator Pro 的付费资源能力对独立开发者和拥有自有商城的创作者更加友好。
如果目前 Creator Pro 的资源授权机制在架构上已经有类似 Provider / Adapter 的设计,那么感觉这个功能应该也比较适合作为一个扩展点来实现。