Bonjour je tente de mettre la méthode paypal sur salaire, mais je suis arrivé cette erreur: [3] malformé, quand j'envoie les informations qu'il est ok, la transaction peut être complétée, mais quand revient sur le site pour la validation .. revient avec ce lien:
https://m2kotoba.ro/?view=verifyPayPall
dans mon dossier primaire j'ai ce pour la variable de vue en cas de commutation:
case 'verifyPayPall':
$this->getSystemFunctions()->verifyPayPall();
break;
Et la fonction qu'il appelle:
public function verifyPayPall(){
// Handle the PayPal response.
if ($this->verifyTransaction($_POST) /*&& checkTxnid($data['txn_id'])*/) {
//if (addPayment($data) !== false) {
$_SESSION['msg'] = 'Ai achizitionat cu succes!';
header(location: ?view=donate);
//}
}
}
public function verifyTransaction($data)
{
global $paypalUrl;
$req = 'cmd=_notify-validate';
foreach ($data as $key => $value) {
$value = urlencode(stripslashes($value));
$value = preg_replace('/(.*[^%^0^D])(%0A)(.*)/i', '${1}%0D%0A${3}', $value); // IPN fix
$req .= &$key=$value;
}
$ch = curl_init($paypalUrl);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSLVERSION, 6);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
$res = curl_exec($ch);
if (!$res) {
$errno = curl_errno($ch);
$errstr = curl_error($ch);
curl_close($ch);
throw new Exception(cURL error: [$errno] $errstr);
}
$info = curl_getinfo($ch);
// Check the http response
$httpCode = $info['http_code'];
if ($httpCode != 200) {
throw new Exception(PayPal responded with http code $httpCode);
}
curl_close($ch);
return $res === 'VERIFIED';
}
Comment puis-je résoudre ce ou je dois essayer une autre méthode?