- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Android 应用程序中使用 Google IAP v3。我已经使用 GoogleIabHelper
类实现了签名检查。我还使用几乎相同的代码在服务器端检查签名。
在服务器日志中,我发现很多购买都是无效的。以下是 2 次有效购买和 1 次无效购买的示例数据:
有效购买
#1
orderId: 12399363269014736759.1358132323863451
purchaseTime: 1416079768157
purchaseToken: olcgkklnpigiceancikanedj.AO-J1O...
dataSignature matches: yes
response from androidpublisher API: purchaseTimeMillis = 1416079768157, purchaseState = 0
#2
orderId: 12399363269014736759.1311230454123912
purchaseTime: 1415844666976
purchaseToken: ajkaitpnfgotgkmhlboatkmc.AO-J1O...
dataSignature matches: yes
response from androidpublisher API: purchaseTimeMillis = 1415844666976, purchaseState = 0
无效购买
orderId: 6246434551497330082
purchaseTime: 1415813103372
purchaseToken: xdavcuvdnniwwrhwemleqjdz.rSQozm...
dataSignature matches: no
response from androidpublisher API: "code": 400, "message": "Invalid Value"
如您所见,两次有效购买的数据看起来很相似。 dataSignatures
都是正确的,androidpublisher
API 返回这些购买的有效数据。
现在看看无效购买:
orderId
与有效购买的模式不匹配purchaseTime
是过去的时间(2014 年 11 月 12 日星期三 18:25:03 GMT+0100 (CET)),即使购买是在今天进行的purchaseToken
前缀在.
之后是不同的(点)dataSignature
不匹配androidpublisher
API 返回无效值
很确定这是无效购买,对吗?每天这样购买 2-4 次怎么样?我想知道 IAP 欺诈是真正的问题还是我的代码和 IAP 验证有问题。有人可以分享他们使用 Google IAP v3 进行无效购买的经验吗?
最佳答案
深入挖掘后发现有很多方法可以破解 IAP,但良好的购买验证可以防止它(如问题中所示)。
首先,无效购买(全部)是在root 设备 上进行的。我还询问了一些用户关于他们的购买情况,其中一位同意他正在使用一些允许免费购买 IAP 项目的 apk。
结论:代码一切正常,您的用户出了点问题。
关于android - 许多购买的 Google IAP 验证都失败了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27156156/
当我的服务器通过我的应用程序和 Google Play 服务器响应购买产品 ID 时,将 IAP 项目发送到设备(客户端),它在哪里保存/存储该项目(文件)。 后续问题 - 我可以控制它们的存储位置吗
我在 App Store 中有我的应用程序,目前是付费版本,但我正在免费提供它并带来 IAP,这可以解锁他们以前拥有的一些功能。例如,免费用户只能添加10个条目,但IAP用户在我开发的这个版本中可以添
我的主屏幕上显示了带有 Logo 的图片集。 如果用户在购买 IAP 后喜欢某张照片,我希望用户从特定图片中删除 Logo 。但是苹果希望我使用非消耗性模型一次性从所有图片中删除 Logo 。但那不是
我有一个应用程序,我只想使用 google pay 进行 1 次非消耗性升级,我使用下面的代码来获取我的 google play 购买状态 override fun onPurchasesUpdate
我想重命名在 iTunes 上注册的 IAP 项目。 我需要升级我的游戏,所以我更改了 IAP 项目的显示名称。 但是当我购买时,购买弹出文本没有改变。 我在 iTunes 上正确更改了它的名称。 但
我正在尝试通过 iTunes Connect(管理员访问)在我的 iOS 应用程序中添加 IAP。引用随附的屏幕截图,我可以查看共享 key ,但在可用的 IAP 选项下没有列出自动续订订阅。我确实检
我有一个名为“专业版”的非消耗性 IAP。我给买家一些额外的积分和一些访问权限。 他们第一次购买时没有问题。它给出了分数并消除了限制。 但是当他们再次尝试购买时,它会说“您已经购买了这个项目,点击确定
在我的应用中,我购买了 3 项消费品,当我购买一项时,我会收到包含 4 项购买的 IAP 收据:一项是我刚刚购买的,另外一项是我不久前购买的。 3 旧购买总是相同。看起来从未对它们调用 finishT
我如何知道购买日期和到期日期之间自动续订订阅的持续时间。 例如,如果用户在 1 月 31 日通过自动续订购买了 1 个月的产品,那么到期日是什么时候? (2 月 28 日?……如果是闰年?) 谢谢。
我正在使用非消耗型 IAP 并尝试让恢复按钮正常工作。 我注意到,当用户尝试购买他们已经购买过的东西时,会出现一个 Apple 提醒,提示“您已经购买了这个。您想免费再次购买吗?” 所以我想知道如何为
我正在为我的应用中的店面编写自定义 UIView。大多数教程展示了某种 UITableView,用于显示 Apple 应用内购买的结果。 我没有使用表格来显示我的购买按钮,而是布置了一个我希望按钮显示
我的 iOS 应用程序需要登录到我们的服务器并购买非消耗品。我做了一些研究。 我的问题是,如果我更改另一个帐户登录到服务器并仍然使用 B Apple id,我登录我们的服务器以使用 B Apple i
我的应用程序有单独的非消耗性应用程序内购买项目,外加一个“批量”IAP,其中包含所有其他 IAP 的折扣价。因此,在允许用户购买 IAP 之前,我需要知道他们已经购买了哪些其他 IAP。我知道获取此信
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关于您编写的代码问题的问题必须在问题本身中描述具体问题 — 并且包括有效代码 以重现它。参见 SS
在测试我的 IAP 商店实现时 [沙箱]。我购买了一件商品,我收到了确认 [取消/购买] 的购买提醒。但是元素的价格是错误的。有一种特定的方法可以重现它。 1] 点击商店中显示的商品。等待购买确认提醒
我们目前正在开发一款应用程序内购买 - Apple 托管内容,该应用程序运行良好,用户可以购买内容并且应用程序可以正常下载。 但是我们已经开始在应用程序中开发恢复购买按钮,我们似乎无法弄清楚如何使用
希望这是一个简单的问题: 我有一个经过批准的 iOS 应用程序,可以在应用程序内购买,我正在尝试更新一个新版本。我能否将 iTunes Connect 提交流程的应用内购买部分留空,并假设新版本将引用
我的新 App 启动 10 小时后无法使用 InApp 购买,其他人是否遇到过同样的问题? 通过 Apple 服务器传播需要多长时间? 谢谢 最佳答案 应用内购买现已在 App Store 上可用,批
我正在开发一个系统,用户(应用程序的所有者)将能够动态添加 iAps,而无需重新提交更新。Google Play(Android)不会产生任何问题,但因为我正在盯着 iO做同样的事情我遇到了几个问题。
如果用户在上线应用程序中购买了非消耗性 IAP,如果该用户被设置为 iTunesConnect 用户和测试者,他是否在沙盒环境中拥有 IAP?然后该用户可以通过 restoreCompletedTra
我是一名优秀的程序员,十分优秀!