实施可更新订阅是一项艰巨的任务,尤其是如果您之前没有处理过第三方支付处理器的 API,例如 StoreKit、Google Billing Library、Stripe。当您需要同时支持多个平台时,它变得更加困难。您会发现管理跨平台订阅具有挑战性,因为您需要解决技术集成的复杂性、考虑不同平台的政策和要求、找到管理订阅状态(取消、升级、降级等)和分析的正确方法.
同时,跨平台订阅管理为您的用户提供随时随地在任何设备上的最佳用户体验,并让您降低平台费用(应用商店为 15-30%,Stripe 为 2-3%——感受不同)。
现在让我们深入研究 Web 部件并探索如何配置 Stripe 支付并授予您的用户在 iOS 和 Android 应用程序上的高级访问权限。
将 Stripe 连接到 Qonversion
第一步是将 Qonversion 连接到您的 Stripe 帐户。导航到您的 Qonversion 项目设置。选择 Stripe 并打开 Stripe 开关。
这将带您进入 Stripe 登录页面。如果您有现有的 Stripe 帐户,请单击连接,如果需要,请创建一个新帐户。如果您的 Stripe 帐户尚未激活,您需要激活它(添加业务详细信息、银行信息等)。
设置 Stripe 产品和权限
假设您已经拥有包含 Apple 和 Google 产品商店标识符的 Qonversion产品。如果您想使用 Stripe 销售类似产品,请使用 Stripe 产品 ID 更新 Qonversion 中的现有产品。
Stripe 产品 ID 可以在 Stripe Dashboard 的 Products 选项卡中找到。只需选择产品并复制页面右上角显示的 ID。
确保您的 Qonversion 产品与指示用户高级状态的权限相关联。
如果您只想在网络上销售订阅,您可以将 Qonversion 产品详细信息中的 Apple Store 和 Google Play 产品 ID 字段留空。
将 Stripe 购买数据发送到 Qonversion
您可以直接调用API 方法或在您的 Web 应用中使用我们的Web SDK将 Stripe 订阅数据发送到 Qonversion。选择最适合您的方法。如果您以前从未使用过 API 端点,我们的建议是使用 Qonversion Web SDK 发送 Stripe 购买数据。
1. API 方法
Qonversion 提供高性能 REST API,允许您创建和识别用户、发送购买数据、获取用户权利等。本文的这一部分介绍了您应该使用的方法,以便基于 Stripe 购买获得跨平台访问。
1.1 创建用户
在开始发送 Stripe 购买数据之前,您需要创建一个用户。用户是具有以下端点的用户对象的跨平台实体:
POST https://api.qonversion.io/v3/users/:user_id
User_id
是将为该用户注册的 Qonversion 用户 ID。让我们在此示例中aa47b6fa
使用以下标识符。user_id
1.2 识别用户
用户身份允许跨平台的用户识别和访问管理。身份管理基于跨不同平台的支付的用户访问。您可以在我们的文档中找到有关身份的更多信息。
使用Identity方法识别用户:
POST https://api.qonversion.io/v3/identities/:identity_id
identity_id
始终使用唯一的 ID 值。否则,用户可以匹配到另一个用户的高级状态。您可以将内部系统中的用户 ID 用作identity_id
. 在我们的示例中,我们将使用stripe_aa47b6fa
as identity_id
。
1.3 发送购买
在这里,我们进入了最有趣的部分。现在一切准备就绪,可以将用户购买数据发送到 Qonversion。为此使用购买端点:
POST https://api.qonversion.io/v3/users/:user_id/purchases
下面是带有您应该与方法体一起转发的参数的示例:
{
"currency": "USD",
"price": "100",
"purchased": 1659428809,
"stripe_store_data": {
"subscription_id": "sub_1LSGVgL9K6ILzohYq5GCbktn",
"product_id": "prod_MAbVQQaljmF6gm"
}
}
为了授予用户有效权限,product_id
必须与您在上一步中提供给 Qonversion 产品年鉴的 Stripe 产品标识符相同。Subscription_id
是Stripe Subscription 对象的标识符。其余参数的描述可以在我们将 Stripe 购买数据发送到 Qonversion 的指南中找到。
如果购买成功创建,响应将如下:
{
"currency": "USD",
"price": "100",
"purchased": 1659008000,
"stripe_store_data": {
"product_id": "prod_MAbVQQaljmF6gm",
"subscription_id": "sub_1LSGVgL9K6ILzohYq5GCbktn"
},
"user_id": "aa47b6fa"
}
您现在可以检查您的 Qonversion 帐户中的客户选项卡来寻找您的客户。搜索可通过 Qonversionuser_id(aa47b6fa)
或identity_id(stripe_aa47b6fa)
:
以下是您可以在 Qonversion 仪表板中快速查看的客户级别详细信息,包括购买产品的价格和日期:
成功发送购买后,Qonversion 基础架构会处理所有订阅更改,例如续订、试用转换、退款等。这会影响用户权限并反映在我们的分析仪表板中。
1.4 获取权利
此时,您应该能够收到在上一步中配置的活动权限(设置 Stripe 产品和权限)。在我们的示例中,这是具有高级 ID 的权限。调用以下方法检查权限:
GET https://api.qonversion.io/v3/users/:user_id/entitlements
您可以在下面看到带有权利响应的示例:
{
"data": [
{
"active": true,
"expires": 1690965033,
"id": "premium",
"product": {
"product_id": "annual",
"subscription": {
"current_period_type": "normal",
"renew_state": "will_renew"
}
},
"started": 1659429033
}
]
}
2.网络SDK
Web SDK 是一个 TypeScript 浏览器客户端 SDK,它在底层与 Qonversion API 交互。使用 Qonversion 的 Web SDK,您可以轻松识别用户、发送购买、自定义用户属性、检查授权状态,但仍然需要在后端接收授权状态。您会发现 SDK 是一种更灵活、更方便的方式,可以将数据从您的 Web 应用程序共享到 Qonversion。
2.1 启动Qonversion Web SDK
您可以在此处的文档中找到有关如何启动 SDK 的详细信息。您需要调用该方法并作为参数Qonversion.initialize
传递:QonversionConfigBuilder
const qonversionInstance = Qonversion.initialize(config);
2.2 使用Qonversion Web SDK识别用户
用户身份允许跨平台的用户识别和访问管理。身份管理基于跨不同平台的支付的用户访问。您可以在此处的文档中找到有关身份的更多信息。
使用方法识别用户identify
:
await qonversionInstance.identify('identity_id');
始终使用唯一的 ID 值identity_id
。否则,用户可以匹配到另一个用户的高级状态。您可以将系统中的内部用户 ID 用作identity_id
. 在本例中,我们将使用stripe_aa47b6fa
as identity_id
。
2.3 发送购买
收集条带购买数据并调用sendStripePurchase method
:
сonst stripePurchaseData: PurchaseCoreData & StripeStoreData = {
currency: 'USD',
price: '100',
productId: 'prod_MAbVQQaljmF6gm',
purchased: 1659008486,
subscriptionId: 'sub_1LSGVgL9K6ILzohYq5GCbktn'
};
const purchase = await qonversionInstance.sendStripePurchase(stripePurchaseData);
为了授予用户有效权限,product_id
必须与 Qonversion 产品中的 Stripe 产品标识符相同annual
(请参阅上一步设置 Stripe 产品和权限)。Subscription_id
是Stripe Subscription 对象的标识符。
如果购买创建成功,响应如下:
{
currency: 'USD',
price: '100',
purchased: 1659008486,
stripeStoreData: {
subscriptionId: 'sub_1LSGVgL9K6ILzohYq5GCbktn',
productId: 'prod_MAbVQQaljmF6gm'
}
}
您可以查看 Qonversion 帐户中的客户选项卡以查看该用户的详细信息。您可以使用identity_id(stripe_aa47b6fa)
以下方式查找客户:
您可以查看用户级别的详细信息,包括购买的产品价格和购买日期:
成功发送购买后,Qonversion 基础架构会处理所有订阅状态,例如续订、试用转换、退款等。它会影响用户权限并显示在分析中。
2.4 获取权利
此时,您应该获得在上一步中配置的活动权限(设置条纹产品和权限)。在我们的示例中,这是一个带有premium ID
. 调用getEntitlements
方法:
const entitlements = await qonversionInstance.getEntitlements();
在移动应用上获取订阅状态并解锁高级访问权限
最后一步是在 iOS 或 Android 移动应用上获取订阅状态以处理用户访问。启动应用程序并调用identify
方法:
iOS
Qonversion.identify("identity_id")
安卓
Qonversion.identify("identity_id")
Identity ID
必须与您在网络上识别用户时使用的相同。
然后调用checkPermissions
方法:
iOS
Qonversion.checkPermissions { (permissions, error) in
if let error = error {
// handle error
return
}
if let premium: Qonversion.Permission = permissions["premium"], premium.isActive {
// handle the permission
}
}
安卓
Qonversion.checkPermissions(object: QonversionPermissionsCallback {
override fun onSuccess(permissions: Map<String, QPermission>) {
val premiumPermission = permissions["premium"]
if (premiumPermission != null && premiumPermission.isActive()) {
// handle the permission
}
}
override fun onError(error: QonversionError) {
// handle error here
}
})
正如您在此处看到的,移动应用程序用户具有基于他的条带订阅的权利(访问级别)。
结论
本文演示了如何根据用户的 Web 订阅来管理用户对移动应用程序的访问。实施快速而直接。
实施跨平台订阅管理后,您可以在 Qonversion 分析仪表板中轻松跟踪每个平台的性能。此外,Qonversion 提供了一组工具来利用您的订阅数据,包括集成、Apple Search Ads 归因和推送通知。