如何在网络上配置Stripe上的订阅,并在iOS和Android上授予用户访问
#android #mobile #ios #stripe

实施可再生订阅是一项艰巨的任务,尤其是如果您没有处理第三方付款处理器的API,例如Storekit,Google Billing Library,以前。当您需要同时支持多个平台时,它会变得更加困难。您会发现,管理跨平台订阅是具有挑战性的,因为您需要解决技术集成复杂性,考虑不同的平台政策和要求,找到正确的方法来管理订阅状态(取消,升级,降级等),等等和分析。

同时,跨平台订阅管理为您的用户提供任何设备上最佳的用户体验,并允许您降低平台费用(App Store的15-30%,条纹为2-3% - 只要感觉差异)。

在我们的previous article中,我们在iOS和Android平台上进行了购买后介绍了网络上的授予访问权限。现在,让我们深入研究网络部分,并探索如何配置条纹付款并授予您的用户在iOS和Android应用程序上的优质访问。

将条纹连接到qonversion

第一步是将qonversion连接到您的条纹帐户。导航到您的Qonversion项目设置。选择条纹并打开条纹切换。

Image description
这将使您进入页面上的条纹标志。单击 Connect ,如果您有一个现有条纹帐户,或者如果需要,请创建一个新的条纹帐户。如果您的条纹帐户还没有激活,则需要激活它(添加业务详细信息,银行信息等)。

Image description

设置条纹产品和许可

假设您已经拥有包含Apple和Google Product商店标识符的Qonversion Product。如果您想出售带有条纹的类似产品,请使用Stripe产品ID更新现有产品。

Image description
Stripe产品ID可以在Stripe仪表板中的“产品”选项卡中找到。只需选择产品并复制其ID显示在页面的右上角。

Image description
确保您的qonversion产品与表示用户的优质状态的Permission关联。

Image description
如果您只想在网络上出售订阅,则可以将Apple Store和Google Play产品ID字段留在Qonversion产品详细信息中。

将Stripe购买数据发送到qonversion

您可以直接致电API methods或在Web应用中使用我们的Web SDK将Stripe订阅数据发送到qonversion。选择最适合您的方法。如果您以前从未使用过API端点,我们的建议是使用Qonversion Web SDK发送Stripe购买数据。

1. API方法

qonversion提供了高性能的REST API,可让您创建和识别用户,发送购买数据,获得用户权利等等。本文的这一部分涵盖了您应使用的方法以根据条纹购买获得跨平台访问。

1.1创建用户

在开始发送Stripe购买数据之前,您需要创建一个用户。用户是具有以下端点的用户对象的跨平台实体:

POST https://api.qonversion.io/v3/users/:user_id

User_id是将为此用户注册的Qonversion用户ID。在此示例中,让我们使用以下标识符aa47b6fa作为user_id

1.2确定用户

用户身份允许跨平台用户标识和访问管理。身份根据跨不同平台的付款管理用户访问。您可以在我们的documentation中找到有关身份的更多信息。

使用Identity方法识别用户:

POST https://api.qonversion.io/v3/identities/:identity_id

对于identity_id,始终使用唯一的ID值。否则,用户可以与另一个用户的高级状态匹配。您可以将内部系统中的用户ID用作identity_id。在我们的示例中,我们将使用stripe_aa47b6fa作为identity_id

1.3发送购买

在这里,我们到达最有趣的部分。现在,一切都准备好将用户购买数据发送到qonversion。为此使用purchases endpoint

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可以与您在上一步中提供的Stripe产品标识符相同,该标识符是Qonversion Product YAURN Subscription_idStripe Subscription object的标识符。其余参数的描述可以在我们的guide on sending Stripe purchases data to Qonversion中找到。

如果成功创建了购买,则响应将如下:

{
   "currency": "USD",
   "price": "100",
   "purchased": 1659008000,
   "stripe_store_data": {
       "product_id": "prod_MAbVQQaljmF6gm",
       "subscription_id": "sub_1LSGVgL9K6ILzohYq5GCbktn"
   },
   "user_id": "aa47b6fa"
}

