问题标签 [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 回答
1381 浏览

in-app-purchase - Android应用内购买收据样本(回复)

我正在搜索谷歌计费库返回的响应样本,但没有找到。

0 投票
0 回答
361 浏览

android - 扩展文件和应用内购买中的签名验证失败

我已经在我的应用中实现了扩展文件和应用内购买。并且应用程序发布在 beta 频道。

在测试我手动下载扩展文件以测试下面的代码时给我错误。

signature并且signedData在响应中不为空或为空。并且接收responseCode等于LICENSED

我已经使用 Google Play 控制台密钥检查了 Base64 编码的公共 RSA 密钥,它是相同的。代码sig.verify(signatureBytes)总是返回 false。

签名验证也不适用于同一应用的应用内购买。

0 投票
0 回答
1435 浏览

android - 验证应用内购买

Google Developers 指南引用的示例应用程序有一个在类中调用的方法,如下所示:verifyValidSignature()BillingManager

“在您的后端执行此类检查”究竟是什么意思?什么后台?

从此方法调用此方法(也在 中BillingManager):

我真的不明白我应该在所说的后端做什么,那就是阻止攻击者简单地删除

就像用JavaDoc for warns替换verifyValidSignature() “constant true”一样容易。verifyValidSignature()

我将如何阻止攻击者反编译我的应用程序并替换某些内容以绕过我的应用内购买检查?

0 投票
1 回答
408 浏览

google-api-java-client - Google Play Developer API 延迟请求错误 - 订阅的预期到期时间无效

我正在尝试在我的应用中推迟应用内购买的计费。但每次我收到以下错误

我为请求编写了以下代码。我确信包名称 subscriptionID 和 subscriptionToken 等变量是正确的,因为 purchase.get 调用有效。变量过期时间是从先前的 get 调用响应中保存的。

0 投票
1 回答
3512 浏览

google-api-php-client - 关于如何在服务器上验证 Google In App Purchase 购买令牌的说明?

鉴于我的服务器端点已收到与 Google In App Billing 购买相关的购买令牌,我该如何以编程方式对其进行验证并访问其内容?

我已经可以使用验证 Google登录令牌php

但是我将如何使用Google_Client来验证购买令牌并访问其内容。

它真的只是像下面的 Ruby 示例GET中那样向 Google 服务器发送 a 的情况吗?

Google_Client或者他们是我应该调用的特定命令?

我开始认为这是在php使用中复制提到的 Ruby 代码OAuth2或其他东西的情况,因为 Google Docs 实际上确实说过,一旦服务器拥有购买令牌:

使用 Google Play Developer API 的 Subscriptions 和 In-App Purchases 部分执行 GET 请求,以从 Google Play 检索购买详细信息(Purchases.products 用于一次性产品购买或 Purchases.subscriptions 用于订阅)。GET 请求包括应用程序包名称、产品 ID 和令牌(购买令牌)。

如果可能的话,只是想澄清一下?谢谢。

0 投票
0 回答
66 浏览

donations - 如何接收慈善应用内捐款

我正在尝试创建一个允许我的用户向慈善机构捐款的应用程序。显然,Just Giving 有一个允许这样做的应用程序是可能的。但是,我找不到有关设置的任何信息。有谁知道如何在Android上实现这一点?非常感谢

0 投票
0 回答
739 浏览

java - 未收到实时开发者通知

我没有收到来自 Google Play 商店的实时开发者通知。我已按照以下步骤操作:

  1. 设置GOOGLE_APPLICATION_CREDENTIALS

  2. 设置消息侦听器。消息接收者代码

    /li>
  3. 向 Cloud Pub/Sub 主题发布测试通知,从而在收到实时通知之前验证该主题的设置和配置。(未收到通知)

  4. 手动运行代码然后发送错误:

    WARN [2018-06-06 06:37:02,479] com.google.auth.oauth2.ComputeEngineCredentials:无法检测我们是否在 Google Compute Engine 上运行。

我错过了什么吗?

0 投票
0 回答
175 浏览

android - Android InAppBilling getSkuDetails 返回 null

我一直在研究 IAB V3,并且在尝试从商店中获取 sku 详细信息时遇到了麻烦。在检查库存查询的结果失败后,我尝试使用 inv.getSkuDetails(MODULE).getPrice(); 获取详细信息 这总是返回null,在调试时我可以看到库存对象是空的。

然而,这些请求总是返回 null。我知道 google 要求您将 apk 上传到 alpha 发布通道(并发布它)并激活 InAppPurchase(我还给了商店几天时间来接管更改)。为了测试,我使用了与上传到 alpha 通道相同的 APK。

IabHelper 显然设法连接到正确的应用程序,因为可以进行测试购买,并且可以从商店查询。

代码:

忽略错误的缩进和缺少的括号,因为我剪掉了一些代码。我非常感谢有关可能导致此问题的任何想法。谢谢

0 投票
1 回答
4183 浏览

android - 测试 google play 购买时出现“您的交易无法完成”错误

我正在尝试使用 beta 测试仪进行购买,但出现此错误。 在此处输入图像描述

这是在通过初始验证并在用户按下订阅按钮后显示在谷歌播放窗口中的错误,所以我猜这不是代码或配置错误。

无论如何,我检查了此链接https://stackoverflow.com/a/22469253/2700303并从商店下载了该应用程序。

我检查了错误附带的“了解更多”链接,但该故障排除页面上没有任何帮助。用作有效和主动付款方式的帐户。我在模拟器上运行,但 google play 附带它是有原因的,所以我也放弃了它。其余的建议说使用其他设备。我的模拟器正在运行 API 28,所以应该足够好了。

0 投票
3 回答
4161 浏览

android - Android Google BillingClient 如何获取未消费项目?

问题:使用 Google Play BillingClient 1.1 我怎样才能只获得未消费的购买?

背景:

在我们的 Android 应用程序中,我们想使用新的更改“旧”计费库(使用示例中的 V.3 IabHelper.java 类)

这个想法是使用

BillingClient.queryPurchases(BillingClient.SkuType.INAPP)

为了获得用户进行的所有购买的“历史”。这就是 API 所告诉的(https://developer.android.com/reference/com/android/billingclient/api/BillingClient.html#queryPurchases(java.lang.String)),它工作正常。在旧版本中,人们只会得到未消费的物品,这对于“购买历史”之类的东西是无用的。但是,如果我想知道是否有未消费的物品,我就无法再获得该信息。

queryPurchaseHistoryAsync().

购买对象似乎不包含有关其消费的任何信息。我怎样才能只获得未消费的物品(或至少过滤它们)?

请注意,我知道购买最终必须在我们的服务器端进行管理。然而,在这成功之前,最好知道哪个项目已经“兑换”(消费)了。所以我不能只依赖我们的后端。

- - 编辑 - -

来自查询的购买对象 (JSON) 都如下所示:

因此,似乎没有什么是消费状态。

---- 编辑 2 ----

我找到了一个(坏的)解决方案。当尝试消费购买时,谷歌告诉我它的返回码是否已经被消费。但这不是我们的解决方案,因为我们希望将其“标记为未使用”,直到它在我们的服务器上被赎回。