Bonjour,
j'essai de mettre un systeme de paiement sur mon site jai regardé le tuto de grafikart sur cakephp (systeme d abonnement ) je l'ai adapté à mon cas mais le probleme le notify url n'est jamais appelé et pourtant l url de succes est appelé a la fin de la transaction (pas d'insertion a la base de donnée) merci pour votre aide
public function notify(){
debug("coucou");die("notify");
$email_account = Configure::read('Paypal.mail');
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen('ssl://www.'.Configure::read('Paypal.sandbox').'paypal.com', 443, $errno, $errstr, 30);
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_tax = $_POST['tax'];
$payment_ht = $payment_amount - $payment_tax;
$payment_currency = $_POST['mc_currency'];
$address = $_POST['address_street'];
$country = $_POST['address_country'];
$city = $_POST['address_city'];
$name = $_POST['address_name'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
parse_str($_POST['custom'],$custom);
$this->log($_POST, 'paypal');
if (!$fp) {
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
$this->log('paypal','paiement');
// vérifier que payment_status a la valeur Completed
if ( $payment_status == "Completed") {
if ( $email_account == $receiver_email) {
//debug($custom);die();
if($custom['action'] == 'Paypalpayment'){
$this->Soutiens->save([
'price' => $payment_ht,
'tax' => $payment_tax,
'txnid' => $txn_id,
'action' => 'paiement',
'name'=> $name,
'country'=> $country,
'city' => $city,
'address'=> $address
]);
}
}
}
else {
// Statut de paiement: Echec
$this->log('echec','paiement');
}
exit();
}
else if (strcmp ($res, "INVALID") == 0) {
// Transaction invalide
}
}
fclose ($fp);
}
}
as tu bien fait la config sur ton compte paypal ?
Et est ce que paypal est capable de rejoindre ton site( Heberger en ligne ou configurer ta box pour que ton serveur soie rejoignable ? ) ?
bonjour oui mon appli est en ligne et tout est bien configuré car jai les notif dans le dashboard de paypal. je suis déja passé à Stripe car cest facile et simple à utilisé
Bonjour.
je suis déja passé à Stripe car cest facile et simple à utilisé
Tu n'utilises donc plus PayPal mais Stripe si je comprends bien, il n'est donc plus utile de te répondre à ce sujet puisque tu as abandonné PayPal pour ton système de paiement.
Cest en attendant de trouver une solution pour paypal. Les 2 technos seront présentes sur l'appli