0

如果在场景中给买家点击“取消并返回 xxx 商店”,我可以得到回传参数吗?下面的代码是在 palpal webscr 过程中买家点击取消后我试图让回发参数回显的方式:

$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?如果买家取消交易,我需要一些数据在数据库中处理。

谢谢。

4

2 回答 2

0

贝宝提供有关交易信息的所有信息以获取更多信息,请查看以下链接信息

原因代码

https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNandPDTVariables/

于 2013-07-02T13:06:38.573 回答
0

PayPal 不会将任何参数传回给您的取消,但您可以传回您自己的参数。您可以动态填充可帮助您识别用户或订单的取消 URL,然后在取消 URL 上读取它。例如,您可以将取消 URL 动态填充为https://www.mysite.com/cancel.php?orderid=483723之类的内容,然后您将根据订单 ID 在系统中进行自己的查找,或者什么每次您传递并返回您的取消 URL。

于 2013-04-04T12:16:39.683 回答