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

ios - 在 StoreKit/In-App Purchase 中区分初始购买和免费“重新购买”

来自 StoreKit 指南:

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

这在我正在开发的应用程序中提出了一个巨大的问题。我们已从发布商处获得大量内容的许可,以通过应用内购买进行销售。他们要求每次我们出售这种内容的一部分(即用户向我们付款)时,我们的服务器都会调用他们服务器上的 API 来报告交易。这是出于会计目的,最终用于根据我们与他们的协议确定我们在月底向他们支付的费用。

我已经阅读了一些关于 SO 和其他地方的建议,关于相当频繁地调用 restoreCompletedTransactions 并在设备上保持对用户已经购买的内容的本地理解,因此他们不能被允许再次购买。这对我来说似乎应该能够在服务器端实现。但是,正如 StoreKit 指南所承诺的,我们从 Apple 服务器获得的购买和重新购买的收据完全相同。

如果在这种情况下(“你得到了报酬”与“你没有得到报酬”),来自 StoreKit 的支付回调不能被认为是一种有效的记账机制,那么还有哪些关于交易流量的实时洞察?如果我们告诉他们我们必须在月底后等待 45 天才能从 iTunes Connect 中获得真实支付的美元金额,我认为与我们合作的出版商不会高兴。

0 投票
1 回答
240 浏览

iphone - 从任何地方以模态方式呈现 UIViewController 的推荐方式是什么?

在我编写的许多应用程序中,多次出现我必须以模态方式从某个没有引用当前可见控制器的类中呈现控制器。(例如,一个 StoreKit 事务观察器,它提供一个用于显示产品下载进度的控制器)。

使用 Three20,我可以使用- [TTNavigator visibleViewController]来完成工作,但如果我不想使用该框架怎么办?我应该重新实现一个类似的自定义函数TTNavigator吗?Apple API 中是否有类似的方法?例如,为我的应用程序中的所有控制器创建一个公共父类,然后用于NSNotificationCenter处理所有应用程序范围的通知会更好吗?(这当然会产生在一个类中包含不相关代码的副作用)

我真的很惊讶 Apple 没有在他的标准 API 中提供这个基本功能。或者这个问题在我身上反复出现的事实可能是设计实践不佳的标志?

0 投票
5 回答
8015 浏览

iphone - 处理取消的 IAP 交易

我正在使用 StoreKit 进行应用内购买。我发现当用户按下“取消”按钮时,API 的行为很古怪。

例如,如果我在“确认您的应用内购买”屏幕上按取消,我会得到我期望的SKPaymentTransactionStateFailed交易。error.code == SKErrorPaymentCancelled

但如果我按下购买然后按下取消,我会得到一笔Failed交易error.code == 0。这error.localizedDescription是“无法连接到 iTunes Store”,这显然是一个谎言。

将所有Failed交易都视为可忽略的取消是很诱人的,但我也可以清楚地看到,如果设备在飞行模式下处于离线状态,我会得到Failed一笔没有弹出警报的交易;在这种情况下,我真的应该通知用户解释问题。

我注意到MKStoreKit假设所有失败都是取消。MKStoreManagerfailedTransaction方法永远不会被调用;MKStoreObserver总是要求transactionCanceled所有的Failed交易。MKStoreManager.h评论建议没有错误消息,这transactionCanceled是有道理的,但是谁会通知用户有关Failed未取消的交易?

处理这些故障的最佳实践是什么?我应该吞下错误吗?总是显示错误,即使它是多余的?

0 投票
1 回答
1901 浏览

iphone - SKRequest didFailWithError

使用这种方法,可以阻止前任发生的错误 - (“无法连接到 iTunes”)等。现在,如果想将此错误消息显示为警报,这对用户来说真的很有帮助。例如,当“无法连接到 iTunes”错误显示为 UIAlertView 时,它可能会导致用户遇到他的 wi-fi 一直处于关闭状态的问题。他可以纠正这个问题并重试。但是在选择将这些错误显示为 UIAlertView 之前,必须知道所有可能返回的错误值,因为用户不会高兴看到类似“错误 %^@)$()(!)#()+ ! 代码 123_123443 blah"这是他无法理解的东西。如何最好地处理这个?事后想,如果知道这个方法中抛出的所有可能的 NSError 错误消息,那就太好了。

