SKMutablePayment属性:applicationUsername

Ale*_*nga 7 xcode in-app-purchase ios

我正在我的应用程序中实施In App Purchases,我正在使用非消耗性产品.我在我的应用程序中有用户登录,并防止使用applicationUsername属性的不正常活动苹果sugest ,所以我可以发送用户的用户名付款.

一切正常,我可以设置payment.applicationUsername属性,我可以在SKPaymentTransactionStatePurchased状态购买完成后将其恢复.

问题是,当我尝试使用restoreCompletedTransactionsWithApplicationUsername:方法恢复我的事务时,applicationUsername属性返回NULL.

你能帮我吗?

Ale*_*nga 13

经过大量研究后我发现我们不能将applicationUsername用于此目的.

对于restoreCompletedTransaction,您可以使用 transaction.originalTransaction.transactionIdentifier属性(在新购买时它是等效的 - transaction.transactionIdentifier).

这是与恢复记录中找到的购买本身和iTunes帐户关联的唯一标识符.

1.如何使用它:

将服务器上的原始transactionIdentifier记录为与用户A的原始购买相关联.

2.检测不规则活动

如果其他用户尝试恢复其购买检查,以确保尚未在其他userName下使用transactionIdentifier.

如果您的所有用户都没有使用此transactionIdentifier,那么还原成功.如果已经从另一个用户使用了transactionIdentifier,那么解释用户无法进行还原的原因.

这基本上等同于使用'transaction.transactionIdentifier'作为'applicationUsername'.

  • 嗨亚历克斯只是想知道更多关于这个问题,因为我将用用户帐户处理应用内购买.通过"applicationUsername属性返回NULL",你的意思是在`paymentQueue:updatedTransactions:`中返回的`SKPayment`中的applicationUsername?你是说"我们不能将applicationUsername用于此目的"是什么意思?您是指根据applicationUsername恢复购买的内容还是使用它来检查此特定用户是否在本地购买了内容?谢谢! (2认同)
  • 请详细说明“经过大量研究,我发现我们无法为此目的使用applicationUsername。” (2认同)