出售 Plesk 许可证和扩展许可证

如果您想要出售干净的 Plesk 实例和一系列商业扩展可使用该方式。该方式不支持应用内购买模式。

实施详情

  1. 您的在线商店必须有 Plesk 和您要代理的扩展等物件。
  2. 当一个客户下单时,您需要通过 KA Partner API 联系KA为购买物件请求许可证。
  3. KA 将会创建被请求的许可证,然后给您发送这些许可证的一个激活码。注意 KA 有两个版本的 Partner API:v1 和 v3。
    1. Partner API v1 (已过时,不推荐使用):
      1. 一个调用可同时请求 Plesk 密钥和多个扩展的密钥(请查看 createKey() )。
      2. 使用一个激活码同时激活 Plesk 许可证和所有其它额外的许可证密钥。
    2. Partner API v3 (推荐使用):
      1. 一个调用只能请求一个密钥(要么是 Plesk 密钥,要么是某扩展的密钥)( 请查看 创建许可证密钥 )。
      2. 使用一个激活码激活主要的 Plesk 许可证和所有其它额外的许可证密钥 (单独通过 API 调用的其它密钥会被附加到主要的许可证。用于主要的 Plesk 许可证的激活码还将可以激活所有附加的密钥)。
  4. 在您的商店收到激活代码后,您则可以将该代码给客户(通过在线商店UI或电子邮件)。或者,可以通过在Plesk实例上运行CLI命令为客户激活许可证。您可以通过 CLI 使用 “license” 工具激活许可证( Plesk for LinuxPlesk for Windows )。

应用内扩展增销

通过这种方案可以于在线商店中随附Plesk 实例增销扩展。当某个客户点击 Plesk 中扩展目录里的 “即刻购买” 按钮时,会进入到您的在线商店,客户可在此完成订单流程。

