首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试使用StoreKit恢复应用内购买时,未收到预期的委托调用

StoreKit是苹果公司提供的一个框架,用于在iOS和macOS应用中实现应用内购买功能。当用户购买了应用内的商品或订阅时,开发者可以使用StoreKit来处理支付和交付商品的流程。

在使用StoreKit恢复应用内购买时,开发者可能会遇到未收到预期的委托调用的情况。这可能是由于以下几个原因导致的:

  1. 未正确实现StoreKit的委托方法:在使用StoreKit时,开发者需要实现SKPaymentTransactionObserver协议中的方法,例如paymentQueue(_:updatedTransactions:)方法。如果未正确实现这些方法,就无法接收到StoreKit的委托调用。开发者需要确保正确实现了所有必要的委托方法。
  2. 用户未登录或未授权:在进行应用内购买时,用户需要登录自己的Apple ID,并且授权应用进行支付。如果用户未登录或未授权,StoreKit将无法进行购买操作,并且不会触发委托调用。开发者需要确保用户已经正确登录并授权了应用进行支付。
  3. 商品或订阅配置错误:在App Store Connect中配置应用内购买商品或订阅时,开发者需要确保配置的商品或订阅信息正确无误。如果配置错误,StoreKit可能无法正确处理购买请求,并且不会触发委托调用。开发者需要仔细检查配置的商品或订阅信息是否正确。
  4. 网络连接问题:在进行应用内购买时,需要与App Store进行通信。如果设备的网络连接不稳定或存在问题,可能会导致无法正常与App Store通信,从而无法触发委托调用。开发者需要确保设备的网络连接正常,并且没有被防火墙或其他网络限制所影响。

针对以上问题,可以参考腾讯云提供的相关产品和服务来解决:

  1. 腾讯云移动应用开发平台:提供了丰富的移动应用开发工具和服务,包括应用内购买功能的集成和管理工具,可以帮助开发者简化应用内购买的实现和管理流程。详情请参考:腾讯云移动应用开发平台
  2. 腾讯云移动推送服务:提供了稳定可靠的消息推送服务,可以用于向应用用户发送购买成功等通知消息,提升用户体验。详情请参考:腾讯云移动推送服务
  3. 腾讯云移动分析服务:提供了全面的移动应用数据分析和统计服务,可以帮助开发者监控应用内购买的情况,了解用户行为和购买偏好。详情请参考:腾讯云移动分析服务

请注意,以上提到的腾讯云产品仅作为示例,其他云计算品牌商也提供类似的产品和服务,开发者可以根据自己的需求选择合适的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WWDC22 - In App Purchase 更新总结

提供应用预订(app pre-orders)。有关更多信息,请参阅 应用预订。 您 App 从收费更改为免费 App,反之亦然。 推广应用购买。有关更多信息,请参阅 推广应用程序购买。...推广应用购买。有关更多信息,请参阅 推广应用程序购买。 对现有和历史遗留旧 App 使用 Original StoreKit API。...从收据中获取用户应用购买项目收据信息。...特别注意:消耗型应用购买项目如果调用了 finishTransaction(_:),则不会在出现在舞台交易历史列表中,所以,消耗型应用购买项目不能使用这个接口作为校验接口!!!...Apple 将尝试解决账单问题,并在订阅者保留订阅访问权限同时恢复订阅。如果订阅在这个期限恢复,则付费服务天数计数和您收入都不会中断。

4.6K90

应用程序购买教程:入门

现在,在App Store Connect中查看应用程序条目,单击“ 功能” 选项卡,然后选择“ 应用程序购买”。要添加新IAP产品,请单击应用购买右侧+。 ?...在应用程序开发版本中测试应用程序购买,Apple提供了一个测试环境,允许您“购买”您IAP产品,而无需创建财务交易。...purchasedProductIdentifiers跟踪已购买商品。SKProductsRequest委托使用其他两个属性来执行对Apple服务器请求。...您是否尝试从设备中删除该应用并重新安装? 仍然卡住?正如您所看到,IAP需要做很多工作。尝试本教程评论与其他读者讨论。 购买物品 您希望能够确定已购买商品。...事实上,如果苹果无法恢复非消费品购买,Apple可能会拒绝该应用。 作为购买交易观察员,IAPHelper在购买恢复已经收到通知。下一步是通过恢复购买来对此通知做出反应。

