iKelSilver
-
9 avril 2021 à 17:52
professor_tourneseul
Messages postés17Date d'inscriptionsamedi 5 septembre 2020StatutMembreDernière intervention14 mai 2021
-
11 avril 2021 à 16:42
Bonjour tout le monde,
Je rencontre un souci pour recevoir la réponse d'un API.
Voici les informations que renvoie l'API :
Method : HTTP Post
Format d'échange de données : JSON
Les variables que l'API renvoie sont : tx_reference,identifier,payment_reference,...
professor_tourneseul
Messages postés17Date d'inscriptionsamedi 5 septembre 2020StatutMembreDernière intervention14 mai 2021 Modifié le 10 avril 2021 à 21:56
bonjour,
Comment récupérer le corps body d’une requête HTTP sans utiliser d’index, c’est à dire, sans utiliser $_POST[ 'index_quelconque ' ] :
$post_body = file_get_contents( 'php://input' ) ;
Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction. (voir la doc PHP).
si la réponse n'est pas valide ou pas du format json, alors la fonction : json_decode($json); va également retourner une erreur, et ainsi de suite, des erreurs en cascade, en avalanche ...
Donc, en PHP, toujours tester les erreurs pour savoir d'où vient l'erreur !
professor_tourneseul
Messages postés17Date d'inscriptionsamedi 5 septembre 2020StatutMembreDernière intervention14 mai 2021 Modifié le 10 avril 2021 à 21:57
Oui, on peut utiliser $ma_var = $ _POST['ma_var']; mais ça suppose que, dans la réponse à la requête HTTP, retournée au client par le serveur, il y a présence du champ ma_var selon le format texte suivant :
ma_var=valeur_du_champ_ma_var& ... ... autres éventuels champ=valeur ...
du genre :
nom_champ1=valeur_du_champ1&nom_champ2=valeur_du_champ2&nom_champ3=valeur_du_champ3
Mais dans le cas où il n'y a pas de champs mais que des valeurs :
(ça arrive sur certains serveurs !!)
professor_tourneseul
Messages postés17Date d'inscriptionsamedi 5 septembre 2020StatutMembreDernière intervention14 mai 2021 11 avril 2021 à 16:42
bonjour ,
OK je vois le truc, la situation,
la forcément c'est sécurisé ! et ça doit être bien sécurisé donc https:// ...
D'expérience perso, en général, sur les sites proposant des APIs, il y a, disponibles,
des exemples d'utilisations de leurs APIs dans divers langages :
PHP, javascript, java, C++ ... , pour accompagner le développeur ...
Déjà au 1ier abord (sans créer de compte), là en surface, je ne vois pas
d'exemples d'utilisations de leur API !
Peut-être faut-il créer un compte avant, pour y avoir accès ????
Alors 1 remarque ici, dans le code donné sur le forum, je vois bien le traitement en PHP
de la réponse (qui apparemment n'arrive pas !) mais on ne voit pas le code source PHP
lançant la requête HTTP POST ...
Il faut d'abord s'assurer que la réponse arrive avant de la traiter !
Sinon là, pour lancer des requêtes http(s) POST en PHP, j'utilise curl,
(une extension PHP maintenant intégrée à PHP) , ça marche bien,
ça passe bien les proxy et ça gère presque tous les protocoles web sauf TCP :
https://www.php.net/manual/fr/intro.curl.php
ATTENTION ! il faut activer l'extension curl dans le PHP utilisé : dé-commenter,
dans le fichier texte PHP.ini du répertoire du PHP, la ligne :
; extension=php_curl.dll
devient :
extension=php_curl.dll
puis redémarrer le serveur web pour la prise en compte de cette extension PHP.
10 avril 2021 à 19:46
Merci pour votre réponse. Vue votre explication, le fait qu'on peut ou ne pas recevoir la réponse attendue, est-ce qu'on peut utiliser directement pour recueillir les données attendues comme dans un formulaire simple html ?
Merci