Skip to content

发布付费应用

从 Olares v1.12.3 版本开始,Olares 应用市场支持付费应用分发。要销售应用,开发者必须在区块链上注册 Olares ID (DID) 并安装 Merchant 应用来管理许可证、订单和收款记录。

封闭测试中

该功能目前处于封闭测试阶段。如需发布付费应用,请通过邮件 [email protected] 联系我们申请。

目前仅支持付费下载应用。应用内购买(IAP)与订阅收费模式仍在开发中。

本文将介绍如何发布付费应用并配置 Merchant。

前提条件

开始前,请确保你已具备:

  • Olares ID:有效的 Olares ID(例如 [email protected])。
  • Olares OS:运行 v1.12.3 或更高版本的 Olares 主机。
  • 开发者资格:已获得开发者资格(通过邮件申请)。
  • 本地环境:本地计算机已安装 Node.js。

设置钱包并充值 Gas 费

要启用支付功能,需要在区块链上注册你的 Olares ID (DID)。这属于链上交互,需要少量的网络手续费 (Gas Fee)。

设置加密钱包

本教程以 MetaMask 为例,你也可以使用其他加密钱包。

  1. 在手机端打开 LarePass
  2. 进入设置 > 安全 > 助记词查看助记词。

    安全提示

    助记词是账户的最高权限凭证。切勿将其泄露给他人或上传至公共代码库。请在安全的本地环境中执行以下操作。

  3. 在浏览器中安装 MetaMask 插件。
  4. 在 MetaMask 中选择添加钱包 > 导入钱包,输入你的 Olares 助记词完成导入。

充值 Gas 费

注册过程会消耗 Optimism 网络上的少量 ETH 作为手续费。

  1. 在 MetaMask 中切换网络至 Optimism (OP Mainnet)

  2. 复制你的钱包地址(以 0x 开头)。

    Copy MetaMask wallet address

  3. 向该地址转入少量 ETH。建议至少 0.0005 ETH 以支付后续的 Gas 费。

生成并注册 RSA 密钥

为确保交易安全与许可证唯一性,你需要生成 RSA 密钥对,并将公钥注册到你 Olares ID 的链上记录中。

生成 RSA 密钥对

  1. 安装 did-cli 工具:
    bash
    npm install -g @beclab/olaresid
  2. 生成默认的 2048 位 RSA 密钥对:
    bash
    did-cli rsa generate
    命令成功后,你会看到类似如下输出: RSA key pair generated
  3. 查看生成的密钥内容:
    bash
    cat ./rsa-public.pem
    cat ./rsa-private.pem

    安全警告

    请妥善保管 rsa-private.pem。稍后配置 Merchant 应用时需要用到它。

注册 RSA 公钥

将生成的公钥绑定到你的 Olares ID。此操作需要使用助记词进行签名,并会消耗 Gas。

  1. 将助记词导出为临时环境变量,并将值用双引号包裹:

    bash
    export PRIVATE_KEY_OR_MNEMONIC="xx xxx xx ..."
    echo $PRIVATE_KEY_OR_MNEMONIC
  2. 检查你的 Olares ID 是否已存在 RSA 公钥:

    bash
    did-cli rsa get [email protected] --network mainnet

    若看到以下提示,说明未设置公钥,可以继续:

    text
    ❌ No RSA public key set for this domain
  3. 验证 Owner 钱包地址,确保其与你之前充值的钱包一致:

    bash
    did-cli owner [email protected] --network mainnet

    示例输出:

    text
    👤 Owner: 0x3.....
  4. 将 RSA 公钥注册上链:

    bash
    did-cli rsa set [email protected] ./rsa-public.pem --network mainnet
  5. 验证注册结果:

    bash
    did-cli rsa get [email protected] --network mainnet
  6. 从环境中清除助记词:

    bash
    unset PRIVATE_KEY_OR_MNEMONIC
    echo $PRIVATE_KEY_OR_MNEMONIC

    若无输出,说明已清除。

配置你的应用(OAC)

