Bonjour,
Après plusieurs tentatives je fais appel à votre aide car même en cherchant sur le net je ne trouve pas de solution à mon problème.
J'ai donc suivi le tuto vidéo de Grafikart jusqu'à la 23ème minute, ensuite je bloque.
voici mon code :
<?php
//ici c'est la vérification des données qu'on envoie à stripe
$token = $_POST['stripeToken'];
$email = $_POST['email'];
$name = $_POST['name'];
echo $_POST['stripeToken']."-----";
echo $_POST['email']."-----";
echo $_POST['name'];
if (filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($name) && !empty($token)){
$ch = curl_init();
$data = [
'source' => $token,
'description' => $name,
'email' => $email
];
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.stripe.com/v3/customers',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => 'sk_test_1tRPyaelW24WnkDv2NtcDVhz',
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_POSTFIELDS => http_build_query($data)
]);
$response = json_decode(curl_exec($ch));
curl_close($ch);
var_dump($response);
die();
}
?>
Ce que j'obtiens :
tok_1DGRU7JNycInqDFZyzd9MQTv-----jeanTest@test.fr----- Jean
C:\wamp64\www\ServicePrint3D\paiement.php:30:null
J'ai donc un retour de response 'null' et aucun compte n'est créé dans les 'customers' Stripe.
Voila, si quelqu'un a une idée d'où le problème peut venir.
Merci à vous d'avance !
Dernière question :
y-a t-il un risque (que ce soit législatif ou niveau sécurité) d'enregistrer en bdd un ID customers pour pouvoir le réutiliser
et donc éviter de recréer un customer
Sur ta ligne (voir ci dessous) , il faut savoir que json_decode est la pour decodé du JSON, si tu envoie un Json non valide, il te retourne null.
$response = json_decode(curl_exec($ch));
donc fait deja un (voir ci dessous) pour voir ce que tu donne a ton json_decode... je ne pense pas que ce soit un json (poste nous le resultats)
var_dump(curl_exec($ch));
Merci pour ta réponse woozy,
Voici le retour que j'ai avec var_dump(curl_exec($ch));
:
C:\wamp64\www\ServicePrint3D\paiement.php:27:boolean false
donc tu ne reçois pas du json valide.
je sais que pour l'exemple tu a du changer ton login password mais :
CURLOPT_USERPWD => 'sk_test_1tRPyaelW24WnkDv2NtcDVhz',
normalement tu as deux point entre le login et le mot de passe :
CURLOPT_USERPWD => 'login:password',
exemple
CURLOPT_USERPWD => 'alex:azerty123456789',
J'ai essayé en mettant mes identifiant stripe, en essayant avec les deux clés mais toujours null, je vais voir si ça me donne quelque chose avec la lib Stripe.
Si ça peut t'aider :
$resultCurl = curl_exec($ch);
if($resultCurl === false)
{
echo 'Erreur Curl : ' . curl_error($ch);
}
Merci Kenor, j'ai pu avoir une erreur :
Curl : SSL certificate problem: unable to get local issuer certificate
J'imagine que c'est un problème avec "https", j'avoue que je suis un peu perdu.
J'ai trouvé quelque chose : https://stackoverflow.com/questions/28858351/php-ssl-certificate-error-unable-to-get-local-issuer-certificate
Pour activer le certificat, mais toujours rien, seulement la page qui met plus de temps à charger et la réponse est seulement "null" et non pas une erreur sur une ligne de mon fichier php.
Edit : le problème est bien le certif ssl qui n'est pas activé (je suis sous Wamp) mais comment régler le problème ?
Le message que j'obtiens en changeant l'adresse "https://api.stripe.com/v1/customers" en "https://api.stripe.com/v1/customers" :
object(stdClass)#2 (1) { ["error"]=> object(stdClass)#1 (2) { ["message"]=> string(105) "The Stripe API is only accessible over HTTPS. Please see for more information." ["type"]=> string(21) "invalid_request_error" } }
C'est résolu !
Il faut bien suivre la réponse sur ce lien https://stackoverflow.com/questions/28858351/php-ssl-certificate-error-unable-to-get-local-issuer-certificate.
Et ne pas oublier de le faire dans les deux fichier php.ini ( php ainsi qu'Apache )
Merci à vous pour vos réponses. Je vais pouvoir continuer tout ça .