我在Google Play中发布了一个Android应用,其中包含应用内订阅.我有月度和年度订阅,我已经在开发者控制台中以这种方式配置它:
问题是:当用户打算订阅时,Google Play会以这种方式显示支付网关:
为什么说如果每月订阅,他们每天收费19.99美元?
这是订阅用户每天收到的发票:
在我的代码中,我没有定义与价格相关的任何内容,就是这样:
inappbilling.subscribe(function (data) {
    $rootScope.logThis("inappbilling plugin - subscribe: " + JSON.stringify(data), "info", "inappbilling", "subscribe");
    subscriptionDone(data);
}, function (errorInfo) {
    $rootScope.logThis("inappbilling plugin ERROR - subscribe: " + JSON.stringify(errorInfo), "error", "inappbilling", "subscribe");
    subscriptionError(errorInfo);
}, subscriptionType.productId);
我只是指定了正确的订阅ID.我怎样才能将付款设置为monhtly而不是每天?
谢谢!
android google-play google-play-services in-app-subscription google-play-developer-api
是否有任何 API 或脚本可以获取给定应用的所有实时 Google Play 订阅列表?即 Play 开发者控制台上 Subscriptions 下显示的数据形式。
例如,Stripe 有一个明确的列表订阅 API,但我找不到 Play 的等效项。
更新:自从写这篇文章以来,我已经询问了官方来源,我可以确认确实没有 API 来检索您的所有订阅。当然令人惊讶,但这就是它的立场。
我们正在开发一个应用程序,其中一些经过验证的用户可以通过订阅来销售他们的内容。
内容是由视频、照片和提示组成的数字内容。
我们想提供按月订阅的付费内容。我研究了一些应用程序,通常你有所有付费内容的自动更新订阅。
但是,我们的客户希望为每个提供付费内容的用户提供单独的订阅。
这意味着每个内容消费者(用户)将能够拥有无限数量的并发订阅,因为他们将能够订阅他们想要的任何内容提供商。
我们目前正在研究的其他选项:我们正在考虑允许用户访问特定数量用户的付费内容的层数:
所有订阅都在同一个组中,每个订阅都有不同的级别。当用户购买产品时,他们可以选择访问哪些付费内容(不切换/或每月切换)。
最后的问题:
当介绍价格可用时,如何确保新价格仅在我的UI中显示?
简而言之,有关通过iOS应用提供介绍价格的主题的Apple文档如下:
通过解析当前商店收据并查找值isInIntroOfferPeriod或isTrialPeriod设置为true 的订阅组的旧购买来检查是否合格。如果是这样,用户将不会收到当前的介绍价,因为他/她在过去某个时候已经收到介绍价。
更新您的SKProducts后,请查看该introductoryPrice值是否已设置。如果是这样,则优惠可反映您应用程序中的折扣(如果用户自然符合条件)
但是,我的问题是:我在iTunes连接中创建了一个介绍性价格,并将其“开始日期”设置为未来约一个月。根据苹果公司关于“如何提供入门价格”的指南,人们会认为,在introductoryPrice客户提供折扣期间更新他们的SKProducts时,snull不为零,而当没有折扣时,nil / null不为零。实际上,SKProduct包含一个introductoryPrice具有新价格,期限等的对象,对于每个客户,一旦创建了介绍价格,便会更新其SKProducts。即使直到未来一个月才可用。这将导致我的应用显示新价格,因为无法区分折扣是否有效。
理想情况下,我不想将日期硬编码到应用程序中,而忽略了介绍价格。有什么我没看到的吗?您是如何解决这个问题的?
我正在尝试使用官方 Flutter In-App-Purchase 插件实现应用内购买。我的工作正常,但我不知道如何判断用户订阅是否仍然有效或是否已过期。即使在我取消测试订阅后,连接和执行后获得的值queryPastPurchases()与订阅处于活动状态时相同:
productId: test_subscription_1   
transactiondate: 1565682346568   
status: null
verificationData
    source: IAPSource.GooglePlay   
    localVerificationData: {
        "orderId":"GPA.1234-1234-1234-12345",
        "packageName":"com.example.myapp",
        "productId":"test_subscription_1",
        "purchaseTime":1565682346568,
        "purchaseState":0,
        "purchaseToken":"<long string>",
        "autoRenewing":false
    }   
    serverVerificationData: "<long string>"
