Page 1 sur 1

PayPal IPN: test IPN: VERIFIED ,logs: INVALID!

Posté : 04 juil. 2020, 15:07
par two3d
Bonjour,

PayPal m'épuise, ça fonctionne jamais correctement et il faut faire des pieds et des mains pour y arriver correctement (heureusement que parfois ça fonctionne!)

Ici en l’occurrence j'ai un problème avec la validation IPN:

Quand je lance un test IPN sur le site de paypal (via https://developer.paypal.com/developer/ipnSimulator/) j'ai le résultat:
IPN was sent and the handshake was verified.
Mais mes logs côté serveur sont pas d'accord:
INVALID
Comment peut on savoir qu'est ce qui ne va pas ? J'ai toutes les variables $_POST enregistrées dans un fichier logs donc je suis en mesure de voir ce qui va ou ne va pas mais je ne sais pas quoi regarder (ni même si c'est en rapport avec une variable manquante...)

PS: c'est la base d'un script que j'avais partagé sur mon site, mais depuis le temps (février 2018) on dirait que ça ne fonctionne plus...

Re: PayPal IPN: test IPN: VERIFIED ,logs: INVALID!

Posté : 04 juil. 2020, 17:09
par Saian
Salut two3d, tu as une page avec 2 exemples de codes et une classe PaypalIPN toute prête ici : https://github.com/paypal/ipn-code-samp ... master/php

Re: PayPal IPN: test IPN: VERIFIED ,logs: INVALID!

Posté : 05 juil. 2020, 09:13
par two3d
Merci, c'est celle que j'utilise ;)

Je vais tenter de l'utiliser telle quelle car j'ai apporté des modifs...

Re: PayPal IPN: test IPN: VERIFIED ,logs: INVALID!

Posté : 05 juil. 2020, 09:35
par two3d
ça fonctionne, je vais débuguer pas à pas pour savoir quel est la cause, je te remercie

Re: PayPal IPN: test IPN: VERIFIED ,logs: INVALID!

Posté : 05 juil. 2020, 10:06
par two3d
ny connaissant rien en classe PHP j'ai voulu faire une fonction __construct dans la classe PayPalIPN et ça ne fonctionnait pas, merci pour la piste ;)

Re: [RESOLU] PayPal IPN: test IPN: VERIFIED ,logs: INVALID!

Posté : 05 juil. 2020, 10:10
par Saian
Pourtant rien ne t'empêche d'en faire un, du moment que tu fais ça comme il faut. ;)

Re: [RESOLU] PayPal IPN: test IPN: VERIFIED ,logs: INVALID!

Posté : 05 juil. 2020, 12:05
par two3d
J'avais fait ceci:
	public function __construct($paypal_test){
		if($paypal_test)
			$use_sandbox=true;
		else
			$use_sandbox=false;
	}
et du coup j'appelais directement la class comme ceci:
$ipn = new PayPalIPN($ma_var_true_ou_false);

Re: [RESOLU] PayPal IPN: test IPN: VERIFIED ,logs: INVALID!

Posté : 05 juil. 2020, 20:31
par Saian
Bah ma foi je ne vois pas de problème si ce n'est que tu devrais faire un $this->useSandbox() car il y a cette méthode exprès.

Ça donnerait ça.
public function __construct($useSandbox = false){
  if ($useSandbox)
    $this->useSandbox();
}

Si tu veux modifier directement la propriété de l'objet à l'intérieur de la classe il faut utiliser $this->use_sandbox et non pas $use_sandbox. ;)

Re: [RESOLU] PayPal IPN: test IPN: VERIFIED ,logs: INVALID!

Posté : 05 juil. 2020, 22:45
par two3d
Si tu veux modifier directement la propriété de l'objet à l'intérieur de la classe il faut utiliser $this->use_sandbox et non pas $use_sandbox. ;)
Aah, yes! sans doute là l'erreur, tant pis j'ai utilisé la fonction useSandbox() après l'appel de la class "$ipn->useSandbox()" au lieu de mon construct

J'apprends sur le tas les classes PHP, je suis novice avec ce mode de codage

Merci en tout cas!