gpt4 book ai didi

ios - 无法完成付款队列中未完成的交易

转载 作者:技术小花猫 更新时间:2023-10-29 10:37:08 42 4
gpt4 key购买 nike

我的应用程序在 IAP 沙箱中进入了某种奇怪的状态...每次我启动应用程序时,它都会询问特定测试用户的密码。我猜是由于未完成的交易。我真的很想完成那笔交易,但这是不可能的。一些背景信息以及我为此所做的工作:

  • 我已经从 itunesconnect 中删除了那个测试用户
  • 应用程序启动后,我立即调用 [[SKPaymentQueue defaultQueue] addTransactionObserver:self]
  • 在我为该特定测试用户输入密码或点击取消后,没有收到支付队列更新通知
  • [SKPaymentQueue defaultQueue].transactions.count 总是0,所以我无法手动完成未完成的交易
  • 我已从设备中删除应用程序,重新启动设备 - 仍然要求输入密码
  • 我正在从设置 -> iTunes 和 App Store 注销用户
  • 在我取消要求输入密码的对话框后,不知何故我可以用另一个测试用户登录,但下次我仍然得到旧测试用户的密码对话框。

唯一剩下的就是更改包 ID,这在我的情况下是不可取的。希望有人知道如何摆脱未完成交易的替代方法。

最佳答案

我把它放在这里是因为有很多非常糟糕的答案提供了关于如何解决这个问题的错误信息。它不是那么罕见、神秘或 Apple 错误,它是 App 商店设计的一部分,可帮助您正确构建 IAP。

不要:

  • 永远,永远,永远删除沙盒测试用户。这使得问题无法解决,您将陷入无限循环 hell ,直到交易最终消失....它确实消失了,但需要很长时间,比如几天或几周。
  • 如果您删除沙盒测试用户,当系统随后反复提示您(例如每次您的应用设置 IAP 时)登录测试用户商店帐户以完成 交易,你不能,因为用户已被删除。您也无法重新添加测试用户,因为开发者门户会提示用户 ID 已被使用
  • 请勿:删除应用重新安装 iOS 或任何其他此类 BS。没有效果,没有解决问题,浪费了很多时间。

做:

  • 对所有交易调用FINISH。如果由于某种原因中断,只需在应用程序的后续运行中完成即可。该应用程序将重复发送支付队列通知,直到您对其调用完成,让您有机会调用 [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 这是有意为之的,是为了防止中断交易。

就是这样!完成所有交易,否则每次您的应用程序在该设备上启动时,您将被发送到重复请求登录不存在的测试用户 App Store 帐户的无限循环 hell :(

关于ios - 无法完成付款队列中未完成的交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23028453/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com