nursit / bank

module de paiement bancaire multi prestataires & stockage des transactions pour SPIP
20 stars 22 forks source link

Paybox : remplir les champs `MobilePhone` et `CountryCodeMobilePhone` de la variable PBX_BILLING #128

Open jmoupah opened 5 days ago

jmoupah commented 5 days ago

Salut,

3DSV2 demande désormais d'envoyer les infos numéro de téléphone et indicatif pays (voir ci-dessous) et ce, avant le 2 octobre ! J'imagine que, comme pour l'adresse, ça ne peut pas être vide

Les infos demandées :

https://www.ca-moncommerce.com/espace-client-mon-commerce/up2pay-e-transactions/ma-documentation/manuel-dintegration-focus-3ds-v2/principes-generaux/#integration-3dsv2-developpeur-webmaster

Mail envoyé par le Crédit Agricole mi septembre :

Bonjour,

Dans le cadre de la lutte contre la fraude et le renforcement du protocole 3DSV2 qui vise à renforcer la sécurité des paiements en ligne, une mise à jour de votre module de paiement est nécessaire. Si votre module de paiement n’est pas à jour, votre solution Up2pay e-Transactions ne sera plus en mesure d’accepter les paiements à partir du 2/10/2024.

En quoi consiste cette mise à jour?

Vous devez compléter la variable PBX_BILLING dans votre script en y ajoutant la donnée du numéro de téléphone et de l’indicatif pays. Pour plus d’informations, retrouvez la documentation technique accessible ici

Cerdic commented 5 days ago

Ah ben ils s'emmerdent pas les gars...

jmoupah commented 5 days ago

Ah ben ils s'emmerdent pas les gars...

C'est bien ce que je me suis dis, sur les données personnelles ET sur le délai...

rastapopougros commented 5 days ago

Tain c'est abusé, autant pour les infos perso que pour l'utilisation des gens : donc là avec ça, c'est vraiment impossible de payer en ligne sans avoir un téléphone portable ? Ça oblige à l'achat et à l'abonnement d'un numéro juste pour accéder à du paiement, je sais même pas si c'est légal d'obliger à ça sans deuxième solution. Par ex moi quand je paye en ligne et que ça va sur la sécu 3D de ma banque en deuxième temps, je peux encore utiliser un boitier bleu qui me donne un code à taper pour valider mon paiement, SANS téléphone mobile.

Et est-ce que c'est vraiment un ajout global de la norme 3DS ou bien c'est spécifiquement ta banque Crédit Agricole qui demande ça en plus ?

Cerdic commented 5 days ago

C'est pas prévu dans le pipeline des infos facturations https://github.com/nursit/bank/blob/master/inc/bank.php#L500 et pas renseigné par le plugin commandes non plus donc https://git.spip.net/spip-contrib-extensions/commandes/blob/master/commandes_pipelines.php#L204

Autant dire qu'il faut revoir toute la chaine de paiement pour eux. @rastapopougros c'est spécifique Crédit Agricole / Paybox et je soupçonne que ce soit autant pour des raisons marketing que sécurité...

jmoupah commented 5 days ago

Merci pour tes retours.

c'est spécifique Crédit Agricole / Paybox et je soupçonne que ce soit autant pour des raisons marketing que sécurité...

Ça veut dire qu'aucune autre banque/plateforme ne l'exige ? Et donc, en creux, que ce n'est pas une exigence 3DSV2 ? Je n'ai rien trouvé sur ce changement mais je ne sais pas bien où chercher donc bon...

jmoupah commented 4 days ago

Après échange avec le support up2pay / Crédit Agricole :

C'est Visa qui demande désormais ces 2 infos. Si elles ne sont pas fournies, le paiement sera en échec. Si le numéro ne correspond pas à celui du propriétaire de la carte, VISA décidera s'il lance le challenge 3ds ou non. Si le numéro correspond, il y a plus de chance qu'il ne lance pas le 3ds challenge (dépend des montants). Comme pour le reste, on peut donc envoyer des infos par défaut, ça déclenchera juste plus souvent le challenge 3ds.

Les infos PBX_BILLING étaient demandées depuis longtemps par VISA (même avant le changement de septembre 2023) mais paybox les envoyait à notre place si elles n'étaient pas présentes. Il ont arrêté de le faire car ils risquaient de se faire blacklister, d'où la demande d'ajout de l'adresse en sept 23 et la demande du numéro de tel aujourd'hui.

D'après eux, tous les services qui passent par des cartes sont concernés, pas seulement le Crédit Agricole.

Le mail envoyé suite à mon appel :

Bonjour,

