[RESOLU] intégrer un bouton de paiement HelloAsso - quelqu'un sait faire ?

Eléphanteau du PHP | 36 Messages

18 déc. 2024, 15:36

Bonjour à toutes et tous,

Il paraît que c'est simple et rapide :roll:

je suis développeuse php, et j'ai créé un espace de gestion pour une entreprise, qui vend des formations.
L'espace fonctionne, facturation etc. Jusqu'à présent ils géraient les paiements par virements ou chèques.
Ils me demandent d'intégrer un système de paiement en ligne, et souhaitent utiliser HelloAsso.
... Et je ne sais pas comment m'y prendre.
J'ai lu les docs pendant plus de trois heures, et c'est confus, il n'y a pas d'exemples concrets.

En php, dans ma page, mes variables sont prêtes (prix, id client, etc.)
Il me manque "juste" à mettre un bouton qui transmet ces valeurs à l'Api.

Si j'ai bien compris il faut que je demande un "access_token" mais je ne sais pas comment faire.
J'essaye de comprendre la doc ici : https://dev.helloasso.com/docs/getting- ... cess_token
mais je ne trouve pas la page "obtenir un AccessToken" de leur doc dont ils parlent dans la vidéo, et l'outil "postman" qu'ils recommandent, l'appel API répond "405 Method Not Allowed".

j'ai aussi ce lien : https://dev.helloasso.com/docs/int%C3%A ... votre-site

mais je ne sais pas où mettre l'exemple de code Json qu'ils donnent (par contre je vois bien comment je pourrai mettre mes variables dedans)

Bref, il me manque un, ou plusieurs maillons...

En cherchant sur le web j'ai trouvé une plateforme "SiteW" qui propose un module HelloAsso, mais en creusant j'ai l'impression qu'ils proposent de créer un site complet...

Est-ce qu'il existe un module que je peux installer ? ou, si vous avez déjà installé un bouton de paiement HelloAsso, vous pourriez m'aider un peu ?

Merci beaucoup...

Mammouth du PHP | 2703 Messages

18 déc. 2024, 19:22

il faut utiliser https://www.php.net/manual/fr/book.curl.php pour appeler l'url avec la bonne méthode (post).

Avatar du membre
Mammouth du PHP | 1564 Messages

18 déc. 2024, 19:40

3 heures, c'est rien, une semaine c'est mieux :mrgreen:

Salut, voilà le lien pour obtenir un token access : https://dev.helloasso.com/docs/obtenir-une-cl%C3%A9-api

Et l'URL pour faire des tests : https://dev.helloasso.com/docs/environn ... ndbox-test

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 12:11

Bonjour or 1, Two 3D

et merci de vos réponses.

Je suis allée voir des tutos Curl et il semble qu'il faille installer Curl sur mon Windows et passer par une ligne de commande ..? apparement Curl n'est pas installé dans mon windows 7, et pour l'instant les archives que j'ai téléchargé n'ont pas de .exe.
Est-ce que je dois continuer dans cette direction ?
Est-ce obligé d'avoir un serveur local pour développer mon code/bouton de paiement ?
Je n'ai pas la vision des étapes qui me permettront d'obtenir mon bouton de paiement, j'ai l'impression que plus je creuse, plus je m'éloigne que ma logique qui est de "faire passer mes variables dans le bouton de paiement juste en dessous".

