Bonjour,

Je souhaite placer PaySafeCard sur mon site. J'ai donc téléchargé et mis en place le script disponible à cette adresse: https://github.com/paysafecard/paysafecard-rest_api-php
C'est très basique et je personnaliserais ultérieurement avec un montant fixe et d'autres éléments. Bien sûr j'ai créé un compte sur leur site et généré des PIN de test, je ne dépense pas mon propre argent.

Sur la page de notification du paiement, j'ai mis ça:



Le fonctionnement n'est pas compliqué:
1) L'API fait un appel à la page notification.php?payment_id=icionretrouveliddupaiement
2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 $response = $pscpayment->retrievePayment($id);
récupère les données du paiement en fonction de son ID
3)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$logger->log($pscpayment->getRequest(), $pscpayment->getCurl(), $pscpayment->getResponse());
log la réponse (première partie dans le fichier texte joint à ce message)
4)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if ($response == true) {
vérifie s'il y a une réponse
5)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (isset($response["object"])) {
vérifie s'il y a des données dans la réponse
6)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if ($response["status"] == "AUTHORIZED") {
vérifie si le paiement a été autorisé (voir première partie du fichier texte joint à ce message)
7)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$response = $pscpayment->capturePayment($id);
valide le paiement
8)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$error    = $pscpayment->getError();
vérifie s'il y a une erreur
9)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$logger->log($pscpayment->getRequest(), $pscpayment->getCurl(), $pscpayment->getResponse());
log la réponse de la validation du paiement (deuxième partie dans le fichier texte joint à ce message)
10)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if ($response == true) {
     if (isset($response["object"])) {
vérifie s'il y a encore une réponse et des données
11)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if ($response["status"] == "SUCCESS") {
vérifie si la validation du paiement a réussie et si oui, exécute du code comme par exemple l'envoie du mail de confirmation à la personne qui vient de payer.

Mon problème est que le code à l'intérieur de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if ($response["status"] == "SUCCESS") {
n'est jamais exécuté.

J'ai alors tenté un petit truc:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
if (isset($_GET["payment_id"])) {
$id = $_GET["payment_id"];
// get payment status with retrieve Payment details
$response = $pscpayment->retrievePayment($id);
 
$expediteur = "blablabla";
$reponse = "blablabla";
$mail = "blablabla";
$codehtml = "<html><body>".$response['customer']['id']."</body></html>";
mail($mail,"Confirmation de votre paiement",$codehtml,"From: $expediteur\r\n"."Reply-To: $reponse\r\n"."Content-Type: text/html; charset=\"UTF-8\"\r\n");
}
Et là ça fonctionne.

D'après le fichier que j'ai joins à ce message il serait logique que ça fonctionne lorsque c'est placé à l'intérieur des "if" ... mais en faite non ...

Si quelqu'un sait d'où ça peut provenir ça m'aiderait énormément. Merci d'avance






log.txt