【问题标题】:Link to manage Play Store subscription用于管理 Play 商店订阅的链接
【发布时间】:2016-05-06 22:38:28
【问题描述】:

在iOS上,我们可以使用https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions,它会打开原生订阅管理器。

这是否可以通过 Play 商店执行此操作,或者是否有任何其他可能的方式来打开 Google Play 商店的本机订阅管理器?

与此问题相同,但适用于 Android:Link to app manage subscriptions in app store

【问题讨论】:

    标签: android google-play


    【解决方案1】:

    我使用操作视图打开 Google Play 商店 -> 帐户。

        private fun openPlaystoreAccount() {
            try {
                startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/account?utm_source=google&utm_medium=account&utm_campaign=my-account")));
            } catch (e: ActivityNotFoundException) {
                showToast("Cant open the browser")
                e.printStackTrace()
            } 
        }
    

    更新:

    Google 发布了一个新的深层链接,用户可通过该链接直接访问您的应用管理订阅页面。您需要两件事 SKU 和您的应用程序包名称。

    示例网址:

    https://play.google.com/store/account/subscriptions?sku=yoursku&package=com.yourpackagename

    Kotlin 中的示例代码:

     private val packageName = "com.mydomain.myapp"
     private val sku = "mySku"
    
     private fun openPlaystoreAccount() {
         try {
             startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/account/subscriptions?sku=$sku&package=$packageName")))
         } catch (e: ActivityNotFoundException) {
             showToast("Cant open the browser")
             e.printStackTrace()
         }
     }
    

    【讨论】:

    • 如果有大量 SKU 用于不同的订阅选项,您将如何引导用户?有更通用的链接吗?
    • 有没有办法知道用户是否成功退订了这个深层链接意图?用户从深层链接执行的操作是否返回任何结果?
    • 由于某种原因,这个特定的深层链接在最近的 Play 商店版本中似乎不再有效。
    【解决方案2】:

    我找不到如何链接到特定应用的订阅页面。但是转到订阅页面的网址是:https://play.google.com/store/account/subscriptions。当您在 Android 上时,此 URL 将在 Play 商店应用中打开。

    【讨论】:

      【解决方案3】:

      由于今年的 IO,可以使用深层链接链接到您的订阅:

      https://play.google.com/store/account/subscriptions?sku=*yoursku*&package=*com.yourpackagename*
      

      只需以常规意图打开此 URL。

      【讨论】:

        【解决方案4】:

        用户现在可以在 App Store 页面上查看他们的订阅。

        https://developer.android.com/google/play/billing/subscriptions#deep-link

        “用户购买订阅后,可以从 Play Store 应用的“我的应用”屏幕或 Play Store 应用的应用产品详细信息页面查看和取消订阅。”

        market://details?id=YOUR_APP_ID

        【讨论】:

          【解决方案5】:

          更详细的解释-

          1) 用户已经拥有订阅

          在这种情况下,当您调用 billingClient.queryPurchases() 时,它会返回一个 PurchaseResult。这包含诸如purchaseTokensku 以及packagename 之类的详细信息。每次应用启动或恢复 MainActivity 时都会进行此调用,因为如果有人离线购买您的 IAP,您还需要 acknowledge 购买(更多关于此 here

          这意味着您也可以让用户“管理”订阅,因此链接到的深层链接是:

          https://play.google.com/store/account/subscriptions?sku=skuName&package=packageName

          2) 用户即将购买订阅:

          执行此操作的方法是捕获您在 Play 控制台中创建的 SUBS IAP 的 productIdSku。然后你构建flowParams,然后你就可以调用了

          val flowParams = BillingFlowParams.newBuilder()
                      .setSkuDetails(skuDetails)
                      .build()
          
          billingClient.launchBillingFlow(activity, flowParams)
          

          如果成功,这意味着你会得到两个东西:BillingResultMutableList<Purchase>。如果BillingResultOK,并且返回的列表不为空,则购买成功。该对象还具有skupackageName,因此您可以使用与上述相同的深层链接,让用户访问Manage 他们的订阅。

          3) 用户已取消订阅,并且订阅已过期,但处于Resubscribe 规定的任何here 期限条件内

          这是您显示此深层链接的时间:

          https://play.google.com/store/account/subscriptions,这样他们就可以恢复或重新订阅他们之前拥有的 Sku

          附言需要注意的一件事是Play Store 应用程序支持多个用户。因此,只有在 Play Store 应用选择了正确的用户时,深层链接才会起作用。

          【讨论】:

            猜你喜欢
            • 2023-04-08
            • 2019-03-17
            • 2020-06-25
            • 2016-11-11
            • 2019-06-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-03-26
            相关资源
            最近更新 更多