Two 3d, oui, 3 heures c'est peu, en général je compile des infos, je trouve des bouts de code, je teste, j'obtiens des résultats partiels, j'avance par paliers et je finis par y arriver. Là, je n'avais que 3 jours pour y arriver (c'est mort) - et j'avais eu l'expérience d'installer un paiement paypal que j'avais - à tâtons, installé en 1 journée, je m'attendais à faire pareil... Et plus j'ai lu les docs, plus je me suis retrouvée avec des informations disparates dont je n'ai aucune idée de comment elles s'articulent entre elles, ni même si c'est d'une - ou plusieurs méthodes dont je récupère des morceaux...
j'ai bien une clé Api, et j'ai bien aussi trouvé le lien pour faire des tests. En suivant ce fil, avec l'Api j'ai compris qu'il fallait créer un Jeton. j'ai suivi le lien vers le générateur de jeton indiqué dans la vidéo, mais contrairement à ce qui est montré dans leur tuto, j'obtiens une erreur 400, et pas de jeton. Quand bien même aurais-je réussi, je ne sais pas quoi faire d'un jeton, ni quoi tester, ou comment tester quoi que ce soit sur le lien de test...

Alors voici où j'en suis concrètement, si vous êtes toujours d'accord pour m'aider bien sûr :
J'ai récupéré le script Json d'exemple dans la doc - ça ne sera pas un souci pour moi de remplacer les données en dur par mes variables :

Code : Tout sélectionner

<!--// données JSON --> <script> { "totalAmount": 10, "initialAmount": 10, "itemName": "Fromation", "backUrl": "https://xxxxx.org/ERP/paiement_callback.php?valide=1", "errorUrl": "https://xxxxx.org/ERP/paiement_callback.php?valide=0", "returnUrl": "https://xxxxx.org/ERP/paiement_callback.php?valide=3", "containsDonation": true, "payer": { "firstName": "John", "lastName": "Doe", "email": "[email protected]", "dateOfBirth": "1986-07-06", "address": "23 rue du palmier", "city": "Paris", "zipCode": "75000", "country": "FRA", "companyName": "HelloAsso" }, "metadata": { "reference": 12345, "libelle": "Formation", "userId": 98765, } } </script>
J'ai aussi le bouton "PAYER" (je ne vous met pas tout le code, c'est de l'esthétique)

Code : Tout sélectionner

<div class="HaPay"> <a href="https://api.helloasso.com/v5/organizations/56f40e98b0b0427ca3d7fd1e426f52eb/checkout-intents"> </a> <button class="HaPayButton"> <img src="https://api.helloasso.com/v5/img/logo-ha.svg" alt="" class="HaPayButtonLogo" /> Bla bla bla ...
Je n'ai pas l'habitude de manipuler le Json, et je ne sais pas comment "appeler" ce code pour l'inclure dans un lien.
Mes questions :
1 - où mettre le Json ?
2 - comment faire en sorte que les données contenues dans le Json soient envoyées vers la page de paiement de HelloAsso quand je clique sur le bouton ?

Et, puisque j'ai compris qu'à un moment j'allais avoir besoin d'un Jeton :
3 - si j'arrive à créer un jeton, j'en fais quoi ?

Et, puisque j'ai cru comprendre que j'avais besoin de passer par Curl :
4 - si j'arrive à installer Curl, j'en fais quoi ?

J'ai contacté Hello asso mercredi, mais la personne m'a invitée à envoyer un mail à l'aide technqiue, qui ne m'a pas répondu.
Pareil sur leur forum d'aide.

Alors merci beaucoup encore ! :D

Avatar du membre
Mammouth du PHP | 1564 Messages

20 déc. 2024, 12:21

je suis développeuse php...
Est-ce obligé d'avoir un serveur local pour développer...
En tant que développeuse, tu devrais au moins connaitre WAMP, non ?

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 12:42

J'utilisais Easy php, mais comme ça plantait tout le temps j'ai fini par travailler directement sur mes serveurs, sur des sites miroir de test. ça fait 5 ans que je ne travaille plus en local.

je suis en train de téléchager le EasyPHP Devserveur, ça fera l'affaire ?

Avatar du membre
Mammouth du PHP | 1564 Messages

20 déc. 2024, 12:46

Normalement, oui. Tu aura cURL.

Mammouth du PHP | 2703 Messages

20 déc. 2024, 12:49

comme le site devra tourner sur le serveur et non en local, il faut curl sur le serveur.

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 13:06

J'ai installé et lancé mon Devserveur en local :
J'ai trouvé ce tuto en français et bien expliqué (qu'en penses-tu ?) :
https://brightdata.fr/blog/savoir-faire ... uest-guide
Mais même après avoir lancé le Devserseur, ma ligne de commande windows pour lancer curl me renvoie xxx n'est pas reconnu en tant que commande interne, je suis déjà bloquée là sur ce tuto.
À moins que je doive le trouver quelque part dans Devserveur ?

