SKMutablePayment属性:applicationUsername

时间:2014-08-25 07:23:46

标签: ios xcode in-app-purchase

我正在我的应用中实施In App Purchases,而我正在使用非耗材产品。 我在我的应用程序中有用户登录,并防止使用 applicationUsername 属性的不正常活动,因此我可以将付款用户的用户名发送给我。

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

问题在于,当我尝试使用 restoreCompletedTransactionsWithApplicationUsername :方法 还原 我的事务时,applicationUsername属性返回NULL。

你能帮我吗?

1 个答案:

答案 0 :(得分:13)

经过大量研究后发现我们无法将 applicationUsername 用于此目的。

对于restoreCompletedTransaction,您可以使用 transaction.originalTransaction.transactionIdentifier 属性 (并且它在新购买下是等价的 - transaction.transactionIdentifier)。

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

<强> 1。如何使用它:

  

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

<强> 2。检测不规则活动

  

如果其他用户尝试恢复购买检查以确定   transactionIdentifier尚未在不同的情况下使用   用户名。

如果您的所有用户均未使用此transactionIdentifier,则表示还原成功。如果transactionIdentifier已经被其他用户使用,那么解释用户无法进行恢复的原因。

  

这基本上等同于使用   &#39; transaction.transactionIdentifier&#39;作为&#39; applicationUsername&#39;。