Bug #78763
lingo: transaction abandonnée mais statut "en cours" qui va rester
0%
Description
Un paiement démarré mais l'usager arrête en chemin,
si je n'allais pas au bout sur le site de paiement mais que je revenais au début,
ensuite retourne cliquer pour déclencer le paiement, selon la régie ça va arriver dans
if ( regie.payment_backend.can_poll_backend() and self.poll_for_newly_paid_or_still_running_transactions(regie, items, remote_items) ): messages.error(request, _('Some items are already paid or are being paid.')) return HttpResponseRedirect(next_url)
et l'usager sera redirigé. (et en passant ne verra pas le message, mais ça lui ferait de toute façon une belle jambe).
Là d'une manière ou d'une autre aussi il peut y avoir un retour de la plateforme de paiement, et la transaction va gagner un end_date :
{'_state': <django.db.models.base.ModelState at 0x7f68b2a13e80>, 'id': 208, 'regie_id': 3, 'remote_items': [], 'to_be_paid_remote_items': None, 'start_date': datetime.datetime(2023, 6, 20, 11, 36, 2, 495055, tzinfo=<UTC>), 'end_date': datetime.datetime(2023, 6, 20, 11, 36, 13, 969787, tzinfo=<UTC>), 'bank_data': {'mel': 'xxx', 'exer': '2023', 'idOp': '6b33cb98-4826-4291-8de0-056f4059b454', 'objet': 'test paiement en ligne n119 10', 'numcli': '066651', 'refdet': '202306201136020046742619', 'saisie': 'T', 'montant': '1250', 'numauto': None, 'dattrans': None, 'heurtrans': None, 'resultrans': 'A'}, 'order_id': '6b33cb98-4826-4291-8de0-056f4059b454', 'bank_transaction_id': '202306201136020046742619 6b33cb98-4826-4291-8de0-056f4059b454', 'bank_transaction_date': None, 'user_id': 5, 'status': 6, 'amount': Decimal('12.50')}
mais là on est encore en "WAITING", peut-être parce que c'est payfip-ws :
# convert CANCELLED to WAITING during the first 20 minutes if eopayment_response.result == CANCELLED and delta < threshold: eopayment_response.result = WAITING eopayment_response.bank_status = ( '%s - still waiting as idop is still active' % eopayment_response.bank_status )
et ça semble ensuite pouvoir rester ainsi et jamais expirer,
to_expire = Transaction.objects.filter( start_date__lt=now - datetime.timedelta(hours=1), end_date__isnull=True )
Il y a un problème quelque part.
History
Updated by Frédéric Péters (de retour le 30/1) over 1 year ago
Ou pas et ça marche correctement, parce que finalement dans le ticket lié,
le lien d'un test précédent est à nouveau opérationnel et renvoie bien vers payfip.
Updated by Benjamin Dauvergne 7 months ago
- Subject changed from transaction abandonnée mais statut "en cours" qui va rester to lingo: transaction abandonnée mais statut "en cours" qui va rester
Updated by Benjamin Dauvergne 7 months ago
Je retiens de la description de ce ticket qu'il faudrait quelque soit l'erreur ou pas passer par la vue de statut des paiements, elle affichera l'erreur et temporisera le retour vers là d'où on vient.
Et il faut généraliser le comportement qui est fait en cas de souci sur le montant:
get_payment_status_view(next_url=next_url if remote_items else items[0].source_url)
Updated by Robot Gitea 7 months ago
- Status changed from Nouveau to En cours
Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/combo/pulls/306
- Titre : WIP: factorisation des redirections pendant les paiements (avant/après paiement) (#78763)
- Modifications : https://git.entrouvert.org/entrouvert/combo/pulls/306/files
Updated by Robot Gitea about 2 months ago
- Status changed from Solution proposée to En cours
Benjamin Dauvergne (bdauvergne) a commencé à travailler sur une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/combo/pulls/306
- Titre : WIP: factorisation des redirections pendant les paiements (avant/après paiement) (#78763)
- Modifications : https://git.entrouvert.org/entrouvert/combo/pulls/306/files