# 订阅插件
现在开始,第三方开发者可以在BeikeShop插件市场,上传订阅类型的插件!
# 订阅插件是什么?
与一次性付费的普通插件不同,订阅插件在客户首次购买之后,需要按月订阅才能继续使用。
# 开发者须知:
1.订阅插件主要采用C/S(客户端/服务端)模式,其中插件作为客户端,开发者开发的核心功能作为服务端,插件通过服务端提供的 API 获取订阅信息并执行相应的操作。
2.开发者在开发订阅插件时,需要在的合适页面提供订阅的链接,为用户提供订阅服务;并在核心功能中实现订阅状态的查询。
3.开发者在上架插件时,需要设置至少1个月的“免费订阅”时间,确保客户在购买之后能立刻使用。
4.用户购买订阅插件后,会有至少1个月的“免费订阅”时间;到期后,需要购买订阅才能继续使用插件。
5.开发者可以基于这个功能开发例如:商品采集、数据分析工具、会员增值服务等订阅模式的插件,为用户提供更加丰富的功能或服务!
# 订阅插件开发步骤
# 一、服务端开发
1.服务端的主要任务是处理订阅插件的请求,验证请求的有效性,提供订阅状态、管理订阅数据等。
你可以采用php、nodejs、python、java、golang、c 、 c++ 等服务端开发语言来开发,可以以多种形式给订阅插件提供数据,比如:RESTful API、GraphQL API、gRPC 等.
2.服务端需要实现一个订阅状态查询接口,来验证和获取订阅插件的状态。这个接口需要接受客户端请求,验证订阅状态,并返回相应数据。
订阅状态查询接口示例:
https://beikeshop.cn/subscribe/<订阅插件code>/status?domain=<订阅的域名>
返回数据格式:
返回
{
"status": "success",//返回状态
"message": "获取成功",//返回信息
"data": {
"valid": false,//是否订阅
"code": "xx", //插件code
"domain": "xx",//订阅域名
"expired_at": "xx", //到期时间
"message": "该域名尚未订阅!"//如果未订阅,返回的提示信息
}
}
注意:为了提高请求效率,可以缓存查询结果,数据过期后再重新请求。
3.服务端除了提供基本的数据服务之外,也可以将复杂和核心的逻辑写在服务端,防止别人抄袭自己的劳动成果。
# 二、客户端开发
1.客户端主要是插件部分,需要实现插件的基本功能。
2.插件需要在BeikeShop的框架下进行开发。可参考 BeikeShop 提供的开发文档,按照规定的框架和流程来开发插件。
3.客户端在请求服务端时,必须带上相应的域名参数。服务端会根据域名来验证插件的订阅状态。
请求示例如下:
// 示例:使用 JavaScript 发起请求
const domain = 'example.com'; // 当前插件所使用的域名
const pluginCode = 'your-plugin-code'; // 插件唯一标识码
fetch(`https://beikeshop.cn/subscribe/${pluginCode}/status?domain=${domain}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
// 处理订阅状态
if (data.data.valid) {
console.log(`该域名已订阅,订阅有效期至:${data.data.expired_at}`);
} else {
console.log(`该域名尚未订阅:${data.data.message}`);
}
} else {
console.log('请求失败:', data.message);
}
})
.catch(error => {
console.error('请求出错:', error);
});
4.在插件的合适页面,提供订阅的链接,用户可以通过点击链接完成订阅操作。
https://beikeshop.cn/subscribe/<订阅插件code>?domain=<订阅的域名> //插件中提供订阅链接
# 三、插件上架
1.按插件上架基本流程进行上架
2.上架时,注意勾选“是否订阅”按钮;设置免费订阅时间(建议开发者设置至少1个月的“免费订阅”时间,确保客户在购买之后能立刻使用。),订阅价格。
# 四、插件续费
1.点击开发者在插件中给客户提供的订阅链接去续费
2.在插件市场中,搜索相关订阅插件,购买订阅
← 插件Aspect编写 Hook 机制 →