Faisant suite à notre échange et dans le cadre de la lutte contre la fraude et le renforcement du protocole 3DSV2(1) qui vise à renforcer la sécurité des paiements en ligne, une mise à jour de votre module de paiement est nécessaire. Si votre module de paiement n’est pas à jour, votre solution Up2pay e-Transactions ne sera plus en mesure d’accepter les paiements à partir du 2/10/2024.

En quoi consiste cette mise à jour?

Visa exige de nouveaux champs obligatoires pour les transactions en 3DS à compter du 12 août 2024 (applicable le 2 octobre 2024 chez Vérifone).

Pour satisfaire aux exigences Visa, les marchands doivent valoriser les champs suivants dans les demandes d’initialisation de paiement et les demandes d’authentification.

La variable PBX_BILLING doit contenir désormais :

+330612345678 en RemoteMPI : NumTelephone=+33605040302 Si l’utilisateur ne souhaite pas communiquer son numéro de téléphone, il sera nécessaire d’imposer une valeur par défaut pour garantir le respect des exigences dans le flux monétique. En effet, si ces champs sont vides ou ne correspondent pas aux valeurs attendues, aucune transaction ne pourra être réalisée (qu’elle soit acceptée ou refusée), et l’utilisateur recevra un message d’erreur. Le système exige un numéro de téléphone mobile, et la vérification de celui-ci est effectuée par la banque du porteur. L’objectif est de simplifier le parcours client lors d’un achat et d’éviter l’authentification forte manuelle. Si la banque estime que les informations fournies ne correspondent pas à ses données, elle exigera alors une authentification forte manuelle de la part du client. Vous trouverez ci-dessous la mise à jour concernant les nouvelles exigences de VISA relatives à la norme 3DSv2. Notre prestataire technique peut récupérer la majorité des nouvelles informations demandées, mais pas le numéro de téléphone mobile. [Documentation VISA](https://support.visaacceptance.com/knowledgebase/knowledgearticle/?code=KA-04583) Le script simplifié v3 permet l’ajout de ces deux nouvelles sous-variables : [Script Simplifié v3 – PHP](https://wikietransactions.ovh/wiki/documents/Formulaires/formulaire_simplifie_v3.zip) Vous devez compléter la variable PBX_BILLING dans votre script en y ajoutant la donnée du numéro de téléphone et de l’indicatif pays. Pour plus d’informations, retrouvez la documentation technique accessible[ ici](http://click.ca-toulouse31.fr/f/a/Gz8iKpYreQ1JQBYhoULXGg~~/AAAAAQA~/RgRoeeQWP0SCaHR0cHM6Ly93d3cuY2EtbW9uY29tbWVyY2UuY29tL2VzcGFjZS1jbGllbnQtbW9uLWNvbW1lcmNlL3VwMnBheS1lLXRyYW5zYWN0aW9ucy9tYS1kb2N1bWVudGF0aW9uL21hbnVlbC1kaW50ZWdyYXRpb24tZm9jdXMtM2RzLXYyL1cIY3JlZGl0YWdCCmaWFl-XZnghMJpSG3NhdmV1cnNldGhhcm1vbmllQG9yYW5nZS5mclgEAAAAJw~~). **Comment dois-je faire ?**> Vous utilisez un site internet de type : Prestashop, Wordpress ou Magento(2) : installez le module mis à jour disponible sur notre site en cliquant[ ici.](http://click.ca-toulouse31.fr/f/a/oOJg-YXlbI4tGCXDPElKkQ~~/AAAAAQA~/RgRoeeQWP0RoaHR0cHM6Ly93d3cuY2EtbW9uY29tbWVyY2UuY29tL2VzcGFjZS1jbGllbnQtbW9uLWNvbW1lcmNlL3VwMnBheS1lLXRyYW5zYWN0aW9ucy90ZWxlY2hhcmdlci1tZXMtbW9kdWxlcy9XCGNyZWRpdGFnQgpmlhZfl2Z4ITCaUhtzYXZldXJzZXRoYXJtb25pZUBvcmFuZ2UuZnJYBAAAACc~) Vous utilisez un site internet réalisé par un CMS(3) ou autre logiciel, rapprochez-vous de votre développeur et donnez-lui accès au manuel d’accompagnement disponible sur notre site en cliquant[ ici](http://click.ca-toulouse31.fr/f/a/mSx4TqCUk0BIblgTV-028Q~~/AAAAAQA~/RgRoeeQWP0S9aHR0cHM6Ly93d3cuY2EtbW9uY29tbWVyY2UuY29tL2VzcGFjZS1jbGllbnQtbW9uLWNvbW1lcmNlL3VwMnBheS1lLXRyYW5zYWN0aW9ucy9tYS1kb2N1bWVudGF0aW9uL21hbnVlbC1kaW50ZWdyYXRpb24tZm9jdXMtM2RzLXYyL3ByaW5jaXBlcy1nZW5lcmF1eC8jaW50ZWdyYXRpb24tM2RzdjItZGV2ZWxvcHBldXItd2VibWFzdGVyVwhjcmVkaXRhZ0IKZpYWX5dmeCEwmlIbc2F2ZXVyc2V0aGFybW9uaWVAb3JhbmdlLmZyWAQAAAAn). Vous pourrez également trouver un exemple de script PHP en cliquant[ ici](http://click.ca-toulouse31.fr/f/a/CQhWkwWdv6YEs9RFAp1aWg~~/AAAAAQA~/RgRoeeQWP0RsaHR0cHM6Ly93d3cuY2EtbW9uY29tbWVyY2UuY29tL2VzcGFjZS1jbGllbnQtbW9uLWNvbW1lcmNlL3VwMnBheS1lLXRyYW5zYWN0aW9ucy90ZWxlY2hhcmdlci1tZXMtbW9kdWxlcy9waHAvVwhjcmVkaXRhZ0IKZpYWX5dmeCEwmlIbc2F2ZXVyc2V0aGFybW9uaWVAb3JhbmdlLmZyWAQAAAAn). Si vous développez votre site, il vous faudra modifier le code (ou bien demander à votre développeur de le faire).
Cerdic commented 4 days ago

"c'est pas ma faute mossieur, c'est eux qui demandent". Bref, on relèvera pas la stupidité de remplir absolument même si c'est un numéro de téléphone par défaut, ni que bizarrement Stripe (encore une fois...) se débrouille très bien pour faire des paiements sécurisés sans demander le numéro de téléphone

Capture d’écran 2024-09-19 à 17 19 04

Qu'ils rendent le renseignement d'un numéro de mobile possible pour réduire le taux d'appel à 3DS je comprendrai très bien, mais qu'ils déclarent ce truc obligatoire sinon ça refusera les paiements tout en disant "mettez un numéro de telephone par défaut si vous l'avez pas" est d'une absurdité sans nom.

Cerdic commented 4 days ago

Pour la doc technique cf https://www.paybox.com/wp-content/uploads/2024/08/ManuelIntegrationPaybox_DSP2-FR%20v3.0.pdf

C'est donc documenté depuis la doc du 27/02/2024

Capture d’écran 2024-09-19 à 17 29 26

Je suppose donc qu'il faut ajouter dans la configuration de ce module de paiement (ou dans la configuration générale de banque) un champ "numéro de téléphone mobile par défaut" que les webmestre rempliront avec leur propre numéro (ou celui de la boutique ou je sais pas quoi), qui sera envoyé sans aucun rapport avec les cartes de paiement utilisées, déclenchant a coup sur le 3DS parce que ne matchant pas la carte dans la database de VISA, là ou en absence de carte on aurait sans doute pas déclenché le 3DS.

Mon conseil c'est d'arrêter d'utiliser Verifone (ex OnePoint ex PayBox) qui est sur la pente descendante, leur plateforme technique commençant vraiment à accuser son age maintenant.

jmoupah commented 20 hours ago

Est-ce que, dans l'attente d'une solution définitive propre (màj du plugin ou changement de presta), il est possible de surcharger le fichier presta/paybox/call/request.php en y ajoutant L113 les infos en dur ?

."<CountryCodeMobilePhone>+33</CountryCodeMobilePhone>"
."<MobilePhone>0612345678</MobilePhone>"

Je suis bien conscient du caractère peu perenne de cette surcharge mais vu les délais...

Cerdic commented 5 hours ago

D'un point de vue du code ça devrait marcher, d'un point de vue du presta tu nous diras si les paiements passent avec ce numéro bidon tiré de la doc ! (si oui, je peux commit le patch à peu de frais). M'est avis qu'à un moment il vont se rendre compte que des gens envoient ce numéro de téléphone bidon et vont le refuser aussi :p
Cela dit, tu pourras aussi tester en laissant les champs vides (selon mon expérience, c'est pas parce qu'ils ont dit que ça passerait pas avec des champs vides que c'est vrai).

En fonction de ton retour d'expérience on pourra voir comment on résout cette affaire...

jmoupah commented 4 hours ago

Je pensais remplacer le numéro de la doc par le numéro du portable de l'asso, pour que ça soit plus discret :)

Je me dis que le plus simple, c'est la solution que tu proposes : 2 champs à remplir dans la config du module ou du plugin, tant que ça fonctionne.