问题标签 [in-app-subscription]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
360 浏览

android - 从同一个帐户多次在 Android 应用上订购订阅

我目前正在为 android 和 iOS 设计一个跨平台应用程序,其中用户可以使用托管在我的后端的相同帐户用于使用任一操作系统的任何设备。这意味着他们的数据未连接到他们的 Google Play 帐户或 Apple 帐户。此应用程序将使用应用内购买进行订阅和消耗品。我的问题是,如果用户 a@b.com 使用设备 A 订阅,然后另一个用户 c@b.com 尝试使用同一设备订阅,那么谷歌 Play 商店会允许用户进行另一次订阅吗?有办法解决吗?我考虑过使用消耗品,然后自己实现订阅逻辑。我还有其他选择吗?

0 投票
1 回答
555 浏览

in-app-purchase - 谷歌可再生订阅滥用

我们有一个在 android 中利用自动更新订阅的应用程序。

用户将通过应用程序正常订阅,并将收据发送给我们的后端,以使用 IAP Google API 进行验证。

到目前为止一切都很好,但是我们最近发现了我们系统中的一个漏洞,一些用户订阅并取消了他们的订阅并重新启用了自动订阅,这样谷歌就会发出一个新的收据发送到我们的后端,我们是再给他们一年,这很容易通过授予收据中给出的唯一期限来解决

但随后用户开始使用相同的谷歌账户和不同的账户来使用我们的应用程序,他们通过生成的收据为每个人提供免费订阅

我在这里阅读了 API,但找不到任何字段告诉我们此收据只是重新激活而不是新订阅 https://developers.google.com/android-publisher/api-ref/purchases/订阅

当我们向 google api 发送请求以获取信息时,这就是我们得到的:

没有字段可以给我这条信息

我错过了什么吗?还有另一种方法来验证这一点吗?

0 投票
2 回答
1393 浏览

android - 将应用内订阅金额从英镑更改为美元

我正在 Google Play 控制台的应用内产品中创建新订阅。当我尝试添加价格时,它填充了一个表格以输入英镑金额。我想以美元输入认购金额。

我知道这是因为我的商家资料地址在英国。

有没有办法以美元输入认购金额?

或者有人请告诉我哪个地址决定了我的应用在游戏控制台中的本地货币?

0 投票
1 回答
124 浏览

ios - 在 iOS 订阅中,verifyReceipt 每天/每小时/等的调用频率是否有限制?

根据我对订阅如何工作的理解,我们似乎应该构建某种 cron 作业来检查即将到期的用户是否被续订,因为在某些情况下不会发送通知。

基于阅读这些:

https://developer.apple.com/library/archive/technotes/tn2413/_index.html#//apple_ref/doc/uid/DTS40016228-CH1-SUBSCRIPTIONS-MY_SERVER_PROCESS_RARELY_RECEIVES_RENEWAL_NOTICES_WHEN_THE_AUTO_RENEWING_SUBSCRIPTION_RENEWS_

https://medium.com/revenuecat-blog/ios-subscriptions-are-hard-d9b29c74e96f

我的问题是:

  1. 我的结论是真的吗?是否未发送续订通知?

  2. 如果我必须自己构建一个 cron 作业并调用 verifyReceipt 我可以想象我每天会调用它很多次,我可以调用这个端点的次数是否有限制?我什么时候会被扼杀?

0 投票
0 回答
246 浏览

ios - 管理自动更新应用内购买和消耗性应用内购买

我在一个使用 3 个应用内产品的应用中工作

  1. 每月订阅(自动续订)
  2. 年度订阅(自动续订)
  3. 终身订阅(消耗品)

该应用程序具有登录用户可以将其他应用程序用户的帐户添加到他的帐户并可以切换到他们的帐户的功能。因此,登录用户可以购买所有上述 3 种类型的应用内产品,但他只能为使用同一苹果帐户的其他人(如果他切换到其他帐户)购买终身订阅。这就是为什么 Lifetime 订阅是 Consumable 类型的原因。每月和每年订阅属于同一个订阅组,因为它们都是自动更新类型。

我的疑问是,

