<?php
// Aucune dépendance : l'extension cURL suffit, et elle est activée par
// défaut sur la quasi-totalité des hébergements PHP.
// En contexte WordPress, préférez wp_remote_request() : cette API-là
// respecte les proxys, certificats et filtres de l'hébergement.
$url = 'https://tupay.apps.lepetittahitien.dev/api/v1/transactions/export';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Authorization: Bearer tpk_test_4f2a9c8e1b6d0a35',
'Accept: application/json',
]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
// Vérification TLS non négociable : sans elle, un intermédiaire pourrait
// se faire passer pour l'API et récolter votre clé secrète.
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
$reponse = curl_exec($curl);
$statut = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$erreurReseau = curl_error($curl);
curl_close($curl);
if (false === $reponse) {
throw new RuntimeException('Appel Tupay impossible : ' . $erreurReseau);
}
$donnees = json_decode($reponse, true);
if ($statut >= 400) {
// Branchez vos traitements sur `error`, le code machine : il est
// stable, là où le message est susceptible d'évoluer.
throw new RuntimeException('Tupay a répondu ' . $statut . ' (' . $donnees['error'] . ')');
}
var_dump($donnees);Copier Langage : PHP