メインコンテンツまでスキップ

实时开发者通知(RTDN)

Aptoide Connect 的实时开发者通知(RTDN)允许开发者接收有关订阅型商品购买相关特定事件的即时更新。它还会通知已作废的购买,这可能会影响消耗型商品和订阅。
借助 RTDN,您可以随时了解客户的购买情况,并对购买的任何变更实时做出响应。


概述

Aptoide Connect 的 RTDN 服务会向开发者发送以下通知类型:

  1. 一次性商品(消耗型)购买通知:当消耗型商品类型购买成功时发送的通知。
  2. 订阅购买通知:当订阅的状态发生变化时发送的通知。请查看本节,了解订阅生命周期的各种状态
  3. 已作废购买通知:当购买被作废时发送的通知。

这些通知提供有关事件的关键详情,使您能够更新记录或采取必要的操作。

借助此功能,您可以从以下旨在提升用户体验的方面改进您的应用:

  • 即时更新:实时通知可在订阅变更(例如续订或取消)发生时立即通知用户。

  • 增强信任:凭借最新的订阅信息,用户可以信赖服务提供准确的账单和订阅状态,从而增强对平台的信心。

  • 无缝的用户体验:最新的后端数据可确保用户收到最新的订阅详情,避免混淆或过时的信息。

  • 后端同步:对于开发者而言,保持后端为最新状态可确保通过 RTDN 进行准确、及时的数据传递,防止订阅管理中出现延迟或不一致等问题。


设置 RTDN API

要开始接收 RTDN,开发者必须注册一个回调 URL。此 URL 是 Aptoide Connect 服务发送事件的目标地址。

1. 注册您的回调 URL

要注册用于 RTDN 的回调 URL,请访问 Aptoide Connect 中的 Webhooks 页面。

图 1 - 用于注册 RTDN URL 的 Webhooks 页面

图 1 - 用于注册 RTDN URL 的 Webhooks 页面

进入此页面后,您可以使用 Add 按钮添加新的 URL,并可以选择您希望接收的通知类型。

RTDN 可接收的商品类型有 2 种:

  1. Subscriptions:此选项将触发 Aptoide Connect 服务发送与 Subscriptions 类型商品相关的通知。
  2. InApp:此选项将触发 Aptoide Connect 服务发送与 InApp 类型商品相关的通知。
图 2 - 注册 RTDN URL

图 2 - 注册 RTDN URL

2. 管理您的回调 URL

注册用于 RTDN 的 URL 后,您可以使用以下选项对其进行管理:

图 3 - 管理 Webhook

图 3 - 管理 Webhook


通知载荷

您将收到的通知载荷采用 base64 编码方案编码在 data 参数中。

{
"message": {
"attributes": {
"key": "value"
},
"data": "eyJ2ZXJzaW9uIjogIlN0cmluZyIsICJwYWNrYWdlTmFtZSI6ICJTdHJpbmciLCAiZXZlbnRUaW1lTWlsbGlzIjogIkxvbmciLCAib25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24iOiAiT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24iLCAic3Vic2NyaXB0aW9uTm90aWZpY2F0aW9uIjogIlN1YnNjcmlwdGlvbk5vdGlmaWNhdGlvbiIsICJ2b2lkZWRQdXJjaGFzZU5vdGlmaWNhdGlvbiI6ICJWb2lkZWRQdXJjaGFzZU5vdGlmaWNhdGlvbiJ9",
"messageId": "123456789012"
}
}

解码 data 参数后,您会找到以下 JSON 方案的载荷:

{
"version": String,
"packageName": String,
"eventTimeMillis": Long,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification
}

此载荷中的参数说明如下:

名称

类型

描述

version

String

所收到载荷的版本。

packageName

String

通知所对应应用的包名。

eventTimeMillis

Long

此事件发生的时间戳。

oneTimeProductNotification

OneTimeProductNotification (nullable)

当此参数存在时,表示该通知与消耗型商品购买中的状态变化相关。
此参数与 subscriptionNotificationvoidedPurchaseNotification 互斥。

subscriptionNotification

SubscriptionNotification (nullable)

当此参数存在时,表示该通知与订阅购买中的状态变化相关。
此参数与 voidedPurchaseNotification 互斥。

voidedPurchaseNotification

VoidedPurchaseNotification (nullable)

当此参数存在时,表示该通知与已作废的购买相关。
此参数与 subscriptionNotification 互斥。

请查看每种通知类型可能生成的载荷。


处理通知

当事件发生时,我们的服务将向已注册的回调 URL 发送一个 HTTP POST 请求,其中包含 JSON 格式的通知载荷。
请实施以下做法以有效处理这些通知:

  1. 以 200 OK 状态码进行响应

    • 确保您的服务器以 200 OK HTTP 状态码响应通知,以确认接收。
    • 在响应正文中包含诸如 "Event received successfully" 之类的消息,以确认该事件。

    响应示例:

    {
    "message": "Event received successfully"
    }

处理通知的最佳实践

  • 快速响应:以 200 OK HTTP 状态码响应通知端点作为确认。这可确保通知已成功接收。
  • 错误处理:如果您的服务器不可用或返回错误,我们的服务将使用指数退避多次重试通知传递。

常见问题

如何测试我的回调 URL?

使用沙盒测试机制进行一次购买,并接收该购买的事件。

如果我的服务器宕机,会发生什么?

如果您的服务器不可用,我们的服务将使用退避算法多次重试发送通知。