问题标签 [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 投票
2 回答
3597 浏览

ios - iOS In App Purchase 非消耗品决定是新购买还是恢复

有没有办法查明用户何时购买非消耗品,是第一次购买还是已经购买并免费再次获得?

我检查了交易transactionStatetransactionDate但在这两种情况下,数据都是相同的:

  • transactionState:(如果用户已经购买了它,则不是SKPaymentTransactionStatePurchasedSKPaymentTransactionStateRestored
  • transactionDate:将交易添加到 AppStore 支付队列的日期。
0 投票
3 回答
4296 浏览

objective-c - 导入时 StoreKit 框架“没有这样的文件或目录”

我正在尝试导入 StoreKit 框架。

并在 BuildPhases 中添加了它。

但它给了我一个“没有这样的文件或目录”错误。

我尝试了 iAd 框架来比较 -> 作品。

我尝试了一个新项目并添加了 StoreKit Framework -> Works。

我试过了#import "/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/StoreKit.framework/Headers/StoreKit.h"

哪个 importet 我 StoreKit.h 文件,但该文件中的所有导入然后抛出“没有这样的文件”错误。

我不知道我还能在哪里寻找错误。

0 投票
1 回答
3868 浏览

objective-c - 已在 StoreKit 中购买的订阅

我在 iOS 应用程序的应用程序购买中使用可更新订阅。当用户尝试购买他们已经支付的订阅时,iTunes 会显示一条消息“您当前订阅了此”。

如何检测此事件何时发生,以便我可以处理事务并授予对我的应用程序的访问权限。

在观察者的 paymentQueue:updatedTransactions: 方法中,它以 SKPaymentTransactionStateFailed 的形式通过。如何区分此类故障和其他故障,例如用户按下取消按钮?

我是提交返回的交易还是需要调用 restorePreviousTransactions。

在 Apple 文件中,它指出“如果用户尝试购买他们已经购买的非消耗性产品或可续订的订阅,您的应用程序会收到该项目的常规交易,而不是恢复交易。但是,不会再次向用户收费对于该产品。您的应用程序应将这些交易视为与原始交易相同的交易。”

0 投票
1 回答
494 浏览

iphone - 在 iPhone 应用程序中的 inApp 购买以从 iBook 商店获取图书

我正在一个 iPhone 应用程序中工作,我需要在其中添加应用内购买功能。现在在 inApp 购买中,我需要添加大约 20 本书,这些书已经在 iBook 商店中列出。现在当我使用inApp购买支付时,从iBook商店购买的书可以直接进入我的应用程序。是否可以在可以从 iBook 商店获取图书的 iPhone 应用程序中进行操作。

如果有人知道这件事,请帮助我。我还没有看到任何与这件事相关的东西,但实现起来真的很有趣。

提前致谢。

0 投票
1 回答
1528 浏览

iphone - 在应用程序购买中,用户在后台应用程序时取消 tx:tx 状态保持在购买状态

当应用程序在后台并且用户尚未登录到商店时,我在应用程序购买(沙盒环境)中取消用户有一些奇怪的行为:

过程如下:

  • 用户未登录/应用程序 ID 未在“设置”>“商店”中设置
  • 用户点击购买按钮。这叫[[SKPaymentQueue defaultQueue] addPayment:payment];
  • 用户立即按下主页按钮(应用程序进入后台)
  • 出现 Storekit 弹出窗口,要求确认购买。用户取消
  • 应用程序再次激活,并希望收到- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions,但没有。TX 仍处于购买状态。

如果 testuser 已经登录到商店,则此过程是不同的。在这种情况下,上述过程按预期工作。

再备注:经过以上步骤,我其实又买了一个in-App item(包括登录appstore)。在此之后,我将应用程序发送到后台并重新激活它,它将处理以前丢失的取消交易。

结论: 用户在应用程序处于后台且未登录商店时取消支付交易会导致 storekit 回调延迟交付。在用户实际登录到应用商店并通过重新激活应用触发 PaymentQueue 流程后完成交付。

这种行为似乎是错误的,如果在实际环境中确实如此,我可能会认为这是一个 Storekit 错误。是否有人经历过相同的行为,或者可以指出一些事情来防止 tx 在购买状态下“挂起”?

谢谢,马库斯

0 投票
4 回答
9315 浏览

iphone - 我们可以检查用户的应用内购买是否已被 Apple 退款吗?

情况:
- 用户进行 IAP 并获​​得了一些内容,我们存储用户设备 ID 以确保他们可以随时访问此内容。
- 用户认为他们不喜欢该内容,因此他们致电 Apple 并获得退款。
- 用户仍然可以访问内容,即使他们的 IAP 已获得退款

问题:
我们不希望用户能够再访问此内容。这可能成为他们可以利用的漏洞。(解锁内容,然后获得退款并继续访问所述内容)

问题:
我们有什么方法可以通过用户的 transactionId、transactionReceipt 或我们可能拥有的任何其他信息来检查用户是否已因 IAP 获得退款?

作为参考,我已经阅读了StoreKitGuide,它没有提到这个案例。

0 投票
1 回答
943 浏览

iphone - iOS 版 StoreKit - 订阅问题

我在我StoreKit的测试应用程序中使用新的订阅模型,但我有几个问题:

  • 如果用户取消订阅,我如何得知这一点?还是我必须自己监控日期(使用 value transactionDate

  • 如果订阅被取消,用户现在可以在订阅 过期的情况下恢复此
    购买,对吗?

谢谢!

0 投票
2 回答
1001 浏览

iphone - StoreKit 沙盒测试不提示登录

我正在测试一周前运行良好的应用内购买,现在似乎正在发挥作用。

我可以毫无问题地从商店加载产品(使用 NSLog 来确认产品 ID、价格等),但是当我发送购买产品的实际请求时 - 我不会在登录我的(测试)用户帐户,它只返回错误代码 -1003“无法连接到 iTunes 商店”。

这很奇怪,因为它在一周前确实有效,而现在却没有。更奇怪的是,如果我当前登录到我的实时 iTunes 帐户,它会提示我输入密码(购买产品)。

就好像应用程序正在检查是否有登录的 iTunes 帐户,如果没有,它就会失败......这很烦人,因为你不应该通过你的设置登录测试帐户,因为它将使其无效。

任何人都可以为我阐明这一点吗?如果可以的话,我会很高兴的:)

谢谢!

0 投票
1 回答
8615 浏览

iphone - 应用内购买响应。产品为空

我知道之前有人问过:iPhone In App Purchase - response.products 还是空的?

但我也在尝试实现应用内购买,但我的 response.products 是空的。我的情况:

我一次上传并拒绝了我的二进制文件。

但后来我又把状态放回等待上传。(有关系吗?)

我所有的应用内购买产品的状态都是“准备提交”。

我的生产用户已注销。测试用户尚未登录。

0 投票
1 回答
4054 浏览

iphone - SKPaymentQueue canMakePayments 总是返回 false

我正在使用应用内购买创建我的第二个应用。第一个应用程序一切顺利,它在应用程序商店中,但是当我调用 [SKPaymentQueue canMakePayments] 时,第二个应用程序总是得到错误的结果。我在应用程序 1 和 2 之间完成了相同的步骤。谁能指出我需要检查的其他事情?

谢谢