Paypal IPN中的口音返回INVALID

时间:2016-01-07 19:37:05

标签: php paypal paypal-ipn

我遇到了问题:
我用PHP创建了一个Paypal IPN服务器。我用IPN模拟器触发它,效果很好。问题是,在某些领域我引入了一个口音(我来自一个西班牙裔县),它返回无效!我尝试使用urlencode和htmlentities(不在一起)对$ value var(您可能会看到用于理解它的代码)进行编码,但它不起作用。你知道我能做什么吗? 至少要说一下我是否需要担心。

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

$postFields = 'cmd=_notify-validate';
foreach($_POST as $key => $value){
    $postFields .= "&$key=$value";
}

$ch = curl_init();

curl_setopt_array($ch, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $postFields
));

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

$fh=fopen('result.txt', 'w');
fwrite($fh, $result.' -- '.$postFields);
fclose($fh);

echo $result;
?>

1 个答案:

答案 0 :(得分:0)

我终于发现了什么有效(只是在现场,而不是沙箱):

  

如果客户名称或地址带有重音字符,并且在用户购买东西后它们在您的网站上显示不正确,那么paypal的IPN可能不是UTF-8格式。
  将此日志设置为您的PayPal帐户   登录后转到此页面:
  Farzad YZ

     

进入该页面后,点击输入正下方的“更多选项”   框。
然后为您的网站编码选项(编码选择框)   从下拉列表中选择“utf-8”。
然后在下一个设置中离开   设置为“是”并点击“保存”。这应该可以纠正这个问题。

来源:https://www.paypal.com/ie/cgi-bin/webscr?cmd=_profile-language-encoding