我是否应该简单地硬编码我的订阅期并将当前时间与purchaseTime+订阅期进行比较?这甚至适用于自动续订吗?如果用户将手机上的日期更改为一年前会怎样?似乎应该有一些值应该给我到期时间或至少一个布尔值真/假来指示订阅是否仍然有效?
in-app-purchase in-app-billing in-app in-app-subscription flutter
我想了解用户是否从 MainActivity 主动订阅了 Basic/Premium 内容。有一个BillingClientLifecycle类启动订阅过程。据我了解,queryPurchses应该显示用户是否有活动订阅。但显然它显示(通过我放在那里显示订阅状态的 Toasts)用户被订阅,即使用户实际上没有订阅。
public void queryPurchases() {
        if (!billingClient.isReady()) {
            Log.e(TAG, "queryPurchases: BillingClient is not ready");
        }
        Log.d(TAG, "queryPurchases: SUBS");
        Purchase.PurchasesResult result = billingClient.queryPurchases(BillingClient.SkuType.SUBS);
        if (result == null) {
            Log.i(TAG, "queryPurchases: null purchase result");
            processPurchases(null);
            ///
            Toast.makeText(applicationContext,"queryPurchases: null purchase result", Toast.LENGTH_SHORT).show();
        } else {
            if (result.getPurchasesList() == null) {
                Log.i(TAG, "queryPurchases: null purchase list");
                processPurchases(null);
                ///
                Toast.makeText(applicationContext,"queryPurchases: null purchase list", Toast.LENGTH_SHORT).show();
            } else {
                processPurchases(result.getPurchasesList());
                ///
                Toast.makeText(applicationContext,"user has subscription!", Toast.LENGTH_SHORT).show();
            }
        }
    } …android android-studio in-app-subscription google-play-developer-api play-billing-library
几天前我在 Google Play 控制台中禁用了暂停订阅选项,但仍然可以从设备上的 Google Play 菜单暂停订阅。
我的应用程序处于关闭 Alpha 通道中。还没有生产版本。我已将自己添加到许可证测试人员中
如何完全禁用此选项,以便事件测试人员看不到暂停订阅的选项?
我是 Google 计费库的实施新手,并使用该系统在我的应用程序内进行订阅。我的问题是,用户是否创建了免费试用的订阅,完全使用了它并取消了订阅。如果用户尝试再次订阅,那么 Google Play 计费库系统是否会处理该特定用户的免费试用资格,或者我们需要在代码中处理它。
您能否建议是否有任何流程来检查用户是否已经使用了免费试用?如果是,则继续向尝试订阅的用户收取订阅费用
我对 Android 计费库的新版本(5)感到困惑。我的应用程序中有一些订阅,每个订阅都有每月一次的周期和 2 周的免费试用期。现在我想向用户显示我的订阅的定价详细信息。
当我获得每个订阅的产品详细信息时,它总是相同的。我在列表中得到 2 个项目,subscriptionOfferDetails其中第一个项目有两个PricingPhase项目,一个为 0 价格(免费试用),另一个为有效订阅价格。然后第二个SubscriptionOfferDetails项目有一个PricingPhase具有有效订阅价格的项目。
那么这是怎么回事呢?为什么 Google 以这种奇怪的结构返回我的订阅详细信息?为什么我收到 2SubscriptionOfferDetails件而不是 1 件?
我应该使用哪个项目来显示正确的订阅价格?另外,当用户想要购买时,我应该使用哪一个来启动付款流程?优惠代币不同。
注意:我对某些国家/地区有不同的价格。这会在这里发挥作用吗?
只是为了澄清
奇怪的是,全价选项在两种不同的SubscriptionOfferDetails商品中出现了两次。图片中第三个突出显示的项目是没有意义的,因为该选项已经存在于前一个SubscriptionOfferDetails项目中,但具有不同的offerToken.
android in-app-billing in-app-subscription play-billing-library
我正在 Flutter 中编码,并且我想实现一个具有 3 天免费试用期的自动续订订阅。
不幸的是,我没有找到任何确切的文档或建议,我该如何测试它。
我试过的:
1)我在苹果开发者控制台中创建了一个自动更新的产品。2)在这个产品里面我选择了“添加促销优惠”,在那里我选择了“免费试用”
一切都很简单明了,但是当我开始我的应用程序进行测试时,它只显示正常价格,我找不到免费试用部分。所以我无法测试它。
当我调用 subscribe 方法时,它会显示正常收费的价格。当我订阅我的沙箱用户时,我在验证 JSON 中看不到任何关于免费试用的信息。
这是正常的吗?有没有可能,免费试用功能仅在生产中可用?或者我忘记了什么?
android ×5
google-play ×4
ios ×3
flutter ×2
google-api ×1
in-app ×1
java ×1
promotions ×1
skproduct ×1
storekit ×1