Google Play 应用内结算版本 3:因“已拥有的项目”而崩溃并缺少失败通知

2024-01-12

在(最终)发布 Google Play 应用内结算的 v2 实现之后,除了发布后的问题之外,我什么也没遇到。交易失败、崩溃、无法恢复、诸如“无法下载,您已经拥有该项目”之类的疯狂错误,以及各种其他荒谬的事情。老实说,我现在已经在 iOS、Amazon App Store、Samsung Apps 和 Blackberry 10 上集成了 IAB,而 Google Play 代码花费的时间比所有其他代码加起来还要多。十倍。太可怕了。

不管怎样,我决定尝试在我的应用程序中实现 v3。集成过程要简单得多,因此值得谷歌称赞。此外,恢复以前的交易现在可以按预期工作,这很棒。然而,我遇到了一些令人困扰的问题:

  1. 当用户关闭 IAB 对话框(即点击对话框边框之外)时,我不会收到任何通知。我希望收到某种“用户取消”失败事件,但 onIabPurchaseFinished、onConsumeFinished 或 onQueryInventoryFinished 不会触发任何事件。结果,我的应用程序没有对此做出响应,我在屏幕上留下了一个肮脏的未使用的活动。我是否错过了某种“dialogIsFinished”事件?
  2. 当用户尝试购买他们已经拥有的商品时,应用程序会崩溃。令人难以置信的是,这看起来像是预期的行为,因为控制台上打印了一些暗示这一点的内容(“应用内结算错误:无法购买商品,错误响应:7:商品已拥有”)。我知道我应该在启动时查询可恢复的交易,但这不是一个解决方案,因为可以想象用户可以在恢复操作完成之前导航到我的 UI 的购买流程。当然,这应该是一个非硬停止,比如对话框之类的?我在这里做错了什么吗?我简直无法理解谷歌的某人认为这种情况应该严重崩溃......

非常感谢(提前)您的帮助。如果您认为有必要,我非常乐意分享代码,尽管我的问题似乎更多是关于功能设计而不是其他任何事情。我希望我在这里做错了什么,因为对我来说,像谷歌这样有能力的公司会重写整个系统,但仍然到处都有如此大的漏洞,这对我来说是不可想象的……:-/

再次感谢,

Ben


嗯,那是我的错误。当我编写 launchPurchaseFlow() 时,我最终遗漏了一些失败案例的清理代码。不仅如此,还包括之后的几个 catch{} 子句。感谢您指出了这一点!这刚刚在源存储库中修复:http://code.google.com/p/marketbilling http://code.google.com/p/marketbilling

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Play 应用内结算版本 3:因“已拥有的项目”而崩溃并缺少失败通知 的相关文章

