7

我将在 iPhone 应用程序中实现 StoreKit,并想知道是否有任何经验可以指出使用 StoreKit 的任何陷阱或陷阱?

我知道 API 是新的 - 但我的应用程序中有一些高级内容我想要求用户付费,这似乎是一种理想的方式 - 而不是将他们引导到网站以单独支付订阅费用。

我还假设有关于如何在应用商店中列出应用程序的指南,以明确该应用程序可以免费安装 - 但您必须升级某些功能。

更新(来自评论):您无法将免费应用程序转换为付费应用程序 - 因此用户必须先以最低成本安装它,然后您才能使用 StoreKit API 对附加软件收费。

第二次更新:您现在可以在免费应用程序中使用 API - Apple 最近更改了规则


任何人都可以推荐一个使用 StoreKit API 的优秀应用程序,我可以在该应用程序上建模用户交互吗?

4

4 回答 4

7

实现 StoreKit 时要考虑的事项:

  1. 当您[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];有时打电话时,您会在(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue 回调之前(有时甚至是很久之前)收到回调- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions。(有时交易也会丢失。)

  2. 有时,当您将购买添加到队列时[[SKPaymentQueue defaultQueue] addPayment:payment];,交易会从队列中删除,您得到的唯一反馈是:- (void)paymentQueue:(SKPaymentQueue *)queue removedTransactions:(NSArray *)transactions

  3. 用户取消会返回各种各样的错误消息,并且某些错误条件会返回 SKErrorPaymentCancelled 错误代码。具体来说:

    • 如果用户在提示“您已购买此产品”时点击取消,则交易错误为零。
    • 如果用户在提示“登录:[使用现有帐户] [创建新帐户] [取消]”时点击取消,则错误代码为 SKErrorUnknown。
    • 如果用户在提示输入密码且未输入密码时点击 [OK] 而不是取消,则错误代码为 SKErrorPaymentCancelled。

  4. 不要忘记实现其他 SKRequest 回调:

    - (void)request:(SKRequest *)request didFailWithError:(NSError *)error;

    - (void)requestDidFinish:(SKRequest *)request

于 2009-11-20T07:38:54.447 回答
1

我认为必须考虑收视率和评论的当前状态。客户对应用程序的印象一直趋于负面(这对许多优秀的开发人员不利)。

我怀疑 SK 会给您的客户另一个理由,让您对您的申请感到“不满”。

您将必须小心如何表示您的“高级”或“附加”内容。请记住,到目前为止,客户一直在获得应用程序的免费更新。取决于您的执行和您的目标市场,客户肯定会产生强烈反对。

事实上,如果您做广告:“我不收取额外内容的费用”,它可能会促进您的销售。通过向客户保证 1.99 美元等于 1.99 美元,我可以看到这是吸引客户的新趋势。

因此,除了客户感知之外,您还必须维护后端基础架构以保存客户记录以进行恢复。我意识到开放式利润的前景似乎很诱人,但在为您的应用程序实施之前还有很多事情需要考虑。

于 2009-06-30T08:45:54.417 回答
1

我围绕 StoreKit 框架做了一个很好的包装。 包装器可在此处获得

于 2009-10-21T02:17:17.927 回答
0

请仔细阅读文档,并执行所有必要的操作以在辅助设备上重新加载数据。

请记住,消耗品(不必支持在其他设备上免费重新购买)和非消耗品(您在哪里,听起来就像您拥有的一样)之间存在差异。

此外,我听到的最大提示是在测试时,请在手机上注销您自己的 iTunes 帐户,然后登录您用于测试的帐户。

于 2009-06-25T15:48:42.987 回答