Project

General

Profile

Bug #78763

lingo: transaction abandonnée mais statut "en cours" qui va rester

Added by Frédéric Péters (de retour le 30/1) over 1 year ago. Updated about 2 months ago.

Status:
En cours
Priority:
Normal
Target version:
-
Start date:
20 June 2023
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No
Tags:

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

#2

Updated by Frédéric Péters (de retour le 30/1) over 1 year ago

  • Tags set to paiement
#3

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.

#4

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
#5

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)

#6

Updated by Benjamin Dauvergne 7 months ago

  • Assignee set to Benjamin Dauvergne
#7

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 :

#8

Updated by Robot Gitea 6 months ago

  • Status changed from En cours to Solution proposée
#9

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 :

Also available in: Atom PDF