随机推荐

  • 未检测到 VS 代码 venv (WSL)

    我最近切换到 WSL Ubuntu 现在 当我使用创建虚拟环境时 python m venv venv VS Code 中不会自动检测到它 我的设置 json python pythonPath C Users ankus AppData
  • iOS 设置屏幕用户界面

    我正在尝试在我的应用程序中创建一个设置屏幕 就像 iPhone 内部存在的设置一样 单击设置时 我们会看到带有圆形边缘的不同部分 全是白色 一些选项带有箭头 一些是开 关按钮 苹果是如何实现这一目标的呢 是不是一个UITableView 有
  • 在 Laravel 中将数组转换为集合

    我在 PHP 中有以下数组 website example url example com website example url example com 现在我想将其转换为集合 因此我按键排序website or url 但是当我这样做时
  • 使用 TensorFlow 进行多标签文本分类

    文本数据被组织为具有 20 000 个元素的向量 例如 2 1 0 0 5 0 第 i 个元素表示文本中第 i 个单词的频率 真实标签数据也表示为具有 4 000 个元素的向量 例如 0 0 1 0 1 0 第 i 个元素指示第 i 个标签
  • SQL 全外连接

    我正在尝试编写一个连接语句将以下三个数据集连接在一起 这是使用 MS SQL Server Set 1 ID Date Col1 1 Jan 11 a1 1 Jan 13 a2 Set 2 ID Date Col2 1 Jan 11 b1
  • 如何使 div 的高度固定,但如果内容大于高度,则 div 会增长?

    假设我有一个我设置的 divheight 500px 在CSS中 因此它的高度是固定的 我的页面内容是用 JavaScript 自动生成的 因此有时它会大于 500px 并且会溢出 div 边框 我的问题是 是否可以有固定的大小 例如 50
  • 如何使用自定义密钥编写 MifareClassic

    我需要找到一个解决方案来使用自定义密钥编写 Mifare Classic 1 K 标签 我无法编写它 我已经尝试了每个选项 但不幸的是我总是收到错误 IOException 收发失败 下面是我的代码片段 byte custom key by
  • jQuery:如何从加载回调中修改加载的内容

    我正在动态创建许多 div 元素 行 每行都将具有相同的基本格式 仅文本发生变化 由于行结构很复杂 我尝试从静态 html 文件加载 基本 div 然后加载后 使用每行的参数调整一些属性 类似于 Android 的 xml 定义的适配器 我
  • Angular 2 HTTP POST 执行 OPTIONS 调用

    我的 Angular 2 应用程序遇到了一个非常奇怪的问题 我实际上想对我的 Play Scala API 进行包含 JSON 的 POST 调用 但它一直想尝试进行 OPTIONS 调用 这是我的代码 登录服务 constructor p
  • 枚举成员的字符串化

    我需要将枚举成员 其值 而不是标识符 转换为字符串 我尝试了以下方法 它适用于 MACRO TYPE A 但不适用于枚举值 typeA 我认为这有点奇怪 您知道如何做到这一点吗 define tostr a a define tostr a
  • 如何检查 Selenium Server 是否正在运行

    我有一堆 phpunit 测试 其中一部分使用 selenium 我需要知道 selenium 服务器是否正在运行 Windows 有没有办法从php检查它 默认情况下 Selenium 服务器接受本地主机端口 4444 上的命令 所以你可
  • “Csc.exe”退出,代码为-1073741819

    每次我尝试运行我的代码时 都会遇到此错误 Csc exe 退出 代码为 1073741819 我清理了我的解决方案并重新启动了 Visual Studio 但没有任何收获 谁能帮我 我遇到了同样的问题 删除项目中的 bin 和 obj 文件
  • 如何在 Spring Data JPA 中编写动态原生 SQL 查询?

    我需要在 Spring Boot Web 应用程序中的数据库中的多个表上编写搜索查询 它使用 spring data jpa 我知道我们可以使用 Query 注释和 native true 标志在 spring data jpa 中编写本机
  • 实体框架核心:无法添加迁移:没有无参数构造函数

    我的数据项目参考 Entity Framework Core
  • 有效检测损坏的 jpeg 文件?

    有没有一种有效的方法来检测 jpeg 文件是否损坏 背景资料 解决方案需要在 php 脚本内工作jpeg 文件位于磁盘上无法手动检查 用户上传的数据 我知道imagecreatefromjpeg string filename 可以做到 但
  • Python ascii utf Unicode

    当我解析这个 XML 时p xml parsers expat ParserCreate
  • 使用 OAuth 时 Instagram 返回“未找到匹配代码或已使用”

    我正在尝试使用Instagram OAuth使用开发人员文档 https www instagram com developer authentication https www instagram com developer authen
  • 在元素后插入仅打开的 HTML 标签?

    我想在页面上的 H1 元素后面插入几个开始 DIV 标记 而不插入相应的结束标记 因为结束标记包含在我无权访问的包含页脚文件中 IE 现有代码 h1 Heading One h1 page content 新代码 h1 Heading On
  • Nginx 重写或内部重定向循环,同时内部重定向到“/index.html”

    我使用 Php 框架在 nginx 上实现 Web 服务器 没有任何 index html 网页工作正常 但某些脚本无法工作 它显示 500 内部服务器错误 这是服务器日志 2016 11 16 11 08 38 错误 2551 0 738
  • Google Play 应用内结算版本 3:因“已拥有的项目”而崩溃并缺少失败通知

    在 最终 发布 Google Play 应用内结算的 v2 实现之后 除了发布后的问题之外 我什么也没遇到 交易失败 崩溃 无法恢复 诸如 无法下载 您已经拥有该项目 之类的疯狂错误 以及各种其他荒谬的事情 老实说 我现在已经在 iOS A