在数字产品蓬勃发展的当下,个人开发者常面临系统授权功能开发复杂、版权保护困难等问题。我们的授权系统正是为解决这些痛点而生,致力于为个人开发者提供全面、高效的授权解决方案。
本系统支持RSA 离线授权、在线域名授权、卡密授权三种核心授权模式。RSA 离线授权通过非对称加密技术,即使在无网络环境下也能保障软件授权安全;在线域名授权可精准绑定域名,防止非法使用,适用于网站应用;卡密授权则以灵活便捷的形式,方便用户通过兑换卡密获取授权,满足多样化的业务场景需求。
在项目管理层面,强大的项目版本管理功能是一大亮点。开发版本检测接口能够实时获取项目最新版本和下载地址,不仅有助于开发者及时推送更新,确保用户使用到最稳定、功能最完善的产品,还能让开发者对项目版本迭代进行高效管控,提升产品竞争力。
此外,系统具备高度的集成能力,可与支付系统无缝衔接。用户能够在授权中心自主完成下单授权操作,极大简化交易流程,有效提升用户体验。这一特性不仅方便了用户,还能加速开发者的资金回笼,实现商业变现的高效运转。
总之,我们的授权系统以功能全面、操作便捷、安全可靠的优势,为个人开发者提供从授权管理到交易变现的一站式服务,助力开发者将更多精力投入到产品开发创新中,在数字市场中稳步前行。
系统官网:http://www.uvstu.com
用户创建应用后,系统会自动生成签名key,签名加密的时候需要加入应用生成的签名key, 不同的应用签名key不一样。
本平台的签名统一使用MD5加密进行签名,签名规则为 MD5(签名key+请求参数+签名Key)
案例如下:
JSON参数:{"a1":"1234567890","a2:":"xxx","a3":123} 签名KEY:12345678901234567890123456789012
加密数据拼接:12345678901234567890123456789012{"a1":"1234567890","a2:":"xxx","a3":123}12345678901234567890123456789012
将以上加密数据拼接结果进行MD5加密即可生成签名
签名结果:3928173ab21128aa11cc225560594a12
Path: /auth/open/api/auth
Method: POST
接口描述:
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| authNo | string | 必须 | 授权编号 | ||
| domainName | string | 必须 | 域名地址 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | integer | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | string | 必须 | 签名信息,用于客户端验签,MD5(授权编号+","+域名地址) |
Path: /auth/open/api/version
Method: POST
接口描述:
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| entryNo | string | 必须 | 项目编号 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | integer | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object | 必须 | 版本数据 | ||
| ├─ versionNumber | string | 必须 | 当前版本 | ||
| ├─ updateUrl | string | 必须 | 更新地址 | ||
| ├─ versionDescribe | string | 必须 | 版本描述 | ||
| ├─ extraParam | string | 必须 | 额外参数 | ||
| ├─ createTime | string | 必须 | 创建时间 | ||
| ├─ key | string | 必须 | 签名信息,用于客户端验签,MD5(项目编号+","+域名地址) |
Path: /auth/open/api/v2/card/info
Method: POST
接口描述:
1-未使用 2-已使用
1-域名授权 2-RSA授权
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| card | string | 必须 | 卡密编号 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | integer | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object | 必须 | 返回数据 | ||
| ├─ cardInfo | object | 必须 | 卡密信息 | ||
| ├─ batchName | string | 必须 | 批次名称 | ||
| ├─ cardNo | string | 必须 | 卡密编号 | ||
| ├─ status | integer | 必须 | 状态 | ||
| ├─ goodInfo | object | 必须 | 商品信息 | ||
| ├─ goodName | string | 必须 | 商品名称 | ||
| ├─ authType | integer | 必须 | 授权类型 | ||
| ├─ timeType | integer | 必须 | 时间类型 | ||
| ├─ effectiveTime | string | 必须 | 有效时间 | ||
| ├─ price | string | 必须 | 商品价格 | ||
| ├─ customize | string | 必须 | 自定义参数 |
Path: /auth/open/api/v2/card
Method: POST
接口描述:
卡密+"x|asb"+验证码+"x|asb"+旧激活码(没有就传空字符串 "" )
关于续期激活 和 不续期激活的区别
1、续期激活
(1)需要携带旧激活码
(2)续期要求卡密的 商品额外参数 必须和卡密的 商品额外参数 一致才能续期成功
2、不续期激活
(1)不携带旧激活码
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| key | string | 必须 | 授权串,具体请看下方备注 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | integer | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | string | 必须 | 激活码信息 |
Path: /auth/open/api/v2/auth
Method: POST
接口描述:
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| authNo | string | 必须 | 授权编号 | ||
| domainName | string | 必须 | 域名地址 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | integer | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | string | 必须 | 签名信息,用于客户端验签,使用项目公钥进行解密 |
Path: /auth/open/api/v2/server
Method: POST
接口描述:
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| entryNo | string | 必须 | 项目编号 | ||
| accessAddress | string | 必须 | 项目访问地址 | ||
| authStatus | integer | 必须 | 授权状态 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|
Path: /auth/open/api/v2/version
Method: POST
接口描述:
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| entryNo | string | 必须 | 项目编号 | ||
| version | string | 必须 | 当前版本号 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | integer | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object | 必须 | 版本数据 | ||
| ├─ versionNumber | string | 必须 | 当前版本 | ||
| ├─ updateUrl | string | 必须 | 更新地址 | ||
| ├─ versionDescribe | string | 必须 | 版本描述 | ||
| ├─ extraParam | string | 必须 | 额外参数 | ||
| ├─ createTime | string | 必须 | 创建时间 | ||
| ├─ key | string | 必须 | 签名信息,用于客户端验签,MD5(项目编号+","+域名地址) |
Path: /auth/v3/pay
Method: POST
接口描述:
注意:头部需要携带登录成功后返回的token凭证
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 | |
| token | 123123213131111 | 是 | 鉴权Token,登录成功后返回的 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| goodId | string | 必须 | 商品ID | ||
| authValue | string | 必须 | 客户端生成的验证码 | ||
| payType | string | 必须 | 支付类型 1-支付宝 2-微信 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | string | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object | 必须 | 返回结果 | ||
| ├─ outTradeNo | string | 必须 | 订单号 | ||
| ├─ payUrl | string | 必须 | 支付地址 |
Path: /auth/v3/card
Method: POST
接口描述:
签名方式请看WIKI
注意:验签是使用返回的 data 中的 data 数据进行 key+json字符串+key 进行md5 加密,如果是一致说明数据未被篡改。
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| key | string | 必须 | 卡密编号,参数说明:卡密+验证码+旧激活码(非必填,续期使用),例如:111111x|asb22222x|asb33333(通过 x|asb 分割) |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | string | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object | 必须 | 返回数据 | ||
| ├─ data | string | 必须 | 激活码 | ||
| ├─ sign | string | 必须 | 签名信息,使用data进行签名,然后比对是否一致,一致说明数据未被篡改 |
Path: /auth/v3/auth
Method: POST
接口描述:
签名方式请看WIKI
注意:验签是使用返回的 data 中的 data 数据进行 key+json字符串+key 进行md5 加密,如果是一致说明数据未被篡改。
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| authNo | string | 必须 | 授权编号 | ||
| domainName | string | 必须 | 域名地址 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | string | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object | 必须 | 返回数据 | ||
| ├─ result | boolean | 必须 | 是否验证通过 | ||
| ├─ sign | string | 必须 | 签名信息,使用data进行签名,然后比对是否一致,一致说明数据未被篡改 |
Path: /auth/v3/server
Method: POST
接口描述:
签名方式请看WIKI
注意:本接口无参数返回
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| entryNo | string | 必须 | 项目编号 | ||
| accessAddress | string | 必须 | 访问地址 | ||
| authStatus | integer | 必须 | 授权状态 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| string | 非必须 |
Path: /auth/v3/pay_1763435063783
Method: POST
接口描述:
注意:头部需要携带登录成功后返回的token凭证
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 | |
| token | 123123213131111 | 是 | 鉴权Token,登录成功后返回的 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| outTradeNo | string | 必须 | 订单号 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | string | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | string | 必须 | 激活码 |
Path: /auth/v3/goodList
Method: POST
接口描述:
注意:头部需要携带登录成功后返回的token凭证
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 | |
| token | 123123213131111 | 是 | 鉴权Token,登录成功后返回的 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| entryId | string | 必须 | 项目ID |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | string | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object [] | 必须 | 返回数据 | item 类型: object | |
| ├─ id | string | 必须 | 商品ID | ||
| ├─ goodName | string | 必须 | 商品名称 | ||
| ├─ authType | string | 必须 | 授权类型(1-天 2-周 3-月 4-季 5-年) | ||
| ├─ effectiveTime | string | 必须 | 授权时长 | ||
| ├─ price | string | 必须 | 商品价格 |
Path: /auth/v3/version
Method: POST
接口描述:
签名方式请看WIKI
注意:验签是使用返回的 data 中的 data 数据进行 key+json字符串+key 进行md5 加密,如果是一致说明数据未被篡改。
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| entryNo | string | 必须 | 项目编号 | ||
| version | string | 必须 | 当前版本号 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | string | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object | 必须 | 返回数据 | ||
| ├─ data | object | 必须 | 版本数据 | ||
| ├─ versionNumber | string | 必须 | 当前版本 | ||
| ├─ updateUrl | string | 必须 | 更新地址 | ||
| ├─ versionDescribe | string | 必须 | 版本描述 | ||
| ├─ extraParam | string | 必须 | 额外参数 | ||
| ├─ createTime | string | 必须 | 创建时间 | ||
| ├─ sign | string | 必须 | 签名信息,使用data进行签名,然后比对是否一致,一致说明数据未被篡改 |
Path: /auth/v3/entryList
Method: POST
接口描述:
注意:头部需要携带登录成功后返回的token凭证
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 | |
| token | 123123213131111 | 是 | 鉴权Token,登录成功后返回的 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | string | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object [] | 必须 | 返回数据 | item 类型: object | |
| ├─ id | string | 必须 | 项目ID | ||
| ├─ entryName | string | 必须 | 项目名称 | ||
| ├─ remark | string | 必须 | 备注 |
Path: /auth/v3/vcode
Method: POST
接口描述:
签名方式请看WIKI
注意:验签是使用返回的 data 中的 data 数据进行 key+json字符串+key 进行md5 加密,如果是一致说明数据未被篡改。
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| type | number | 必须 | 验证码类型,1-短信验证码,2-邮箱验证码 | ||
| phone | string | 必须 | 手机号(类型1时必填) | ||
| string | 必须 | 邮箱(类型2时必填) |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | string | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false |
Path: /auth/v3/login
Method: POST
接口描述:
签名方式请看WIKI
注意:验签是使用返回的 data 中的 token 数据进行 key+json字符串+key 进行md5 加密,如果是一致说明数据未被篡改。
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| appid | 1676056269929 | 是 | 应用ID | |
| sign | 123718923789173121 | 是 | 签名 |
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| type | string | 必须 | 验证码类型 1-短信验证码 2-邮箱验证码 | ||
| username | string | 必须 | 手机号/邮箱 | ||
| code | string | 必须 | 验证码 |
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|---|---|---|---|---|---|
| code | string | 必须 | 状态码,成功-200 失败-500 | ||
| message | string | 必须 | 信息描述,包括错误信息描述 | ||
| isSucceed | string | 必须 | 业务是否请求成功,成功-true 失败-false | ||
| data | object | 必须 | 返回数据 | ||
| ├─ token | string | 必须 | token,部分接口请求头部需要携带 | ||
| ├─ sign | string | 必须 | 签名信息,使用data进行签名,然后比对是否一致,一致说明数据未被篡改 |