应用内购买自动续费交易恢复问题

2023-12-23

我正在开发一个应用程序,用户可以在其中购买自动续订订阅。购买部分工作正常,但当用户删除应用程序并尝试恢复其购买时会出现问题。以下是我为处理该问题而编写的代码。

  1. 我已经给出了一个标题为“已经是订阅者”的按钮。当用户点击时,我调用以下代码。

    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];           
    
  2. 这就是我处理恢复的方式- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions method.

            case SKPaymentTransactionStateRestored:
            duration = [strDuration intValue];
            if(transaction.transactionReceipt != nil){
                receipt = [[NSString alloc] initWithData:[b64 dataByBase64EncodeFromData:transaction.transactionReceipt] encoding:NSASCIIStringEncoding];
                [userDefault setObject:transaction.transactionReceipt forKey:@"LastReceipt"];
                [queue finishTransaction:transaction];
                [self callReceiptInfoImpl];
            }
            break;
    
  3. 以下是恢复事务完成时的委托方法。

    -(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue{ NSLog(@"COMPLETED TRANSACTION RESTORED"); }

问题是,当用户单击“已经是订阅者”按钮时,步骤 1. 会被调用,但步骤 2. 永远不会被调用。最后我可以在屏幕上看到消息“已完成交易已恢复”。

如果有人遇到类似的问题,请指导。

谢谢阅读.....


在你的类中,你必须实现回调 函数 paymentQueue:updatedTransactions:

该功能将在以下时间接收交易更新 它被制作了。因为即使应用程序处于运行状态,您的交易也会发生 已关闭,您应该准备好尽快接收这些通知 你打开应用程序。所以最好的地方是初始化它 applicationDidFinishLaunching 或等效方法。

由此link http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-purchases/

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

应用内购买自动续费交易恢复问题 的相关文章

随机推荐

  • Python无法导入DataFrame

    我正在尝试在 Python 中使用 Pandas 来导入和操作一些 csv 文件 我的代码是这样的 import pandas as pd from pandas import dataframe data df pd read csv h
  • Angular2 没有渲染器提供者! (NgModel -> 令牌 NgValueAccessor -> DefaultValueAccessor -> 渲染器)

    我在customModal ts中自定义模态shlomiassaf angular2 modal https github com shlomiassaf angular2 modal 具体来说 我添加一个包含ngModel的输入 它导入了
  • 将 MaterialToggleButton 的选定颜色更改为纯色

    无法将 MaterialToggleButton 的选定颜色设置为纯色 仅显示原色的透明阴影 我尝试了下面的代码集 输出图像如下所示 样式中的按钮主题
  • 使用 geom_sf 制作包含一组子区域的地图

    我想制作一张仅包含子区域组外部边界的地图 下面绘制了所有子区域 我想制作一张地图 但仅包含所在区域的外部边界region栏目中的spain目的 我尝试过几个aes like fill and group甚至在绘制之前进行分组但找不到正确的方
  • Android 解析 JSON 数组

    如何解析 JSON ARRAY 来获取没有 和 的数据 这是 json formattedAddress 23 Damansara Puchong Hwy Bandar Puchong Jaya 47100 Puchong Batu Dua
  • 设置 JQuery event.preventDefault() 时绕过 window.open 上的弹出窗口阻止程序

    我想在超链接的单击事件上有条件地显示 JQuery 对话框 我有一个要求 比如在条件 1 上打开一个 JQuery 对话框 如果条件 1 不满足 则导航到其点击事件有问题的 href 标记引用的页面 我可以在链接的点击事件上调用函数 该函数
  • 为什么我的 Scala 列表在以下代码中消失了?

    val files new File data list val filtered files filter name gt name contains txn val masterList new ListBuffer String fo
  • ISIN 至少有 1 个号码

    我有以下正则表达式来解析债券 资产等的 ISIN 2 个字符后跟 10 个数字和字符 A Z 2 A Z0 9 10 但这也标记了例如这样的单词ABCDEFGHIJKL 但这不是真正的 ISIN ISIN 的定义如下 WIKI https
  • 仅在加载 Google Web Font 后才绘制到画布

    我在用 fillText 在画布上 我希望其文本采用 Google Web 字体 在我的例子中为 Oswald 当页面加载时 文本在字体加载之前被绘制到画布上 但显然一旦字体加载 画布上的文本就不会更新 因为它已经被绘制为位图 如何延迟此文
  • 基于向量重叠从列表中删除和添加元素

    我有一个包含约 500 个模型对象的列表 该对象的名称是 v1 existing list lt vector list 3 v1 lt names existing list lt c A B C 我现在得到了不同的数据集 我也需要对其进
  • 实体框架 Code First 的 Spatial / DBGeography 属性索引

    我有一个 EF 6 1 代码优先项目 其模型之一具有 DbGeography 属性 仅包含 POINT 地理 我将对其执行查询 我声明自定义索引如下官方指南 http msdn microsoft com en us data jj5916
  • 使用 ES6 (Babel) 导出类

    我正在使用 ECMAScript 6 编写一些前端代码 使用 BabelJS 进行编译 然后使用 Browserify 进行浏览器化 以便我可以在一个文件中包含一个类 将其导出并将其导入到另一个文件中 我这样做的方式是 export cla
  • SearchView.isFocused 始终返回 false

    我正在尝试确定是否SearchViewActionBar 中的焦点 但当我打电话时SearchView isFocused 我总是得到false因此 即使视图真正聚焦 内部有光标 并且显示软键盘 我如何检查是否SearchView是否专注
  • 如何在测试期间对 Node.js 内置 fs 进行存根?

    我想存根 Node js 内置组件 例如fs这样我实际上就不会进行任何系统级文件调用 我唯一能想到的就是通过fs以及所有其他内置函数作为我所有函数的参数 以避免使用真正的 fs 这看起来有点愚蠢 并且创建了一个冗长的函数签名 里面挤满了内置
  • 如何将连字符后的第一个字母大写,即 Adam Smith-Jones

    我正在寻找一种将字符串的第一个字母大写的方法 包括名称由连字符连接的位置 例如 adam smith jones 需要是 Adam Smith Jones ucwords or ucfirst 如果我把它们分成名字和姓氏 只有亚当 斯密 琼
  • Rabbitmq:代理重启后未确认的消息不会消失

    我们观察到了 RabbitMQ 的以下行为 并试图了解它是否正确以及如何解决它 设想 持久 消息被传递到持久队列中 单个 消费者 Spring AMQP 获取消息并开始处理 gt 消息从 READY 变为 UNACK 现在代理已关闭 gt
  • 使用键值存储实现的图数据库

    我需要一个图形数据库 该数据库需要备份并可能在较低的抽象级别进行访问 为了负载平衡 它也必须是分布式的 单个主复制就可以 我知道可以使用自引用键值存储来实现图形数据库 Git 对象数据库就是这种模式的一个示例 我发现大多数图数据库令人沮丧的
  • 使用Python的h5py包读取hdf文件时出错

    我想从我下载的 hdf 文件中提取数据 MODIS http modis atmos gsfc nasa gov MOD08 M3 acquiring html网站 链接中提供了示例文件 我正在使用以下代码行读取 hdf 文件 gt gt
  • render() 中的 React 函数

    在 React 组件中放置函数的位置是否有偏好 我仍在学习 React 所以只是想找出最佳实践 class Content extends React Component What is the difference between put
  • 应用内购买自动续费交易恢复问题

    我正在开发一个应用程序 用户可以在其中购买自动续订订阅 购买部分工作正常 但当用户删除应用程序并尝试恢复其购买时会出现问题 以下是我为处理该问题而编写的代码 我已经给出了一个标题为 已经是订阅者 的按钮 当用户点击时 我调用以下代码 SKP