我似乎无法使这个PayPal PDT脚本正常工作。 PayPal点击返回的网址,然后我显示空白屏幕,没有任何反应。谁能看到什么是不正确的?这是我的代码:
$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重定向或者它是&#39事先失败了。
答案 0 :(得分: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));
另外,请确保您是否使用沙箱进行测试以使用网址https://www.sandbox.paypal.com/cgi-bin/webscr。