【仅供内部供应商使用,不提供对外解答和培训】
当开发者开发的插件想要用户付费购买的时候,需要在插件中加入付费API,以便在试用期到期后会提供用户购买插件。
在接入点接口的实现类中,加上付费说明的注解(Annotation),注解的内容如下:
| Code Block | ||||
|---|---|---|---|---|
| ||||
package com.fr.stable.fun;
import com.fr.stable.StringUtils;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Authorize {
/**
* 开发者根据插件id申请得到的验证码
*
* @return 验证码
*/
String callSignKey() default StringUtils.EMPTY;
/**
* 验证码可以写在代码中,也可以写在文件中
*
* @return 存验证码的文件的路径
*/
String callSignKeyPath() default StringUtils.EMPTY;
} |
我们以主题插件开发为示例:注解Authorize用来描述这是一个付费的插件,而代码
...
上述示例中,callSignKey的值就是插件的ID,是需要和plugin.xml中的id字段一致的,如果插件试用期已过,那么就会返回空的路径,导致这个插件的并不会起作用了,当然,也可以使用其他更多的方式进行购买提醒。
| 报表注册 | 插件lic | 试用期内 | 设计器*1 | 设计器中的服务器环境*2 | 服务器环境*3 |
|---|---|---|---|---|---|
| 未注册 | 无/有 | 无限试用期 | 正常 | 正常 | 正常 |
| 注册 | 无 | 是 | 正常 | 正常 | 正常 |
| 注册 | 无 | 否 | 过期 | 过期 | 过期 |
| 注册 | 有 | 无 | 已授权 | 已授权 | 已授权 |
*1:设计器是指包含有为设计器部分做的插件,比如设计器的菜单,对话框等;
*2:指的是包含有为服务器部分做的插件,在设计器中包含有的jetty服务器环境的运行情况;
*3:指的是包含有为服务器部分做的插件,在tomcat等其他独立java web容器中的运行情况;
10.0.2(stable-12.27以后)中添加了插件包的概念(即客户可以购买一个集合的插件)
...