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

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 15:11

Merci two3d, je viens de voir ton message.
j'ai testé ton code, j'ai "erreur à la ligne 2", qui mène à "$ch = curl_init();"

Quand à la ligne dans le php.ini, j'ai "impossible de trouver "extension=curl"

J'ai lancé également ce code test sur mon serveur infomaniak, et ça tourne, comme tout à l'heure.
ça va probablement aboutir à la même erreur que tout à l'heure :
erreur 500
Le serveur a été victime d'une erreur interne et n'a pas été capable de faire aboutir votre requête. Soit le server est surchargé soit il s'agit d'une erreur dans le script CGI

Avatar du membre
Mammouth du PHP | 1564 Messages

20 déc. 2024, 15:20

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);
Avec cURL installé et activé (WAMP peut être la solution).
2 - où coller la commande

Code : Tout sélectionner

curl -X POST https://httpbin.org/anything
Visual studio code peut être la solution.

Avatar du membre
Mammouth du PHP | 1564 Messages

20 déc. 2024, 15:22

J'ai lancé également ce code test sur mon serveur infomaniak, et ça tourne, comme tout à l'heure.
ça va probablement aboutir à la même erreur que tout à l'heure :
erreur 500
Dans l'exemple j'ai mis l'URL example.com, à toi de mettre l'URL que t'as besoin, c'est peut être la source du problème.

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 15:29

... J'ai mis un url vers mon site vitrine, je ne sais pas ce que je suis sensée obtenir si le code fonctionne :wink:

quelle url dois-je mettre ? je viens de tenter en mettant l'url où se trouve ce fichier.

Merci de votre aide à tous les 2,

je vais installer winamp


Ps : ... Peut-être devrais-je faire appel à une sous-traitance pour ce fichu bouton ?
Ce qui me fait peur, c'est que je suis bloquée simplement pour faire fonctionner Curl sur mon windows, étape 1, alors que je ne sais pas ce que je dois en faire après, je sais que je fais être aussi bloquée sur la création d'un jeton dont je ne saurais pas non plus quoi faire...

Avatar du membre
Mammouth du PHP | 1564 Messages

20 déc. 2024, 15:34

Pas winamp, WAMP.
Lorsque tu appelle une URL avec cURL tu obtiens sont code source (en l'occurrence, via l'option CURLOPT_RETURNTRANSFER).

Tu as la doc ici : https://www.php.net/manual/fr/ref.curl.php

Tout ne s’apprend pas sur un claquement de doigts, 3 heures, c'est rien, une semaine, c'est mieux. :D Bon courage, je suis disponible pour un devis si besoin.

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 16:00

Je sais bien, two3D qu'il ne suffit pas d'un claquement de doigts, je suis développeuse depuis 22 ans en autodidacte :mrgreen: et je développe aujourd'hui des Erp from scratch plutôt perfectionnés, alors j'en ai passé, des nuits et jours, en partant de 0 ...
Mais là j'ai facturé une journée à mon client, je pensais vraiment que la difficulté serait équivalente à un paiement paypal que j'ai déjà installé.
Jusqu'à présent mes gestions de données n'ont pas nécessité la mise en place d'un système de paiement.
Pour la petite histoire, j'en ai 2 à installer : un avec Helloasso, l'autre avec Stripe, je qu'ai déjà installé sur un site Joomla, il y avait un module à configurer et hop, comme papa dans maman.

Je suis dépitée...

L'installation de Wamp est faite... je vais regarder ce que je peux en faire.

Je veux bien un devis ?

Avatar du membre
Mammouth du PHP | 1564 Messages

20 déc. 2024, 16:10

Bienvenue au club :D
Je veux bien un devis ?
Ps : ... Peut-être devrais-je faire appel à une sous-traitance pour ce fichu bouton ?
Si besoin, passe par la page contact de mon site stp.

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 16:31