付费应用与免费应用的 OAC 基本一致,你只需要额外完成两项配置:

  • 在 Chart 根目录(OAC 根目录)添加 price.yaml 文件。
  • VERIFIABLE_CREDENTIAL 注入到应用中,以便应用读取用户的购买凭证。

添加定价配置

在 Chart 根目录下创建 price.yaml

yaml
# 开发者的 Olares 实例地址
developer: alice123.olares.com

# 付费应用
paid:
  # product_id 格式:repoName-appName-productId
  product_id: apps-appname-paid
  price:
    - chain: optimism | eth
      token_symbol: USDC | USDT
      receive_wallet: "0xcbbcd55960eC62F1dCFBac17C2a2341E4f0e81c8"
      product_prize: 100000
  description:
    - lang: en
      title: Purchase item title
      description: Purchase item description
      icon: https://item.icon.url

# 应用内购买或订阅项目(尚未实现)
products: []

启用许可证校验

你的应用可以通过注入的环境变量读取用户的购买凭证。

在需要进行付费校验的 Pod 模板中添加该环境变量:

yaml
- name: VERIFIABLE_CREDENTIAL
  value: "{{ .Values.olaresEnv.VERIFIABLE_CREDENTIAL }}"

OlaresManifest.yaml 中声明该变量:

yaml
envs:
  - envName: VERIFIABLE_CREDENTIAL
    required: true
    type: string
    editable: false
    applyOnChange: true

更多环境变量行为说明,请参考 OlaresManifest.yaml 中的环境变量

提交应用

按照标准提交流程创建 PR,提交你的应用。

安装并配置 Merchant

Merchant 应用是你的收银台和管理面板,可用于:

  • 查看开发者信息(产品列表、RSA 密钥、收款钱包、订单等)。
  • 发放产品许可证。
  • 应用启动时验证许可证。

保持 Merchant 在线

购买请求需要实时回调你的 Olares 主机完成验证。请确保运行 Merchant 的主机 24 小时在线,网络连接稳定快速。主机离线或网络不稳定可能导致用户无法完成购买。

安装 Merchant

  1. 打开 Olares 应用市场,搜索“Merchant”。
  2. 点击获取,然后点击安装

初始化配置

安装完成后,从启动台打开 Merchant。

  1. 在登录界面,输入你的开发者 Olares ID,并点击导入开发者
  2. Merchant 会自动加载链上产品信息与 RSA 公钥。
  3. 打开你的私钥文件:
    bash
    cat ./rsa-private.pem
    复制完整内容,粘贴到 Merchant 的对话框中,然后点击导入私钥

在 Merchant 中管理销售

设置完成后,Merchant 会打开 Home 面板,你可以在此监控身份状态、密钥配置、钱包资产和交易历史。

INFO

左侧导航栏中的 Store 与 Buy App 页面目前仅用于调试/测试。在当前发布流程中可忽略。

同步状态

交易列表上方的状态指示器支持手动刷新:

  • Synced:已同步至最新。
  • Syncing:正在从链上拉取数据。
  • Not synced:未同步。
  • Error:同步失败,请检查网络连接。

交易字段说明

字段说明
WalletMerchant 管理的开发者收款钱包地址。
Type交易类型:
  • Incoming:收入(作为接收方
  • Outgoing:支出(作为发送方)
Tx Hash交易记录哈希,链上交易的唯一标识符。
From/To交易对手地址,根据交易类型显示:
  • Incoming:发送方地址
  • Outgoing:接收方地址
Contract代币合约地址,表示资产类型与来源:
  • Native:原生 ETH 转账,无合约交互
  • [合约地址]:ERC-20 代币智能合约地址
Amount交易金额,单位与 Contract 指定的代币一致。
Time交易在链上被确认并记录的时间戳。
Product
  • Product ID:与 Olares 应用购买相关的交易
  • -:与应用销售无关的普通转账

更新开发者信息

如需修改 RSA 密钥、更新产品信息、调整价格或更改收款地址:

  1. 重新生成 RSA 密钥更新应用配置,然后提交包含更新信息的 PR。
  2. 等待 PR 审核合并。
  3. PR 合并后,从启动台打开 Merchant。收到提示时,点击更新配置/重新安装以应用最新配置。更改将立即生效。