与 KA 整合

  1. 当一个客户下单时,您需要通过 KA Partner API 联系KA为购买的扩展请求许可证。传递主要的 Plesk 密钥号作为 API 调用中的参数。
  2. KA 将会创建请求的扩展许可证并将其附加到主要的 Plesk 许可证。
  3. 您可以使用 Partner API v1 或 v3 请求许可证:
    1. Partner API v1 (已过时,不推荐使用):在一个调用中创建扩展许可证并将其附加到主要的 Plesk 许可证(请查看 createKey()
    2. Partner API v3 (推荐使用):在一个调用中创建扩展许可证并将其附加到主要的 Plesk 许可证(请查看 创建许可证密钥

当您通过 Partner API 订购一个扩展许可证后,该许可证会被附加到主要的 Plesk 许可证。该扩展许可证将会在下一次 Plesk 连接 KA 更新主要的 Plesk 许可证时于 Plesk 服务器中安装(通常这需要 1 天到 1 个月的时间)。客户也可以执行下面的步骤立即安装扩展许可证(例如,在您的在线商店 UI 中执行):

  1. 点击左边导航窗格中的 工具与设置
  2. 点击 许可证管理 (在 Plesk 下)。
  3. 点击 检索密钥 以在 Plesk 中安装新的许可证密钥。

将客户转发至您的在线商店

默认情况下,客户点击 Plesk 中扩展目录里的 “即刻购买” 按钮会进入到 Plesk 商店而不是您的商店。您可以在 panel.ini 文件中指定您商店的主机名更改跳转方式。自定义商店主机名后,扩展内显示的所有 “即刻购买” 链接和其它可能的增销链接都将导向您的在线商店。

若要更改 “即刻购买” 按钮链接的在线商店 URL地址,请编辑 panel.ini 文件并添加以下行到 [extensions] 部分:

[extensions]
buyUrl = "https://shop.com"

其中”shop.com” 是在线商店的域名。

以下是一个示例:

  • 扩展使用的原始 URL 地址是:

    https://go.plesk.com/buy-plesk-ext/some-extension-name?kn=PLESK.12345678.0001&token=U29NZVVuaXF1ZUdVSUQxMjM%3D&product-id=SomeProductID
    

    您在 panel.ini 文件中指定您的商店主机名后扩展所使用的被修改的URL地址是: https://shop.com/?extension-id=some-extension-name&kn=PLESK.12345678.0001&token=U29NZVVuaXF1ZUdVSUQxMjM%3D&product-id=SomeProductID

许可证购买流程将会出现以下 “统一付费” 和 “层级付费” 授权模式:

image 79081

现在,客户每次点击 “即刻购买” 按钮,都会进入到您的在线商店。请确保您的在线商店能够处理已修改 URL 中所有传递的参数:

参数名称 示例 描述
extension-id extension-id=some-extension-name

扩展的 ID 在此处找到扩展列表及其 ID (“代码”)

为请求的扩展选择合适的 Partner API 常数并将其包括到 Partner API 调用中。可在此处查看一系列 Partner API 常数:

请注意 “Extension ID” 与 Excel 文件中的 extension-id 相对应,而 “extensionId” 与 JSON 文件中的 extension-id 相对应。

kn kn=PLSK.12345678.0001 主要的 Plesk 密钥号。传递该密钥号作为 Partner API 调用中的父级密钥号。
token token=U29NZVVuaXF1ZUdVSUQxMjM%3D

备选参数。仅 “统一付费” 授权模式需要。

在该许可授权模式下,网站所有者可根据自己的需要单独购买产品和服务。可在允许最终用户下单的 Plesk UI 中添加一个链接来实现。首先,最终用户选择所需的网站,然后在扩展提供的产品中选择所需产品,接着进入在线商店完成订单流程。

product-id 参数含有客户选择的产品 ID。为请求的扩展和产品选择合适的 Partner API 常数并将其包括到 Partner API 调用中。要按 extension-id 和 product-id 查找 Partner API 常数,请使用下面的链接:

注意 “Extension ID” 和 “Extension Product ID” 分别与 Excel 文件中的 extension-idproduct-id 相对应,“extensionId” 和 “extensionProductId” 分别与 JSON 文件中的 extension-idproduct-id 相对应。

token 参数是由扩展本身生成的,且含有订单的唯一 ID。该 ID 用于扩展跟踪 ISV 端的订单状态。必须以下面的方式处理该参数:

  1. 首先,必须根据 URL 编码 机制解码。
  2. 然后根据 BASE64 编码方式解码。
  3. 接着通过一个 Partner API 调用传递到 KA:
product-id product-id=SomeProductID  

这就是 “单独付费” 授权模式的许可证购买流程:

image 79082

注解: 该功能只会影响 Plesk 使用 “go.plesk.com” 作为目的主机名出售的扩展。如果某个扩展直接由ISV出售,其 “即刻购买” 链接和其它可能的增销链接将不受影响。

如果控制是否显示和出售扩展

更改 “即刻购买” 链接的URL地址(如上所述),所有的商业扩展,包括以后将要添加到 扩展目录 中的扩展,将会导向至您的商店,即使您还未对其进行任何设置。您可以为Plesk扩展目录配置一个智能代理服务器以设置您的客户只能看到您准备要出售的商业扩展。该代理服务器将会提取扩展目录feed,删选出您准备要出售的扩展,然后给您的Plesk 实例提供已修改的feed。

实施详情:

  1. 设置将要运行代理脚本的服务器(物理或虚拟)。

  2. 下载 代理脚本 到服务器。该链接包含如何部署和操作该脚本的说明。

  3. 配置代理只通过将要在您的Plesk 服务器上显示的商业扩展。该代理就像一个白名单 – 您需要指定应在Plesk中显示的商业扩展的 ID,而其它的则不显示。

    注解: 该代理只会影响有指向 https://go.plesk.com 的“即刻购买” 链接的扩展。免费的和其 “即刻购买” 按钮指向其它地址的扩展不会被代理过滤。不管代理设置如何,这些代理都将会在您的 Plesk 服务器上的扩展目录中出现。

  4. 更改您所有的Plesk 服务器上的扩展目录feed URL地址以指向代理服务器地址。可添加以下行到 panel.ini 来实现此目的:

    [extensions]
    catalog.url = http://<proxy-address>:8080
    
  5. 当扩展目录中出现新的商业扩展而您已设置您的商店要出售该扩展时,请添加相应的ID修改代理,以保证该扩展能够通过且向客户显示。注意该目录feed会在Plesk 服务器上缓存。新的扩展不会立即显示。

下面的图显示了代理脚本如何用于扩展目录:

image 79094