J'ai lancé wamp après avoir arrêté easyphp, et j'ai installé mes fichiers de test dans wamp.
J'ai copié-collé l'exemple de formulaire de phpnet que tu m'as envoyé dedans, et je l'avais essayé au préalable sur infomaniak, et sur easyphp.
Le formulaire s'affiche, mais avec des erreurs.
Quant à mon code d'origine à tester :

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);
Il mouline toujours, d'ici 30 minutes je m'attends à avoir le même code d'erreur

J'ai installé Visual studio, il me demande quelles "charges de travail" installer.
(il y a "développement python", peut-être ?) je ne sais pas quoi cocher

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 16:37

two3d je t'ai envoyé un message par ton contact

Avatar du membre
Mammouth du PHP | 1564 Messages

20 déc. 2024, 16:41

Le formulaire s'affiche, mais avec des erreurs.
Quelles sont les erreurs ?

Tu peux lancer ce code sur une page .php pour vérifier si cURL est activé :
if (function_exists('curl_version')) {
    echo "cURL est activé.";
} else {
    echo "cURL n'est pas activé.";
}
Je ne pourrais pas t'aider Visual, je ne l'utilise pas.

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 17:57

Bon du coup je suis partie sur ce que tu m'as envoyé.

J'avance....

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 18:43

Voilà où j'en suis :
Je suis partie de ce que m'as donné two3d par email, à savoir, semble t'il, une methode qui me permettrai de faire passer les données en Html/php, et les envoyer en php.
Pas besoin de Curl ou autre - ce qui m'irait très bien.

j'ai réussi à obtenir un access token (c'est ma première victoire après presque 20 heures de recherches)

Je passe en POST mes variables prix et client id. J'envoie ces données à mon fichier php helloasso_payment.php, qui se trouve dans le même répertoire que mon fichier contenant le bouton.

Ici je met en dur le contenu récupéré de mes variables, c'est le contenu de mon fichier helloasso_payment.php qui est sensé envoyer les données à l'Api et me renvoyer une réponse :

Code : Tout sélectionner

<?php // Récupérer les variables $prix = "30"; $id_client = "8175"; // Étape 1 : Obtenir un token d'accès via OAuth2 $client_id = 'xxx je met mon idxxxxx'; $client_secret = 'xxxx mon code secret xxxx'; $auth_url = "https://api.helloasso.com/oauth2/token"; $responseData['access_token']="xxxx mon token xxxxx"; $data = [ 'grant_type' => 'client_credentials', 'client_id' => $client_id, 'client_secret' => $client_secret ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $auth_url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $responseData = json_decode($response, true); $access_token = $responseData['access_token']; // Étape 2 : Envoyer les données de paiement // dans le bouton donné : $payment_url = "https://api.helloasso.com/v5"; // Vérifiez l'URL exacte pour les paiements // je ne sais pas où vérifier. j'ai mis l'adresse des tests donnée dans la doc $headers = [ "Authorization: Bearer $access_token", "Content-Type: application/json" ]; $payment_data = [ 'amount' => $prix, 'customerId' => $id_client, // Ajoutez d'autres champs nécessaires selon la documentation HelloAsso ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $payment_url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payment_data)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); // Étape 3 : Traiter la réponse $paymentResponse = json_decode($response, true); if (isset($paymentResponse['status']) && $paymentResponse['status'] == 'success') { echo "Paiement réussi !"; } else { echo "Erreur lors du paiement : " . $paymentResponse['message']; } ?>

lorsque je clique sur mon bouton, à priori je vais sur cette page, et je devrais y rester avec l'echo d'après-traitement. En réalité, il ne se passe ... rien. Le navigateur semble se charger durant 5 secondes, puis ma page où se trouve le bouton se réaffiche.

Une idée de ce qui cloche ?

Merci :love1:

Mammouth du PHP | 2703 Messages

20 déc. 2024, 20:12

étape 1 : commencer à faire marcher un code très simple avec curl chez infomaniak

Eléphanteau du PHP | 36 Messages

20 déc. 2024, 22:18

Merci or 1,
j'ai finalement pris la décision de sous-traiter,

Je vous remercie GRANDEMENT de votre aide à tous les 2,

Je vous souhaite de très bonnes fêtes !