Paypal PDT 脚本无法使用 cURL

Posted

技术标签:

【中文标题】Paypal PDT 脚本无法使用 cURL【英文标题】:Paypal PDT script not working using cURL 【发布时间】:2014-05-28 17:38:02 【问题描述】:

我似乎无法让这个 PayPal PDT 脚本工作。贝宝点击返回 URL,但随后我看到一个空白屏幕,没有任何反应。任何人都可以看到不正确的地方吗?这是我的代码:

$tx = $_GET['tx'];
$ID = $_GET['cm'];
$amount = $_GET['amt'];
$currency = $_GET['cc'];
$identity = '###########################################'; 

// Init cURL
$ch = curl_init(); 

// Set request options
$url = 'https:www.paypal.com/cgi-bin/webscr';
$fields = array(
    'cmd' => '_notify-synch',
    'tx' => $tx,
    'at' => $identity,
);

curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch,CURLOPT_HEADER, FALSE);

// Execute request and get response and status code
$response = curl_exec($ch);
$status   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// Close connection
curl_close($ch);
if($status == 200 AND strpos($response, 'SUCCESS') === 0)

    wp_redirect(home_url('/account'));
    exit;
 else 
    wp_redirect(home_url());
    exit;

URL 字符串显示最初返回的必要信息(交易 ID 等)是正确的,但我不知道它是否实际被使用,只是由于 wordpress 重定向而失败,或者它是否事先失败了。

【问题讨论】:

$fields_string 是从哪里来的!!??此外,使用CURLOPT_VERBOSE 模式运行您的代码并使用日志输出更新您的问题。 【参考方案1】:

CoreyRS,

使用您的代码,我能够让 PDT 进行一些更改:

$url = 'https:www.paypal.com/cgi-bin/webscr';

$url = 'https://www.paypal.com/cgi-bin/webscr';

curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($fields));

此外,请确保您是否使用沙盒进行测试,以改用 URL https://www.sandbox.paypal.com/cgi-bin/webscr。

【讨论】:

以上是关于Paypal PDT 脚本无法使用 cURL的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 PayPal PDT 从我的 JSP 应用程序获得响应

Paypal PDT - 无法获取交易 ID

PayPal:IPN 和 PDT 脚本同时工作

cURL Paypal IPN 脚本不工作

Paypal 付款数据传输 (PDT) 错误 4002

无法使 Xdebug 与 Eclipse PDT 一起工作