提前致谢

0 投票
0 回答
181 浏览

iphone - 在苹果测试期间,iPhone 应用程序在服务器上验证收据

快速提问,因为我似乎找不到这方面的信息,但我有一个应用程序,它是提交给苹果的付费定期订阅应用程序。就目前而言,我们使用服务器上的 Apple 沙箱 URL 验证商店收据。当苹果正在测​​试应用程序时(在它被批准之前)我们应该将该 url 更改为生产还是等到批准之后?有关系吗?谢谢!

0 投票
1 回答
4657 浏览

iphone - 应用程序购买/订阅中的自动更新如何在 iphone 中自行更新

我试图了解自动续订部分的工作原理。到目前为止,我经历了

验证应用内购买的收据

http://www.phpriot.com/articles/verifying-app-store-receipts-php-curl

和 Apple 文档。我已经完成了应用程序购买部分,但无法获得它的自动续订流程。

当购买到期时,苹果服务器响应状态为:21002 收据有效但已过期。

我想了解的是谁触发了新的购买?应用商店本身在后端?应用程序如何知道已发生续订?或者换句话说,续展证书如何到达处理申请?

兄弟,达山

0 投票
3 回答
3214 浏览

iphone - 在 MKStoreKit 失败的应用程序购买中:“产品的 iTunes 连接配置问题:xxx”

我正在尝试使用 MKStoreKit 在我的应用程序中实现应用程序购买。我已按照所有步骤操作,但出现错误:

产品的 iTunes 连接配置中的问题:

我重新创建了配置文件,检查了产品 ID 是否与 iTunes 连接中的产品 ID 相同,发送并拒绝了二进制文件,尝试删除所有内容并重新设置,但没有任何效果。

任何的想法?

0 投票
1 回答
20477 浏览

iphone - iOS 应用内购买分步教程

是否有任何一步一步的源代码/视频或任何其他类型的帮助来实现应用内购买?我已经尝试了很多教程,但我仍然无法为应用内购买找到完美的解决方案..

共享密钥有什么用?

0 投票
1 回答
313 浏览

iphone - StoreKit:我可以为用户免费下载他选择的通常收费的产品吗?

我很快将不得不实现 StoreKit 功能,我想知道......有没有办法也可以免费向用户提供一次产品,比如作为第一次使用该应用程序的礼物?

在我的特殊场景中,我将在我的教育应用程序中提供几种产品,如果用户有兴趣继续使用该应用程序学习,则需要不时购买这些产品。
但是我希望用户免费拥有的第一个产品,应该由他自己选择。所以一般所有产品都应该有价格,但是第一次下载应该是免费的。
我希望这个登录到我的服务器上,这样我就可以重新识别他,所以(A)他不能删除应用程序,重新安装和下载另一个免费产品,(B)所以他也可以在任何其他的他的设备。

我也对变通方法持开放态度,比如可能得到类似于苹果 ID 的东西,以便能够将其存储在服务器上。我知道我也可以使用 [[UIDevice currentDevice] uniqueIdentifier],但我希望用户在他的所有设备上都拥有第一个免费产品,而且只有一个。

有没有办法得到(A)和(B)?

0 投票
3 回答
1093 浏览

iphone - 应用内购买 iPhone 应用程序?

我在 iPhone/iPad 应用程序中遇到应用内购买问题。

我的问题是:

1> Shared Secret 有什么用 - 我们必须在哪里使用它?2> 我们如何才能存储我们所有的申请表?3> 我们如何测试我们的应用程序?4> 启用应用内购买 - 我们需要应用商店的应用程序吗?

请给我一些在应用程序购买中实施的指导方针。

谢谢你。

我已经完成了苹果流程以启用应用内购买,但我不知道我在步骤中遗漏了什么,这就是为什么我需要更清晰的步骤来理解我的应用程序中的应用内购买?

基本上我需要完整的应用内购买步骤。

谢谢你。