-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Payzen : des paiements récurents SEPA refusés finissent tous en "OK" dans Bank #109
Comments
Voici la documentation du cycle de vie d'un paiement récurrent chez eux : https://payzen.io/fr-FR/form-payment/subscription-token/cycle-de-vie-d-un-paiement-recurrent.html Et là pour un paiement récurrent avec autorisation anticipée : https://payzen.io/fr-FR/form-payment/subscription-token/cycle-de-vie-d-un-paiement-recurrent-avec-autorisation-anticipee.html Je ne suis pas sûr de comprendre quand/comment ça change de mode. Il est possible qu'en SEPA ce soit toujours automatiquement en mode "autorisation anticipée" (la transaction étant créée 15j avant la date de remise voulue comme indiqué plus haut). Dans ce cas, ça ne fonctionne pas pareil, et il faut le prendre en compte, une transaction "autorisée" chez eux, n'indique absolument pas encore que le paiement s'est bien passée, mais seulement que ça va bien être envoyé à la banque finale du client. Mais ensuite cette banque finale peut parfaitement refuser le paiement (pour tous les refus précédemment capturés). Je ne sais pas du tout comment on peut détecter que c'est plus "en attente de remise finale", et si c'est vraiment ok ou pas… |
J'ai l'impression que c'est ce cheminement de Bank qui ne recouvre pas l'ensemble de ce qui se passe chez eux : là ça regarde si c'est pas AUTHORISED https://github.com/nursit/bank/blob/master/presta/payzen/inc/payzen.php#L503 Et si ya bien AUTHORISED au final ya pas de Alors que non, comme dit dans la doc, le AUTHORISED signifie seulement que la transaction sera présentée à la banque finale et donc explicitement "en attente" :
Par contre je ne vois aucune mention nulle part de comment on sait que ça sort de cet état "En attente" pour être vraiment soit accepté soit refusé par le banque finale. Ce qui est quand même super facheux vu que c'est bien ça qui nous intéresse pour savoir si la transaction est vraiment bien payée ou pas et si ça doit faire une facture en cascade ou pas. |
Tout à fait, dans le cas des SEPA avec Payzen on a seulement une notification du lancement de la demande de paiement, avec donc une transaction en Donc j'ai pris le parti de considérer qu'il était payé, ce qui permet de maintenir le service, mais cela suppose un contrôle manuel dans l'interface de Payzen, chaque mois, des impayé, et une résiliation manuelle des abonnements correspondants. C'est ce que fait le seul client qu'on connait qui utilise les SEPA avec Payzen, et c'est bien lourd administrativement. Il semblerait qu'il serait possible de post-checker le status d'une transaction via l'API REST de Payzen https://payzen.io/fr-FR/rest/V4.0/api/playground/Transaction/Get mais l'API REST est une option payante supplémentaire, donc on pas implémenté. Mais ce pourrait être une option de config, et si on a la feature on pourrait gérer un workflow de paiement plus adapté. Cela dit il y a quand même soucis, car avec les SEPA, je crois qu'on a l'info de non paiement plusieurs jours (7 ? 14 ?) après la date du paiement supposé. Donc si on veut reconduire l'abonnement on est obligé de supposer que le paiement a bien eu lieu, ou en tout cas de ne pas résilier les abonnements avec un paiement en attente si on choisit de marquer le paiement "en attente" lors de la notification initiale, et de pooler ensuite chaque jour l'API dessus pour confirmer son statut final quand il est connu... |
Arf c'est le bazar effectivement… merci pour le détail. Du coup obligé de vérifier que manuellement avec Payzen pour l'instant. Question intéressée : maintenant que Stripe est implémenté avec le récurrent (au moins pour les CB, pas SEPA), est-ce que pour ceux là on a un truc plus précis où on a bien l'info à temps quand le truc est refusé, et que SPIP reçoit pas une transaction ok ? Il est sûrement temps de changer de presta… |
on a pas encore eu l'occasion de tester le paiement par SEPA avec Stripe... |
Mais ils sont prêts à passer à la carte bleue plutôt :) Et là ça marche mieux ? |
Contexte : des commandes de paiements récurrents (5 euros par mois par ex) dans Payzen en SEPA.
Ces paiements sont programmés (créés) 15 jours plus tôt à priori, par ex le 30 mars pour le 13 avril. Si pour diverses raisons le paiement récurrent est "impayé" et donc en "rejet" (et dans l'interface je vois plusieurs raisons possibles : compte cloturé, refus du destinataire, coordonnées incorrectes, etc), et bien… pourtant dans Bank ça reçoit comme si tout avait bien été payé comme il faut ! Et du coup en plus ça génère une facture (fausse puisque argent jamais reçu) par le plugin Facture.
Dans l'interface de Payzen j'en vois de multiples récurrents comme ça qui tous les mois sont en fait en erreur, mais dans le SPIP les admins l'ont jamais vu puisque tout parait ok.
Je ne sais pas ce qu'il faut chercher comme info pour aider à débuguer.
The text was updated successfully, but these errors were encountered: