问题标签 [storekit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
11364 浏览

iphone - iPhone Store Kit 返回无效产品 ID 错误

我正在尝试在我的 iPhone 上测试应用内购买并遇到问题,我请求信息的产品 ID 最终在“didRecieveResponse”方法中作为无效产品 ID 返回给我。

我有:

  • 创建了与此应用关联的店内产品。它的捆绑 ID 与其他所有内容匹配。它已被批准出售并得到开发商的批准。
  • 确保我的新配置文件已启用商店应用购买,并且它具有完整的应用名称:“com.domain.appname”
  • 确保这是用于将应用程序签名到我的 iPhone 的配置文件。
  • 确保“com.domain.appname”是用于构建配置文件的应用 ID。
  • 确保在我的 plist 文件中使用“com.domain.appname”作为捆绑标识符。

一切似乎都已到位,但是我仍然将我的产品作为无效 ID 退回给我。

这是我正在使用的代码:

我所有的产品 ID 都显示在无效的打印输出中,并且没有一个显示在“产品信息:”打印输出中。

任何建议将不胜感激...

PS 是的,这是作为 Objective-c/c++ 构建的。

0 投票
1 回答
6482 浏览

iphone - 使用沙盒测试帐户在应用程序中进行测试的问题

我通过 iTunes Connect 中的管理用户帐户创建了一个测试用户帐户。当您创建这样的帐户时,您必须为您的帐户选择一个有效的店面。我选择了美国商店。现在,我在设备上的 App Store 设置中退出了商店。运行应用程序并尝试执行购买。我使用我的测试帐户成功登录。在输入凭据时按确认后,我收到一个警报,该警报来自观察者的 SKPaymentTransactionStateFailed。它说“您的帐户仅对在美国 iTunes Store 中的购买有效”。错误状态 = 0 未知。第二次尝试购买时,StoreKit 只要求我输入密码,就像上次登录成功一样。输入密码后,我可以执行购买。我的问题是这是否仅仅是因为它 sa 测试帐户和应用程序实际上不在 AppStore 上?我应该怎么做才能避免此消息或至少继续购买过程?

非常感谢,

纳瓦

0 投票
20 回答
49136 浏览

ios - iPhone In-App Purchase Store Kit 错误 -1003“无法连接到 iTunes Store”

我一直致力于添加应用内购买,并且能够使用 Store Kit 创建和测试应用内购买(耶!)。在测试期间,我以一种导致应用程序在购买过程中崩溃的方式锻炼了我的应用程序(所以我猜想接收 paymentQueue:updatedTransactions 和调用 finishTransaction 的正常周期被中断了)。

现在我无法成功完成任何交易,而是在调用 paymentQueue:updatedTransactions 时只获得带有 transactionState SKPaymentTransactionStateFailed 的交易。

transaction.error.code 为 -1003,transaction.error.localizedDescription 为“无法连接到 iTunes Store”!

我尝试从 iTunesConnect 中删除所有产品,并使用不同的标识符重新构建它们,但这并没有帮助。我还尝试使用 App Store 应用程序真正连接到真正的 App Store 并下载一些应用程序,这样我就可以连接。最后,我访问了 Settings:Store 应用程序,以确保我已退出正常的应用程序商店帐户。

0 投票
1 回答
1171 浏览

iphone - 在应用程序内购买

我想在我的应用中使用应用内购买。现在,我已经创建了我的应用程序的一半。据我所知,有两种方法可以使用应用内购买将应用交付给买家。第一个是通过创建您的应用程序功能齐全,然后如果您的应用程序尚未购买,则该应用程序的某些功能应被锁定,如果已购买,则应解锁这些功能。第二种方法是使用服务器端交付。我不需要提及它。

我打算使用第一个,但我脑子里有些混乱。如果我使用第一个,这意味着即使我的应用程序是否被购买,二进制文件仍然是相同的。如果我使用那个是否安全,如果我的应用程序已经完成,海盗会想办法破解它。

我还有一个问题。我打算将我的应用程序分为三个产品。第一部分有我的目标用户的常用项目。第二个是第二个有用项目的常用。第三个包含两个部分加上第三个有用的项目。我打算用这些来花费他们:

这意味着如果用户购买第一个,他将花费 5 美元。如果他随后购买第二个零件,则只需花费 5 美元,因为他已经购买了第一个零件。

在其他情况下(用户没有购买任何物品),如果他选择购买第二个,则将花费他 10 美元,因为他没有任何购买的物品。

是否可以与 Store kit frameWork..

顺便说一句,我打算先发布第一个。另一方面,第二个将紧随其后,其中包含第一个和第二个项目。如果应用程序将被我的目标用户点击,那么第三个就会去

我想这样做是为了让用户可以选择他们只需要什么。

0 投票
3 回答
3309 浏览

iphone - SKPayementQueue:恢复交易完成而不在发布配置中调用“updatedTransactions”但不是调试配置

我正在调试恢复事务,并且在我的调试配置中一切正常:

IE 我叫:

稍后的 queueCalls:

之后的某个时候,它会调用:

每个人都很高兴。

但是在我的发布配置中,我从来没有看到对 updatedTransactions 的调用,所以我从来没有真正恢复购买。

可能相关,在我尝试还原后它不起作用。我重新启动应用程序,发现当我向商店索取产品列表时没有得到响应。

0 投票
3 回答
20384 浏览

iphone - 何时使用 restoreCompletedTransactions 进行应用内购买?

对于具有非消耗性应用内购买的基本应用,有没有人想出使用 SKPaymentQueue 的最佳实践restoreCompletedTransactions

观察

我知道建议始终注册事务观察器以接收返回应用程序的待处理事务,但这是一个不同的问题。看起来restoreCompletedTransactions应用程序必须主动决定何时调用以轮询客户已经进行的所有购买。

据我所知,该方法旨在检索可能丢失的购买。例如,客户可能会以这种方式安装应用程序或将应用程序移动到新设备上,从而导致应用程序的本地先前付款记录丢失或重置。

关注点

我不清楚的是如何以可靠的方式自动检测这种情况(即如何决定何时轮询丢失的购买)。我不想把这件事搞砸并冒着拒绝客户访问他们已经付费的功能的风险。

同时,为了安全起见,我不想restoreCompletedTransactions每次应用程序启动时都打电话,并且基本上可以取回我大约 99.9% 的时间已经知道的交易。(除了应用内购买,我的应用实际上不需要任何网络连接。)

笔记

Apple 文档明确指出,客户已进行的任何非消耗性购买都不会再次向他们收费。如果他们尝试重新购买,支付交易仍然应该发送到应用程序。

最坏的情况是,客户可以通过这种方式恢复购买,但我仍然希望避免让他们走上类似于重新购买他们已经支付过的东西的路径。

0 投票
2 回答
6234 浏览

iphone - iphone store kit:如何捕捉取消事件

这是我的问题:

当使用 storekit 进行应用内购买时,我正在显示一个“加载”视图,告诉用户在进程进行时等待几秒钟;但是假设这个用户,当 storekit 向他询问他的 iTunes 帐户密码时,按“取消”按钮......我如何“捕捉”这个事件以隐藏加载视图?

恐怕这可能是苹果拒绝的原因,因为用户的沟通非常重要。

感谢您的任何提示!

编辑:我在这里没有交易;我的第一步是恢复已完成的交易,因此通过此方法触发密码提示:

0 投票
3 回答
7396 浏览

iphone - StoreKit 返回所有产品 ID

这个问题与我在这里找到的其他问题有点不同。我的 In App StoreKit 正在运行,我可以成功在我的商店中列出产品。我浏览了 Apple 文档,但从未看到我的问题得到解决(我可能错过了)。

我的客户(非营利组织)希望能够通过他们的应用程序接受捐款。我想让他们能够即时添加新的捐赠活动,而无需用户更新他们的应用程序。我的意思是,他们可能有一个特别的“帮助我们在即将到来的植树节赞助一个活动”,并接受针对该案例的捐款。

我目前正在阅读这样的产品:

这意味着如果植树节活动出现,我将不得不发布更新以在我的请求列表中包含@“arborSponsor”。如何请求我的捆绑包下的每个产品?

我试过使用 @"com.thedomain.*" 和其他一些猜测,但没有运气。是否可以返回整个列表,我是否遗漏了一些非常简单的东西?谢谢!

0 投票
2 回答
463 浏览

iphone - 使用代码检测您的 iPhone 应用程序是否已上线与测试

我想知道应用程序代码中是否有办法确定应用程序是否真实(在 iTunes 商店中)与测试?原因是我已经解决了应用内购买的每个部分。但是,在验证收据时,您必须将其发送到https://buy.itunes.apple.com/verifyReceipt(如果是实时的)或https://sandbox.itunes.apple.com/verifyReceipt (如果只是测试)。

目前我在提交之前切换了设置,但我知道这种方法很容易失败,因为沙盒版本被意外提交。我想要代码来确定要使用的 URL。

0 投票
2 回答
4409 浏览

objective-c - 在应用程序购买“无效的产品标识符”错误消息

我在请求产品信息时遇到了无效标识符问题

我做了以下事情:

  1. 我已将我的应用程序添加到 iTunes 连接,并且捆绑标识符与程序门户中的那个匹配。

  2. 我已经在程序门户中为应用程序 ID 启用了应用程序购买,并为此创建了配置文件并安装在设备上。

  3. 使用产品标识符、价格和名称创建测试帐户。

  4. 我已将以下代码包含在我的项目中

    /li>

但我的 productid 无效。

如果有人有任何想法,请帮助我!