现在,您可以在Qonversion帐户中查看客户选项卡,以查找客户。 Qonversion user_id(aa47b6fa)identity_id(stripe_aa47b6fa)可以使用搜索:

Image description
这是您可以在Qonversion仪表板中快速看到的客户级别的详细信息,包括购买产品的价格和日期:

Image description
成功发送购买后,Qonversion基础架构处理所有订阅更改,例如续订,试用转换,退款等。这会影响用户权限,并在我们的analytics dashboards中反映出来。

1.4获得权利

此时,您应该能够接收上一步中配置的主动权限(设置条纹产品和权限)。在我们的示例中,这是具有高级ID的许可。致电以下method检查权利:

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. Web SDK

Web SDK是一个打字稿浏览器 - 客户lient SDK,与引擎盖下的Qonversion API交互。借助Qonversion的Web SDK,您可以轻松地识别用户,发送购买,自定义用户属性,检查权利状态,但是仍然需要在后端方面接收权利状态。您可以找到SDK是一种更加灵活,更方便的方式,可以从Web应用程序分享数据。

2.1启动Qonversion Web SDK

您可以找到有关launch the SDK in the documentation here的详细信息。您需要调用Qonversion.initialize方法并将QonversionConfigBuilder作为参数传递:

const qonversionInstance = Qonversion.initialize(config);

2.2用qonversion Web SDK识别用户

用户身份允许跨平台用户标识和访问管理。身份根据跨不同平台的付款管理用户访问。您可以在我们的documentation here中找到有关身份的更多信息。

使用identify方法识别用户:

await qonversionInstance.identify('identity_id');

始终为identity_id使用唯一的ID值。否则,用户可以与另一个用户的高级状态匹配。您可以从系统中使用内部用户ID作为identity_id。在此示例中,我们将使用stripe_aa47b6fa作为identity_id

2.3发送购买

收集Stripe购买数据并致电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产品annual的Stripe产品标识符相同(请参阅上一步设置条纹产品和许可)。 Subscription_idStripe Subscription object的标识符。其余参数的描述可以在我们的guide Send Stripe purchases to Qonversion中找到。

如果成功创建了购买,则响应如下:


{
  currency: 'USD',
  price: '100',
  purchased: 1659008486,
  stripeStoreData: {
    subscriptionId: 'sub_1LSGVgL9K6ILzohYq5GCbktn',
    productId: 'prod_MAbVQQaljmF6gm'
  }
}

您可以在Qonversion帐户中选中“客户”选项卡,以查看此用户的详细信息。您可以使用identity_id(stripe_aa47b6fa)查找客户:

Image description
您可以在用户级别上看到详细信息,包括购买的产品价格和购买日期:

Image description
成功发送购买后,Qonversion基础架构处理所有订阅状态,例如续订,试用转换,退款等。它会影响用户权限并出现在analytics中。

2.4获得权利

此时,您应该获得上一步中配置的主动权限(设置条纹产品和权限)。在我们的示例中,这是premium ID的许可。调用getEntitlements方法:

const entitlements = await qonversionInstance.getEntitlements();

获取订阅状态并在移动应用程序上解锁高级访问

最后一步是在iOS或Android移动应用程序上获取订阅状态以处理用户访问。启动该应用程序并调用identify方法:

ios

Qonversion.identify("identity_id")

android

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
  }
}

android

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
    }
})

您可以在此处看到,移动应用程序用户具有基于其条纹订阅的权利(访问级别)。

Image description android/ios

结论

本文演示了如何根据其Web订阅管理移动应用程序上的用户访问。实施是快速而直接的。

实现跨平台订阅管理后,您可以轻松地跟踪Qonversion Analytics仪表板中每个平台的性能。此外,Qonversion提供了一组工具来利用您的订阅数据,包括integrations,Apple搜索广告归因和推送通知。