如果登录的用户首先购买年度/每月订阅,这是自动续订类型,这意味着它会在每月或每年到期后自动续订或付款。假设在购买年度订阅后,他喜欢该应用,现在购买终身订阅,

  1. 包年订阅和终身订阅会同时继续吗?这意味着与终身订阅一起,每年订阅将继续每年收费吗?
  2. 还是在终身订阅后立即取消年度订阅?
  3. 或者苹果会接受终身请求,1年后它将取消年度订阅以自动更新并激活终身订阅。

我想要的是第 3 点。终身订阅不应在 1 年后续订,终身订阅应继续。如果要续订,有没有办法以编程方式取消以前的(每年/每月)订阅?

我希望客户不应该为应用程序支付双倍费用。客户一次只能激活一个订阅,并且他必须能够为具有相同苹果帐户的其他应用程序用户进行终身订阅购买。

我怎样才能最好地做到这一点?任何帮助将不胜感激

提前致谢!

0 投票
1 回答
1278 浏览

android - 当我在当前订阅结束之前升级到更高订阅时,订阅如何工作?

我正在我的应用程序中实现应用内购买。

当用户购买订阅时,它允许用户在当前计费周期结束之前访问订阅,此时订阅会自动续订。重复此过程,直到用户取消订阅。

例如,如果用户在 1 月 1 日购买包月订阅,并在周期的 1 月 15 日将其升级为 3 个月订阅,Google Play 将认为第一次订阅有效期至 1 月末(第 30 天)(或其他天,取决于月份)。我的(第 2 次)升级 3 个月订阅从 1 月 15 日开始,在购买日期 3 个月后结束,即(4 月 15 日)...

但是你有没有发现我在这个周期中失去了 15 天的订阅,因为谷歌一次允许多个订阅。如何更新我的升级订阅日期?

我需要在第一个订阅期结束后立即开始我的第二个订阅计划。

当我升级到另一个订阅时,可以通过任何方式取消第一个订阅吗?

这是我的 Google Developer API 回复:

0 投票
1 回答
505 浏览

c# - 统一处理取消订阅

我正在使用 Unity 的应用内购买 API 在我的应用中实现订阅。

我想在不重新安装应用程序的情况下触发取消订阅。如何跟踪用户从 Google Play 商店取消订阅?

0 投票
1 回答
184 浏览

ios - iOS 应用内订阅产品的价格是否要求与通过网站直接提供的类似产品的价格相同或更低?

我正准备发布一个 iOS 应用程序,该应用程序提供我们也通过我们的网站提供的订阅。我们通过我们的网站订阅的年度订阅费甚至是 89 美元。我正在考虑将 iOS 订阅价格设置为 89.99 美元(88.99 美元对我来说看起来很奇怪),但我想我记得读过苹果不允许您通过您的网站以更低的价格提供相同的产品。

我搜索了 App Store Review Guidelines,但现在似乎找不到任何参考。我只是记错了吗?(我知道您不能在应用程序中引用其他商店。)

所以我的问题是,如果我想以 89.99 美元的价格提供应用内产品,我是否必须将我网站上相应产品的价格提高到相同或更高的价格?

0 投票
0 回答
25 浏览

android - 同时使用一次性应用内购买和订阅

假设我们有一个包含数十个付费教程的应用程序。

是否允许将每个教程作为独立的非消耗品销售,同时提供解锁所有这些教程的订阅?

对 iOS 和 Android 平台都很感兴趣。

0 投票
1 回答
324 浏览

android - Android anjlab 应用内计费 - 收费

我正在使用Android anjlab应用内计费库,并注意到这种行为:

当进行购买(它们都是订阅)并立即从卡中扣款时,一切正常:

方法 onProductPurchased() 被调用,然后我可以调用我的服务器以授予用户对我的应用程序的高级访问权限。

但是,查看商家工具(谷歌控制台)上的交易日志,我注意到很多时候,信用卡并没有立即收费——它们在几个小时到几天内处于收费状态,而实际上移动到充电

问题是,当付款进入这种收费状态时,不会调用onProductPurchased() 方法,因此我的服务器也不会调用。

在这些情况下,我的用户会被收费(在我的应用程序中购买订阅后的几个小时),但他们从未获得高级访问权限,因为我无法识别我的应用程序中的付款(仅通过查看商家日志)!

如何解决这个问题?

我是否需要在我的应用程序上运行某种检查,以验证用户是否购买了订阅?