我正在使用 paypal 支付网关,它可以正常工作,但有时会成功自动 return 显示空白屏幕?

I am using paypal payment gateway, its working but some time on success auto return showing blank screen?

我正在使用 paypal 支付网关(目前正在使用沙盒),它可以正常工作,但有时会成功自动 return 显示黑屏??响应 url 非常好,但有时在自动 return 后显示黑屏。

我的代码:

成功后自动 return 正确重定向:

http://domainname/client/paypal/success?amt=9.24&cc=USD&item_name=Weight%20Loss%20Diet%20Program&st=Completed&tx=9CX31984H5808205U

成功后自动 return 正确重定向但显示网站空白屏幕:

http://domainname/client/paypal/success?amt=9.24&cc=USD&item_name=Weight%20Loss%20Diet%20Program&st=Completed&tx=9CX31984H5808205U

代码看起来一切正常 & return url,那为什么在 return 之后有时网站显示黑屏??

我执行贝宝响应的代码片段:

switch($action){
       case "success":               

        if(isset($_GET['tx']))
                        {
                            $tx_token = $_GET['tx'];
                            $req = 'cmd=_notify-synch'; 
                            $auth_token = PDT_IDENTITY_TOKEN;
                            $req .= "&tx=$tx_token&at=$auth_token";

                            $ch = curl_init();

                        if($sandbox==0){
                              curl_setopt($ch, CURLOPT_URL, "https://www.paypal.com/cgi-bin/webscr"); //Live
                        }else{
                              curl_setopt($ch, CURLOPT_URL, "https://www.sandbox.paypal.com/cgi-bin/webscr"); //Sandbox
                        }      

                        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);

                        if($sandbox==0){
                              curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: www.paypal.com")); //Live
                        }else{
                              curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: www.sandbox.paypal.com")); //Sandbox
                        }                        

                        $res = curl_exec($ch);
                        curl_close($ch);  

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

                            if (strcmp ($lines[0], "SUCCESS") == 0)
                            {
                                   for ($i = 1; $i < count($lines); $i++)
                                   {
                                      $temp = explode("=", $lines[$i],2);
                                      $keyarray[urldecode($temp[0])] = urldecode($temp[1]);
                                   }

                                   $invoice_id = $keyarray['invoice'];
                                   $transaction_id = $keyarray['txn_id'];
                                   $payment_status = $keyarray['payment_status'];
                                   if($payment_status=='Completed')
                                   {
                                      ........
                                   }
                             }
                         }
        ....
        break;
        ....
      }

在 PayPal 操作期间,您使用的变量是 PDT(Paypal 数据传输)的一部分,这是需要启用的 PayPal a/c 功能。请检查一次您的 PayPal a/c PDT 设置。