L'ID d'achat in_app_purchase ne reste pas le même

Nov 20 2020

J'utilise le package in_app_purchase. J'ai remarqué que les PurchaseDetails.purchaseIDachats passés changent car ils prennent le transactionIdentifier au lieu de vérifier une transaction d'origine. Lorsqu'une transaction est restaurée, l'ID change.

La transaction d'achat via l'application Apple_id d'un achat change parfois

Il y a t-il quelqu'un d'autre avec le même problème?

Il s'agit de leur code pour instancier les détails du produit à partir d'une transaction

  PurchaseDetails.fromSKTransaction(
      SKPaymentTransactionWrapper transaction, String base64EncodedReceipt)
      : this.purchaseID = transaction.transactionIdentifier,
        this.productID = transaction.payment.productIdentifier,
        this.verificationData = PurchaseVerificationData(
            localVerificationData: base64EncodedReceipt,
            serverVerificationData: base64EncodedReceipt,
            source: IAPSource.AppStore),
        this.transactionDate = transaction.transactionTimeStamp != null
            ? (transaction.transactionTimeStamp * 1000).toInt().toString()
            : null,
        this.skPaymentTransaction = transaction,
        this.billingClientPurchase = null,
        _platform = _kPlatformIOS {
    status = SKTransactionStatusConverter()
        .toPurchaseStatus(transaction.transactionState);
    if (status == PurchaseStatus.error) {
      error = IAPError(
        source: IAPSource.AppStore,
        code: kPurchaseErrorCode,
        message: transaction.error.domain,
        details: transaction.error.userInfo,
      );
    }
  }

 this.purchaseID = transaction.transactionIdentifier,

Devrait vérifier si restauré et si tel est le cas, prendre l'identifiant de la transaction d'origine.

Je suis sur la dernière version in_app_purchase: ^0.3.4+16et je papillonne1.20.3 stable channel

Chaque fois que je redémarre mon application et que j'appelle _connection.queryPastPurchases, l'ID d'achat est différent de l'achat trouvé

Réponses

MikeOttink Nov 29 2020 at 21:41

L'utilisation de l'identifiant de transaction d'origine semble très bien fonctionner