问题标签 [android-inapp-purchase]

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 回答
1449 浏览

firebase - Firebase 最近是否开始报告 in_app_purchase 订阅?

  1. 我的 Android 应用集成了 Firebase SDK
  2. Firebase 与 Google Play 相关联
  3. 我只使用订阅
  4. 过去没有自动报告任何“ in_app_purchase ”事件(与一次性产品相比)
  5. 我不会从客户端或服务器手动报告“ in_app_purchase ”。

但我最近有了“in_app_purchase”和“ subscription ”(=1)参数。

https://support.google.com/firebase/answer/7061705?hl=en列出了下一个参数:product_id、product_name、price、price_is_discounted、价值、货币、数量、app_version

Firebase/GMS 有什么变化吗?任何博客文章/文档?

0 投票
0 回答
698 浏览

php - Google 服务帐号:androidpublisher 权限不足,无法执行请求的操作

我知道这个问题已经在这里被问过好几次了,但没有一个解决方案对我有用。

以下是我创建服务帐户的步骤:

  • 登录到 Google Play 控制台帐户。
  • 然后从左侧面板导航到设置 > API 访问。
  • 向下滚动到服务帐户部分,然后单击创建服务帐户。
  • 按照打开的对话框中提到的说明进行操作。
  • 在 Google API 控制台上创建服务帐户时,选择服务帐户权限作为项目 > 所有者
  • 创建密钥并以 json 格式下载。
  • 现在回到 Google Play Console 并单击授予访问权限以授予管理员权限。

现在我正在使用此服务帐户来验证服务器上的应用内购买,但我收到此错误:

我正在使用这个 php lib和服务帐户方法来验证购买。

0 投票
4 回答
749 浏览

google-play - 突然无法在 google play console 中添加应用产品(请查看下面的列表以了解问题。)

我的应用大约在 4-5 个月前发布。我的应用内产品运行良好。突然我无法添加或编辑新的应用内产品。它向我显示错误“请检查下面的列表是否有问题。” ,但列表中没有问题。任何帮助将不胜感激。

控制台截图

0 投票
2 回答
1964 浏览

android - 在我的 Android 应用中查询应用内购买

我有一个 Android 应用,用户可以在其中购买 1 个应用内产品来解锁某些功能。

我已在以下位置广泛阅读指南:https ://developer.android.com/google/play/billing/billing_library_overview#java

我了解,为了让用户购买 inapp 产品,我必须:

  • 使用调用检索可用 SKU 的列表(在本例中,是我唯一的 1 个应用内产品)querySkuDetailsAsync()。这只是为了仔细检查用户的设备是否能够管理应用内产品。
  • 如果 SKU 出现在上一次调用的结果中,则显示 BUY 按钮(这意味着用户设备中的本地 Google Play 实例可以处理应用内产品)。
  • 调用launchBillingFlow()传递我的应用内产品的 SKU,以启动 Google 支付流程(Google UI、询问卡详细信息的弹出窗口等)
  • 收听回调onPurchasesUpdated()以获取返回码(基本上付款被拒绝、付款成功或付款取消)并采取相应措施。如果付款成功,请继续在本地(使用 Play 开发人员的 RSA 公钥的本地副本)或在我的安全服务器上使用相同的密钥远程验证购买令牌签名。
  • 解锁我的应用上的付费功能

这就是事情变得混乱的地方。从 Google 文档的角度来看,工作已经完成,他们向您解释了如何检索/购买/和验证用户付款。但是,没有说明如何在应用程序启动期间记住付款并解锁付费功能。

该文档指出:

要检索有关用户从您的应用购买的信息,请调用 queryPurchases()

所以看起来应用程序不需要记住任何东西,只需queryPurchases()在启动时调用并检查 SKU 是否存在(用户已经付费)或不存在(用户仍然没有购买应用程序的付费版本)。

所以我的应用程序就是这样做的,queryPurchases()在启动时调用并检查 SKU 是否存在。这种方法效果很好,即使应用程序离线启动。然而,一些用户感叹应用程序有时无法以付费模式启动,因为(我调试了代码)该功能queryPurchases()在设备离线时(有时)会失败。难道queryPurchases()是调用本地 Google Play 缓存,由于某种原因可能会丢失以前的购买记录?(缓存清除等...)

在应用启动时记住用户购买和启用付费功能的合适方法是什么?

0 投票
1 回答
93 浏览

php - 比较签名数据和 RSA 签名

我正在尝试验证购买时收到的 android 帐单收据的真实性。验证是服务器端的,但我想如果有时服务器可能已关闭,我可能会检查应用程序本身的签名..

这是我在服务器上验证购买的方式..

那么如何在 Android 上做同样的事情呢?

0 投票
2 回答
919 浏览

android - 删除并重新安装应用程序后如何查看购买历史记录

我正在开发一个允许用户使用 In App Purchase 进行购买的应用程序,并且我想在购买后删除广告。我可以使用下面的代码成功购买

但是当我再次打开应用程序并在下面调用此方法时,我看不到 queryPurchaseHistoryAsync 的结果。

购买清单.size() == 0

“queryPurchaseHistoryAsync”方法不能显示测试购买还是我做错了什么?

编辑:在删除并再次安装应用程序后,queryPurchaseHistoryAsync 方法是否检查购买。

0 投票
1 回答
896 浏览

authentication - Android发布者权限被拒绝仅检查付款(其他api成功)

我正在尝试调用 api Purchases.products: get to verify your purchase 它会产生这样的结果

此处的文档说明了您可以做什么

收到的令牌不仅适用于任何其他 api 的购买检查,它返回结果(Inappproducts: list is work

验证 url 是正确构建的,因为如果您将令牌客户端连接到服务器,那么这个 api 也可以工作 - 但我需要一个服务器到服务器身份验证

我期待这个结果

更新 1

添加令牌信息

0 投票
1 回答
285 浏览

google-play-developer-api - paymentState 不会从试用期改变

我正在使用 Google Play 实现应用内订阅,并通过轮询到 Google Play API 来同步这些订阅的状态。订阅的试用期为 3 天,我希望 Google API 在试用期到期后返回 paymentState=0(Pending)或 1(Received)。对于支付失败的客户,这种情况并不总是发生,因为 Google 会不断返回 paymentState=0(免费试用)。

尽管我没有为此订阅类型配置任何宽限期,但 Google 似乎正在给予宽限期。

您知道为什么会发生这种情况吗?当 3 天的试用期到期后,我应该如何更新试用期状态?

谢谢

0 投票
1 回答
155 浏览

c# - 是否可以从另一个用户统一检查订阅 iap?

这个问题看起来很奇怪。但这就像标题问题所说的那样。我需要检查其他用户的订阅是否仍然有效。

示例:我有管理应用程序和客户端应用程序。管理员应用程序用户将执行订阅 iap,以便客户端应用程序用户可以享受该功能。

如果管理员应用程序用户停止订阅,则客户端应用程序用户将不再在客户端应用程序中看到该功能。

客户端用户应用程序是否可以检查管理应用程序用户是否仍订阅开发人员?

我正在使用统一引擎 c# 开发它。

谢谢..

0 投票
1 回答
3492 浏览

android - 如何在 kotlin 中实现 Android 应用购买?

我想为我的 android 应用的应用内购买实现 Google Play 的计费,这是用 kotlin 编写的。我正在关注本教程

这是我的代码:

我还在我的清单文件中添加了并且还添加了 Internet 使用implementation 'com.android.billingclient:billing:1.2.2'权限build.gradlecom.android.vending.BILLING

当我运行此代码时,它显示计费客户端尚未准备好。