3.3.7
0,59,8
Android
lorsque je demande un achat, je valide le reçu sur mon serveur, si la validation a échoué, je veux pouvoir annuler manuellement l'achat, au lieu de la fonction purchaseUpdatedListener déclenchée à chaque fois, si vous n'appelez pas acquitter ou consommer.
lorsque je ne termine pas l'achat, je ne peux pas annuler l'achat en attente. Sur Android, je dois attendre qu'il soit annulé automatiquement.
Appareil réel
Faites un achat et n'appelez pas pour accuser réception de l'achat ou de la consommation.
Même en cas d'échec, vous devez toujours appeler acknowledgePurchase
et consumePurchase
pour la transaction terminée. Vous ne faites pas de logique comme ne pas donner de récompense sur votre propre base de données. De plus, vous devez consmePurchase
pour qu'il ne reste pas dans votre application.
@hyochan si je fais cela, le paiement sera approuvé et le compte utilisateur sera débité sans être récompensé.
@tmjordan Oh, je vois ce que tu voulais dire. Et si vous continuez la logique en donnant une récompense alors?
@hyochan lorsqu'un utilisateur achète un produit, le reçu donné est envoyé aux serveurs Google afin de valider le reçu et d'obtenir le statut de l'achat (si le paiement a été approuvé, est en attente ou annulé).
Disons que j'ai une erreur pendant le processus de validation ne venant pas du serveur Google (mon backend par exemple), donc je ne peux pas valider le reçu et je veux annuler l'achat manuellement au lieu d'attendre qu'il soit annulé par Google ( pendant ce temps, je ne peux pas faire un autre achat) si je n'appelle pas un achat avec connaissance ou un achat de consommation.
Je ne sais pas si c'est possible, c'est peut-être comme ça que le processus d'achat fonctionne sur Google.
Ce serait bien si nous pouvions annuler manuellement un achat qui n'a pas encore été reconnu ou consommé. Dans ce scénario, l'utilisateur sera remboursé si le paiement a été approuvé.
Au lieu d'avoir le même achat déclenché à chaque fois jusqu'à ce qu'il soit annulé par Google.
@tmjordan Merci pour votre bon point de vue. Cela semble très raisonnable, mais je ne suis pas sûr que les achats de pending
soient réellement facturés. Je pense que les achats pending
ne devraient même pas être facturés lorsque acknowledged
et plutôt ceux-ci devraient être supprimés. J'espère que nous pourrons passer plus de détails sur toute autre expérience.
@hyochan , Existe-t-il une fonctionnalité comme celle sur iOS, afin d'annuler un achat qui n'a pas été effectué en appelant finishTransactionIOS
puis en supprimant cet achat de l'historique des achats. Je ne sais pas s'il existe un autre moyen de vérifier si un abonnement est toujours actif, mais ce que je fais maintenant, c'est de vérifier la date d'expiration de la dernière transaction dans l'historique des reçus. Donc, si un achat n'est pas terminé, je ne souhaite pas qu'il soit enregistré dans l'historique des achats. Malheureusement pour le moment, c'est exactement ce qui se passe. Et contrairement à Android, l'achat incomplet ne sera pas annulé après un certain temps et il ne cessera jamais d'être déclenché par le purchaseUpdateListener
.
J'ai donc le même problème sur iOS et Android, je dois annuler un achat qui n'est pas terminé. Et plus précisément sur iOS, ne pas enregistrer cet achat dans l'historique, sauf s'il existe un moyen plus efficace de vérifier la validité d'un abonnement.
Je souhaite gérer un scénario similaire
purchaseUpdateListener
est déclenché plusieurs fois jusqu'à ce que finishTransactionIOS soit appelé, mais ce n'est pas le résultat souhaitable. La transaction doit être annulée à ce stade.Existe-t-il une méthode pour annuler la transaction.
Commentaire le plus utile
@hyochan , Existe-t-il une fonctionnalité comme celle sur iOS, afin d'annuler un achat qui n'a pas été effectué en appelant
finishTransactionIOS
puis en supprimant cet achat de l'historique des achats. Je ne sais pas s'il existe un autre moyen de vérifier si un abonnement est toujours actif, mais ce que je fais maintenant, c'est de vérifier la date d'expiration de la dernière transaction dans l'historique des reçus. Donc, si un achat n'est pas terminé, je ne souhaite pas qu'il soit enregistré dans l'historique des achats. Malheureusement pour le moment, c'est exactement ce qui se passe. Et contrairement à Android, l'achat incomplet ne sera pas annulé après un certain temps et il ne cessera jamais d'être déclenché par lepurchaseUpdateListener
.J'ai donc le même problème sur iOS et Android, je dois annuler un achat qui n'est pas terminé. Et plus précisément sur iOS, ne pas enregistrer cet achat dans l'historique, sauf s'il existe un moyen plus efficace de vérifier la validité d'un abonnement.