2013-04-04 64 views
0

如果在场景中向买家点击'取消并返回到xxx商店',我可以获取发回参数吗?下面的代码是我想有回发PARAMS买家后回声出单击取消时须肢webscr过程:如果回复失败,PayPal如何获得回传参数

$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>"; 



} 

}

那是有可能得到回应是否发布FAIL回PARAMS?如果买方取消交易,我需要一些数据来处理数据库。

谢谢。

回答

0

PayPal不会将任何参数传回给您取消您的帐户,但您可以将自己的帐户还给您。您可以动态填充取消网址,以帮助您识别用户或订单,然后在取消网址上阅读该网址。例如,您可以动态地将取消网址填充为https://www.mysite.com/cancel.php?orderid=483723之类的内容,然后您可以根据订单ID在系统中查看自己的内容,或者查看您通过并返回到取消网址的内容。

相关问题