Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する

Payment v1.17.0:新增订阅守护服务与重新授权,优化订阅体验

Xiao Fang
2025年1月7日 · edited
B
Blogs
cover


过去几周,我们对 Payment Kit 进行了多项功能升级和性能优化,旨在为用户提供更灵活、更高效的支付体验。这次更新重点围绕我们独创的订阅守护服务(SubGuard™ )重新授权支持,并在消费者、管理员和开发者体验方面进行了全面改进。

消费者体验 #

  • 开启订阅守护(SubGuard™ ) 服务

订阅守护服务(SubGuard™ ) 是此次更新的一大亮点,旨在确保订阅服务的连续性,避免因扣费失败导致服务中断。通过设置质押金额,用户可以在订阅周期内获得全面的保护,确保服务不受影响。用户可以在订阅详情页开启该功能并设置相应的质押金额,系统会根据保护周期确保扣费失败的情况不会影响到订阅服务。

订阅守护服务为订阅管理提供了更高的灵活性和安全性。用户可以根据需求主动结清账单,确保服务不中断,并且享受灵活的账单结算规则。

订阅守护服务能够有效提升订阅的稳定性,让用户享有更加无忧的服务体验,特别适用于对订阅中断非常敏感的场景。这项服务也是基于ArcBlock区块链独特的质押(Staking)机制的一种创新应用方式,体现了基于区块链的质押的又一种应用场景。

image.png

    • 支持范围
      • 支持 Arcblock 币种(USD 和 ETH 暂不支持)。
      • 用户可在订阅详情页配置开启订阅守护服务,并设置质押金额。
    • 灵活的保护机制
      • 质押金额要求: 质押金额包括预估账单金额和订阅守护服务费,至少需质押一个周期的账单费用。
      image.png
      • 保护周期:开启订阅守护服务后,系统将在保护周期内确保订阅服务不中断,用户需及时结清账单。
      image.png
      • 结清账单规则
        • 用户主动结清账单,不收取服务费。
        image.png
        • 超过保护周期仍未结清账单时,系统将使用质押金额自动结清,并收取服务费。
    • 操作指引
      • 开启订阅守护服务后,如果质押金额不足时,系统会发送通知,请及时关注订阅状态的相关通知。
      image.png
      • 结清账单后,用户可以随时停用订阅守护服务。用户可以自主选择是否退还质押,订阅如果取消,系统将自动退还剩余质押。
      image.png

  • 新增授权检查

我们不建议用户取消应用授权,但为了防止用户取消授权后影响订阅的正常扣费,我们在订阅详情页提供了授权检查,如果当前订阅未授权,用户可在订阅详情页重新发起支付授权。

image.png

开发者体验#

我们更新了 @blocklet/payment-react 来支持更多场景的组件需求,本次新增了 OverdueInvoicePayment 组件。OverdueInvoicePayment 是专为快速支付订阅欠费设计的组件,支持快速批量支付和自定义渲染,极大提升了开发者的灵活性和用户体验。

  • 主要功能
    • 查看总计欠费金额,并支持同一货币的快速批量支付。
    • USD 暂不支持,但可以查看订阅账单信息。
    • 提供默认模式和自定义模式,适应多种场景需求。

image.png

  • 组件入参说明
    • subscriptionId (必填):订阅的唯一标识。
    • onPaid (可选):支付成功后的回调函数。
    • mode (可选):组件模式,支持 defaultcustom,默认为 default
    • dialogProps (可选):对话框属性,默认 { open: true }
    • children (可选):在 custom 模式下接收支付数据的渲染函数。
  • 示例用法
    • 默认模式
<OverdueInvoicePayment subscriptionId={data.id} onPaid={() => console.log('Paid successfully')} />
    • 自定义模式
// handlePay:启动支付流程的函数。
// data:支付数据。
// subscription:订阅信息。
// summary:支付汇总信息(按货币分类)。
// invoices:账单列表。
// subscriptionUrl:订阅的详情链接。
<OverdueInvoicePayment subscriptionId={data.id} onPaid={() => console.log('Paid successfully')} mode="custom">
{(handlePay, { subscription, summary, invoices, subscriptionUrl }) => (
<div>
<p>订阅名称: {subscription.name}</p>
<p>当前货币总计: {summary[currencyId]?.amount}</p>
<p>账单数量: {invoices.length}</p>
<p>订阅详情链接: <a href={subscriptionUrl}>查看详情</a></p>
<button onClick={() => handlePay(summary[currencyId])}>立即支付</button>
</div>
)}
</OverdueInvoicePayment>

管理员体验#

  • 账单监控与分类

新增用量监控功能,每天定时通知异常和正常状态的订阅账单信息,帮助管理员及时处理问题,优化账单管理效率。

image.png

改进与修复#

  • 修复了 Safari 浏览器中创建产品时上传图片窗口被截断的问题,提升兼容性。
  • 优化账单支付体验
    • 批量支付完成,仅弹出一次提示,避免多次提醒干扰。
    • 欠费账单支付完成自动返回上一页。
  • 充值体验优化
    • 订阅详情展示余额信息,余额不足支持点击快速充值
    • 充值页默认定位到充值信息,减少其他信息的操作干扰
  • 调整移动端订阅详情页按钮显示,提升响应式布局体验。

image.png

我们共同改进:社区驱动的更新#

我们相信,我们产品的核心在于我们用户的活跃社区。您的见解和建议对我们来说是无价的,我们致力于采纳您的反馈,使 Payment Kit 变得更好。从小的调整到重大的变化,每一次更新都是提升您的体验和满足您需求的一步。感谢您持续的支持和参与, 让我们来看看您的反馈如何帮助我们在本次版本中改进!

新版本使用指南#

帮助我们改进#

我们期待着您在新版本的 Payment Kit 中享受更好的用户体验!

最后,感谢每位用户的关注和支持,我们将持续改进以更好地满足您的需求。如果您在使用过程中有任何需求、建议或问题,请前往社区进行反馈。我们将尽最大努力提供帮助。

收听音频概述#


你获得 0 积分