我遇到了问题:
我用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;
?>
答案 0 :(得分:0)
我终于发现了什么有效(只是在现场,而不是沙箱):
如果客户名称或地址带有重音字符,并且在用户购买东西后它们在您的网站上显示不正确,那么paypal的IPN可能不是UTF-8格式。
将此日志设置为您的PayPal帐户 登录后转到此页面:
Farzad YZ进入该页面后,点击输入正下方的“更多选项” 框。
然后为您的网站编码选项(编码选择框) 从下拉列表中选择“utf-8”。
然后在下一个设置中离开 设置为“是”并点击“保存”。这应该可以纠正这个问题。
来源:https://www.paypal.com/ie/cgi-bin/webscr?cmd=_profile-language-encoding