Propriété SKMutablePayment: applicationUsername

J'applique des achats In App dans mon application et j'utilise des produits non consommables. J'ai une connection d'user dans mon application et pour empêcher des sugests d'activité irrégulière d'employer la propriété applicationUsername , ainsi je peux envoyer avec le paiement le nom d'user de l'user.

Tout fonctionne bien, je peux définir la propriété payment.applicationUsername et je peux la récupérer après que l'achat est terminé dans l'état SKPaymentTransactionStatePurchased .

Le problème est que, lorsque j'essaie de restaurer mes transactions avec la méthode restoreCompletedTransactionsWithApplicationUsername : la propriété applicationUsername renvoie NULL.

Pouvez-vous m'aider s'il vous plaît?

Après beaucoup de searchs, j'ai trouvé que nous ne pouvons pas utiliser applicationUsername à cette fin.

Pour un restoreCompletedTransaction vous pouvez utiliser la propriété transaction.originalTransaction.transactionIdentifier (et son équivalent sous un nouvel achat – transaction.transactionIdentifier).

C'est un identifiant unique associé à l'achat lui-même et au count iTunes qui se trouve dans l'logging de restauration.

1. Comment l'utiliser:

Enregistrez l'original transactionIdentifier sur votre server comme étant associé à l'achat original par l'user A.

2. Détecter l'activité irrégulière

Si un autre user essaie de restaurer sa vérification d'achat, assurez-vous que l'identifiant transactionIdentifier n'a pas déjà été utilisé sous un nom d'user différent.

Si ce transactionIdentifier n'a pas été utilisé par aucun de vos users, effectuez votre restauration avec succès. Si le transactionIdentifier a déjà été utilisé par un autre user que d'expliquer à l'user pourquoi vous ne pouvez pas effectuer la restauration.

Cela équivaut essentiellement à utiliser 'transaction.transactionIdentifier' comme 'applicationUsername'.