2013-04-04 5 views
0

Могу ли я получить параметры обратной связи, если в сценарии покупателю нажать «отменить и вернуться в xxx store»? ниже код, как я пытался иметь пост обратно PARAMS эхо после покупателя нажмите Отмена во время процесса щупика webscr:PayPal как получить ответные параметры после ответа FAIL

$req = 'cmd=_notify-synch'; 
$pp_hostname = "www.sandbox.paypal.com"; 
$tx_token = $_GET['tx']; 
$auth_token = "Ti-bfX-sv-zNDXZS"; 
$req .= "&tx=".$tx_token."&at=".$auth_token; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://".$pp_hostname."/cgi-bin/webscr"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $req); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
//set cacert.pem verisign certificate path in curl using 'CURLOPT_CAINFO' field here, 
//if your server does not bundled with default verisign certificates. 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: ".$pp_hostname)); 
$res = curl_exec($ch); 
curl_close($ch); 

if(!$res){ 
    //HTTP ERROR 
}else{ 
    // parse the data 
    $lines = explode("\n", $res); 
    $keyarray = array(); 
    if(strcmp($lines[0], "SUCCESS") == 0){ 

     for($i=1; $i<count($lines);$i++){ 
     list($key,$val) = explode("=", $lines[$i]); 
     $keyarray[urldecode($key)] = urldecode($val); 
     } 

    //process payment 

}else if(strcmp($lines[0], "FAIL") == 0){ 

    $lines = explode("\n", $res); 
    $keyarray = array(); 

    for($i=1; $i<count($lines);$i++){ 
     list($key,$val) = explode("=", $lines[$i]); 
     $keyarray[urldecode($key)] = urldecode($val); 
    } 

    // echo post back params if FAIL 
    echo "<p><h3>Transaction ".$keyarray['payment_status']."!</h3></p>"; 



} 

}

Возможно ли это, чтобы получить возможность отправлять обратно Params, если ответ FAIL? Мне нужны некоторые данные для обработки в db, если покупатель отменит транзакцию.

Спасибо.

ответ

0

PayPal не выдаст никаких параметров для вашего отмены, но вы можете передать свои собственные. Вы можете динамически заполнить URL-адрес отмены, который поможет вам идентифицировать пользователя или заказ, а затем прочитать это по URL-адресу отмены. Например, вы можете динамически заполнить URL-адрес отмены примерно так, как https://www.mysite.com/cancel.php?orderid=483723, а затем вы будете сами искать в своей системе на основе идентификатора заказа или того, что вы переходите и возвращаете на свой URL-адрес отмены.

Смежные вопросы