使用PHP验证paypal notify数据时出现问题

使用PHP验证paypal notify数据时出现问题,php,paypal,Php,Paypal,我试图检查paypal在支付交易后发送给我的notify_url的数据(在本例中使用沙箱) 我用fsockopen尝试了来自paypal的示例代码,但我就是无法让它正常工作。我还通过手动提供证书尝试了cURL,但结果也不太理想 然而,经过一些改变后,我设法找到了一个解决方案: <?php $_POST = array('mc_gross' => '9.90', 'protection_eligibility' => 'Eligible', 'address_status' =&

我试图检查paypal在支付交易后发送给我的notify_url的数据(在本例中使用沙箱)

我用fsockopen尝试了来自paypal的示例代码,但我就是无法让它正常工作。我还通过手动提供证书尝试了cURL,但结果也不太理想

然而,经过一些改变后,我设法找到了一个解决方案:

<?php
$_POST = array('mc_gross' => '9.90',
'protection_eligibility' => 'Eligible',
'address_status' => 'confirmed',
'payer_id' => '5PK5H93BE5RAQ',
'tax' => '0.00',
'address_street' => '1 Main St',
'payment_date' => '12:13:29 Jan 12, 2012 PST',
'payment_status' => 'Pending',
'charset' => 'windows-1252',
'address_zip' => '95131',
'first_name' => 'Test',
'address_country_code' => 'US',
'address_name' => 'Test User',
'notify_version' => '3.4',
'custom' => '523368657',
'payer_status' => 'verified',
'business' => 'seller_1326059109_biz@yahoo.fr',
'address_country' => 'United States',
'address_city' => 'San Jose',
'quantity' => '1',
'verify_sign' => 'AGilT0jx3itxd3XAujXRvUPipg93ATqSM88ML-PAwAoa7xGkRSWXhVR8',
'payer_email' => 'buyer_1326398444_per@yahoo.fr',
'txn_id' => '1C254380JG793833D',
'payment_type' => 'instant',
'last_name' => 'User',
'address_state' => 'CA',
'receiver_email' => 'seller_1326059109_biz@yahoo.fr',
'receiver_id' => 'FKBDH7FDLECEQ',
'pending_reason' => 'multi_currency',
'txn_type' => 'web_accept',
'item_name' => 'Compte premium winker',
'mc_currency' => 'EUR',
'item_number' => '',
'residence_country' => 'US',
'test_ipn' => '1',
'handling_amount' => '0.00',
'transaction_subject' => '523368657',
'payment_gross' => '',
'shipping' => '0.00',
'ipn_track_id' => '1v3OWX6MBMqE6Oe6-BSmCA');
$req = '?cmd=_notify-validate';
foreach ($_POST as $key => $value) {
  $value = urlencode(stripslashes($value));
  $req .= "&amp;$key=$value";
}

$url = 'https://sandbox.paypal.com/cgi-bin/webscr'.$req;
echo '<p><a href="'.$url.'" target="_blank">browse link</a></p>';

$content = file_get_contents($url);
var_dump($content);

“&;
是否需要是
”&
?我见过这样的情况,但它不会有太大变化,我认为当你把它放在html中时,它应该在那里,但当你将它用于
文件获取内容时,它肯定不会在那里。使用
&
而不是
&
,在