5.5K20
  • 第一个开源库来啦!

    前言 iOS 应用购买(In-App_Purchase)功能简称:IAP,一直是付费 APP 重要组成模块,尤其是对游戏类应用,因为苹果规定虚拟类货币必须得使用 IAP 支付,否则该应用就不能通过苹果审核...监听 App Store 消息 首先,第一步要做事情就是注册监听,这个监听机制会让我们应用能够接收交易成功,失败还有恢复购买消息; 我用 Self 来作为一个 Observer, 并把它加入到...购买 用户发起支付调用此接口,并传参要购买商品ID;回调将会以闭包形式通知客户端, 参数记录了当前购买状态,可以用 if 或者 switch 方式来罗列这些状态。...purchaseSuccess ,表示购买成功,接下来可以继续进行票据验证工作;如果收到其他状态,则需要提示客户端当前购买遇到了麻烦。...恢复购买 当你应用程序商城里有非消耗品时候,就需要加上一个恢复购买功能;如果用户换了手机或者卸载又安装了你 App, 那就需要在应用恢复这些商品购买状态;restorePurchase 这个接口能够帮您实现需求

    81840

    iOS购(IAP)自动续订订阅类型总结

    作者:凡几多 https://www.jianshu.com/p/9531a85ba165 介绍 iOS App 购类型有四种: 消耗型商品:只可使用一次产品,使用之后即失效,必须再次购买...示例:钓鱼 App 中鱼食。 非消耗型商品:只需购买一次,不会过期或随着使用而减少产品。 示例:游戏 App 赛道。 自动续期订阅:允许用户在固定时间段购买动态内容产品。...用户向苹果服务器发起购买请求,收到购买完成回调(购买完成后会把钱打给申请银行卡购买成功流程结束后, 向服务器发起验证凭证(app端自己也可以不依靠服务器自行验证) 自己服务器工作分...在订阅到期之前24小,App Store开始尝试自动续订。App Store会多次尝试在一段时间内自动续订订阅,但如果尝试失败次数过多,最终会停止。...关于这个问题有两个解决办法: (1)做游客模式可购买登录是绑定设备,下一个账号登录以后绑定账号) (2)必须登录才可以使用app。 当然也可以做一个审核接口来应对。

    11.9K62

    苹果iOS购三步曲:App退款、历史订单查询、绑定用户防掉单!--- WWDC21

    点一个赞吧~ 大家都知道,手机游戏收入重要来源就是虚拟物品购买,而 iOS 需要通过 App Store 必须使用苹果 In-App Purchase (应用购买,下文统一使用IAP表示购功能。...[16239029211953.jpg] 一般情况下,第一次打开 App ,开发者就可以通过 StoreKit 2 提供接口在后台实时帮用户恢复购买记录。...对于非消耗品项,用户在一个新设备,可能需要提供给用户恢复购买记录 UI 入口。...如何识别该客户进行应用购买? [16239077635884.jpg] 这个就是前言提到用户收到苹果收据发票,无法与开发者订单匹配问题!....jpg] 苹果深入解决了退款通知流程,就是开发者收到退款通知,这个退款可能是48小任意时刻。

    12.6K20

    了解 StoreKit 2 新功能

    前言 StoreKit 为我们提供了通过应用程序获得收入机会。它允许我们设置应用购买和订阅购买流程。...StoreKit 2 引入了一种基于现代 Swift API,用于构建类型安全应用购买。下面我们将开始关于 StoreKit 2 系列文章。...接下来,应该创建一个 StoreKit 配置文件,以便在没有与 App Store 网络连接情况下测试应用购买功能。...Product 类型实例包含了我们需要显示所有信息,如应用购买标题、描述和价格。 Product 类型还具有 purchase 函数,我们可以使用它来启动特定产品应用购买流程。...它提供了 payloadValue 计算属性,我们可以使用它来解包已签名数据,或者如果数据正确签名,则引发错误。 一旦获取了交易,应该解锁用户购买功能,并在特定交易上调用 finish 函数。

    33110

    StoreKit2 有这么香?嗯,我试过了,真香

    请求商品 在 StoreKit2 中,请求商品 API 变得简洁无比,配合上使用 @aync/@await,只要简简单单一行代码,即可从 AppStore 获得购商品。...,如果你应用包含了非消耗品,那么开发者就需要为此提供一个“恢复购买按钮,来保证用户在新设备上能同步这些非消耗品。...但是在 StoreKit2 中,就不再需要这个恢复按钮了,因为在 StoreKit2 中, 我们可以直接获取所有已经购买非消耗品和订阅类商品记录,只需要简单通过调用 Transaction.currentEntitlements...最后,StoreKit2 还提供了为购商品退款 API,原先退款方式需要玩家在苹果官方网站上登录自己 AppleID 来申请退款,非常不方便;现在可以直接在应用中进行退款操作,开发者只需要调用下方...说了几个它优势,再来说说它唯一一个硬伤吧!那就是 StoreKit2 目前只支持 iOS15。对于需要支持 iOS15 以下机器,还得使用原先那一套购逻辑。

    3.7K21

    Swift 周报 第三十六期

    /66896 "在 "super.init" 调用之前使用 "self" 与 "在 super.init 调用初始化属性" 冲突") 我需要在 init 中创建一个捕获 self 闭包来初始化属性...但是,在显式消费之后不会调用该对象 deinit。相反,它是在作用域末尾调用。这是预期行为还是编译器错误?对于不可复制结构,它可以按预期工作。...很快,我希望所有局部变量都具有“消耗”效果。 推荐博文 掌握 StoreKit2[10] 摘要: 本文介绍了 Swift 中 StoreKit2,这是一个用于构建应用购买和订阅框架。...文章从配置项目和创建 StoreKit 配置文件开始,介绍了如何使用 Store 类型处理应用购买逻辑。...通过示例代码和说明,文章展示了如何使用 Store 类型来获取和显示应用购买产品列表,并启动购买流程。还介绍了产品类型和其 purchase 函数,在成功购买处理交易和验证过程。

    22820

    iPhone 15 系列跌破 5000 元大关 | Swift 周报 issue 46

    我们认为,Apple App 购买项目系统是用户购买数字商品和服务极为安全可靠方式。因此,对于 App 数字商品和服务购买,你仍需使用 App 购买项目系统。...例子演示插入可选字符串和可选整数挑战。当前解决方案涉及笨拙代码或零合并运算符限制。建议解决方案引入新插值重载,允许将预期默认值指定为字符串,而不管值类型如何。...推荐博文Swift 购测试摘要: 这篇博客介绍了在 Swift 中使用 StoreKitTest 框架进行应用购买测试方法。...随后,博客详细介绍了 StoreKitTest 框架,该框架允许我们编写测试用例以验证应用应用购买、退款、ask-to-buy 和订阅过期等方面的处理能力。...通过示例代码,演示了如何使用 SKTestSession 类型执行购买、管理交易、模拟退款以及测试应用对交易更新反应。博客还提到了创建 StoreKit 配置文件必要性。

    14332

    Swift 中 StoreKit 测试

    使用 SKTestSession 类型实例,我们可以购买应用产品、管理交易、退款和过期订阅等。 创建一个 StoreKit Demo 我们从创建一个 StoreKit 相关功能测试用例开始。...我通常有一个称为 SettingsStore 类型,它定义用户配置并处理应用购买。我们将使用 StoreKitTest 框架通过测试来覆盖 SettingsStore 应用购买管理部分。...如上例所示,我们使用 SKTestSession 类型实例来模拟询问购买,并验证我们应用程序在购买被批准或拒绝行为。...此外,还介绍了使用 askToBuyEnabled 属性启用询问购买功能方法,并展示了如何验证应用程序对购买被批准或拒绝行为。...通过这篇文章,读者可以了解如何使用 StoreKitTest 框架来验证应用程序处理应用购买和用户流程能力。

    9400

    Xcode 12 使用技巧

    6 搜索查看 在 Find navigator 面板里搜索某个内容,如果出现多个结果,在使用完一个结果可以使用 Backspace 剔除该结果,这样剩下都是操作过搜索结果。...7 Canvas切换 Canvas 暂停,按 Opt+Cmd+P 恢复预览。也使用 Opt+Cmd+Return 来完全隐藏画布。...21 粘贴代码格式化 有时候从别的地方粘贴代码到项目中缩进不对,可以使用 Ctrl+I 进行格式化。 22 购测试 可以在没有 App Store Connect 情况下测试应用购买。...创建一个新 StoreKit Config 文件,并添加 IAP。...然后进入菜单 Product,按住 Option 然后点击 Run,在弹出窗口 Options 选项卡中,更改 StoreKit Configuration 为添加 StoreKit Config

    1.7K20

    NSURLSession 所有的都在这里(二)

    远程服务器连接,允许您应用程序验证服务器证书链 如果您实现此方法,则会话会调用委托URLSession:task:didReceiveChallenge:completionHandler...如果您应用程序提供会话委托方法,则NSURLSession对象会调用任务委托URLSession:task:didReceiveChallenge:completionHandler:方法来处理该挑战...此委托方法可能被多次调用,并且每次调用仅提供自上次调用收到数据。 如果需要,该应用负责积累这些数据。...会话在任务完成接收所有预期数据后调用委托方法。如果实现此方法,则默认行为是使用会话配置对象中指定缓存策略。...只要恢复该任务,会话就会使用该新任务调用委托 URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:方法,以指示恢复下载。

    1.8K30

    iOS应用评价与购买三方APP组件 原

    iOS应用评价与购买三方APP组件     首先来说应用评价组件,应用评价组件是iOS10.3中新引入功能。其封装在StoreKit框架中。...在模拟器上,这个Submit按钮是不可点击,如果在真机上,并且应用程序已经上线,可以直接进行评价。这个方便评价组件可以避免让用户跳出APP进行评价不好体验。    ...SKStoreReviewController中只有requestReview这一个类方法,需要注意,只有在iOS10.3后才可以使用。但是StoreKit这个框架很早就有了。...里面还有一个类可以让用户直接在应用打开一个第三方应用AppStore购买页。...网站进行搜索,之后可以获取到应用下载url地址,这个url地址是被编码过,解码后其中参数即有appid值。

    1.3K40

    iOS开发实战-上架AppStore 通过购和广告获得收益写在前面效果分析代码部分补充Demo地址

    使用是本地数据库,自定义tableviewfootview。...购买标识为0,广告位frame高设为44; 购买成功就将标识设为1,广告位frame高设为0; 都是tableview直接reload。 这里再给出代码。...注意:设置成订阅类商品(非消耗)一定要添加恢复购买代码 不然审核会被拒 #import @interface ColorFavTableViewController...,可以存储到开发商服务器端 }else{ NSLog(@"购买失败,未通过验证!")...当然,Github公开无广告版源码,欢迎点赞加星 AppStore 上线免费版本地址 AppStore 上线收费版本地址 Github 无广告版 源码 广告版(腾讯广点通)源码 含购去广告 点赞超过

    1.2K20

    iOS之深入解析Xcode 13正式版发布40个新特性

    二十四、StoreKit Xcode 中 StoreKit 测试支持对使用 StoreKit现代基于 Swift API 构建应用购买进行全面测试。...作为平台; 当尝试导入本地尚不可用模块,Xcode 现在会建议添加集合中包; 现在可以在 Add Packages 表中添加精选包集合; 单元测试现在可以直接测试可执行目标。...使用这个 API 加载产品信息、在您商店中显示应用购买、允许客户进行购买、管理对内容和订阅访问以及接收由 App Store 以 JSON Web 签名 (JWS) 格式签署交易信息。...您可以使用购买选项来确定如果 App Store 店面在交易期间发生变化,交易是否继续。如果添加此选项,则默认为 true。...和 CHHapticEventTypeAudioCustom 类型事件现在恢复播放中间事件。

    8.8K40

    AppStore服务端通知(订阅退款回调通知)

    DID_RENEW 表示客户订阅已成功自动续订了新交易期。 INITIAL_BUY 在用户最初购买订阅发生。...INTERACTIVE_RENEWAL 指示客户使用应用程序界面或在该帐户“订阅”设置中App Store上以交互方式续订了订阅。立即提供服务。...REVOKE 撤销 表示用户不再可以通过“家庭共享”获得应用购买。当购买者禁用产品家庭共享,购买者(或家庭成员)离开家庭组或购买者要求并收到退款StoreKit会发送此通知。...您应用程序还将收到PaymentQueue(_:didRevokeEntitlementsForProductIdentifiers :)调用。...有关家庭共享更多信息,请参阅在应用程序中支持家庭共享。 */ Password 不是必须,只有购买订阅和收到订阅相关消息,才会需要这一项. 只是普通购 就没有这一项。

    5.8K20
    领券