Tu me dis d'installer curl sur mon serveur (donc je n'ai pas besoin de DevServeur en local ?), mon Erp est sur infomaniak, c'est là que je dois l'installer ? je cherche des infos à ce sujet sur la config de mon serveur, et sur Google mais je ne trouve rien - sous quelle forme - comment je l'installe ? c'est un serveur mutualisé.

UN GRAND MERCI pour ton aide...

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 13:09

Apparemment je viens de trouver qu'en ajoutant l'API Infomaniak je pourrai avoir une ligne de commande, j'y vais...

Mammouth du PHP | 2703 Messages

20 déc. 2024, 13:14

copier coller l'exemple :
https://www.php.net/manual/fr/curl.examples-basic.php
l'executer chez infomaniak pour voir ce qu'il se passe.

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 13:18

ça mouline depuis plusieurs minutes...
J'ai téléchargé ce qu'ils proposent, l'Open API file, j'ai récupéré un Json... que je ne sais pas où mettre :?
https://developer.infomaniak.com/getting-started

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 13:48

Bon, j'ai appelé Infomaniak, qui m'a dit que Curl était disponible nativement sur leur serveur, et que ma première problématique est d'installer Curl sur mon windows.
Je reviens donc sur le Easyphp Devserver, je cherche comment accéder à la ligne de commande à partir de là... Pas d'infos à ce sujet sur Google, je cherche..

Avatar du membre
Mammouth du PHP | 1564 Messages

20 déc. 2024, 14:28

En général, cURL est prêt à l'emploi dans les versions modernes d'EasyPHP, à condition que l'extension soit activée.

Pour vérifier :

- Ouvrir php.ini et chercher la ligne extension=curl (ne doit pas être commentée, avec un ; devant)

Ensuite, voilà un exemple de code :
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://example.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 15:09

Le test déposé sur Infomaniak a fini par aboutir à une erreur 500.
Je n'ai pas trouvé ce qui pourrait ressembler de près ou de loin à une ligne de commande, en passant par le Devserveur.
J'ai copié le code de l'exemple (exemple basic) dans mon local host, et lancé. J'obtiens :
"Fatal error: Call to undefined function curl_init() in C:\Program Files (x86)\EasyPHP-Devserver-NEW\eds-www\Payer\index.php on line 2"
à la ligne 2 il y a

Code : Tout sélectionner

$ch = curl_init("http://127.0.0.1/Payer/");
Je suis repartie sur google, j'ai trouvé ceci :
https://www.php.net/manual/fr/curl.installation.php
et ceci :
http://support.ptc.com/help/vuforia/stu ... _cURL.html
J'ai téléchargé le bundle Curl, et j'ai cherché le fichier curl.exe, comme indiqué, mais il n'y en a pas.
Néanmoins il y a dans ce bundle les dossiers "lib" et "include", ainsi que les autres fichiers dont parle le lien php.net.

j'ai donc cette info :
"Afin d'activer ce module dans l'environnement Windows, libeay32.dll et ssleay32.dll, libcrypto-*.dll et libssl-*.dll, doivent être présents dans votre PATH. libssh2.dll doit aussi être présent dans votre PATH.
Sous ces instructions, une personne semble apporter des précisions, en ayant modifié le php.ini.
J'ai cherché la commande "directive extension=php_curl.dll" qu'il conseille de modifier, mais elle n'y est pas dans mon php.ini.
Je ne sais pas dans quel PATH mettre les fichiers...

J'ai lancé le php info de mon serveur local, j'ai trouvé ça dans le tableau :
cURL Sterling Hughes

Alors voilà... Dans quelle direction partir maintenant, ou :
1 - comment faire fonctionner ce code :

Code : Tout sélectionner

$ch = curl_init("http://127.0.0.1/Payer/"); $fp = fopen("example_homepage.txt", "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); if(curl_error($ch)) { fwrite($fp, curl_error($ch)); } curl_close($ch); fclose($fp);
2 - où coller la commande

Code : Tout sélectionner

curl -X POST https://httpbin.org/anything
du tuto brightdata pour que je puisse monter une marche vers mon inaccessible bouton "payer"... ?
Modifié en dernier par petite fée le 20 déc. 2024, 15:18, modifié 1 fois.