Paypal支付数据传输在沙箱中不工作

Paypal支付数据传输在沙箱中不工作,paypal,eclipse-pdt,Paypal,Eclipse Pdt,我试图让贝宝重定向到我的网站后,交易和检索有关交易的信息。到目前为止,Paypal确实重定向到了正确的位置,但我随后返回给Paypal的php curl操作会检索到一个错误页面,而不是我期望的成功/失败消息: 抱歉-您的上一个操作无法完成 [……] 我们不能 此时完成您的请求。请单击“重试”或重试 稍后。给您带来不便,我们深表歉意 信息3004 我尝试过让我的代码在屏幕上打印“tx”参数,手动生成请求并将其直接放入浏览器,即: 但是返回了上面描述的相同错误页面 我已登录到我的sandbox p

我试图让贝宝重定向到我的网站后,交易和检索有关交易的信息。到目前为止,Paypal确实重定向到了正确的位置,但我随后返回给Paypal的php curl操作会检索到一个错误页面,而不是我期望的成功/失败消息:

抱歉-您的上一个操作无法完成

[……]

我们不能 此时完成您的请求。请单击“重试”或重试 稍后。给您带来不便,我们深表歉意

信息3004

我尝试过让我的代码在屏幕上打印“tx”参数,手动生成请求并将其直接放入浏览器,即:

但是返回了上面描述的相同错误页面

我已登录到我的sandbox paypal帐户,“at”参数保存与我的sandbox商户测试帐户关联的正确支付数据传输身份令牌


我的请求有什么遗漏吗?我没有用我的实际Paypal帐户测试过它,因为在我知道它有效之前,我不想进行任何真正的货币兑换。

同样的错误——两周前注意到了——已经与Paypal联系过,Paypal告诉我检查我的代码——但即使是复制和粘贴的代码示例也会产生错误。当您登录到test seller帐户时,您能看到交易吗?我可以,但再次单击“详细信息”视图会生成错误

我能够通过这个帐户的PDT,但它突然开始失败,我的代码没有改变

更新日期:2012年7月31日: 尽管如此,Paypal仍然没有确认的解决方案——与商家的电话支持人员交谈,而不是与技术团队交谈,因为他们显然没有电话技术支持——商家建议基本上要进行现场测试,避免沙箱。每次测试至少20便士,因为您必须退还测试交易

我可以告诉你,他不是一个很快乐的人(

$tx=$_请求['tx'];
$paypal\u url='1https://www.paypal.com/cgi-bin/webscr?cmd=_notify-同步&tx='.$tx.&at=token here';
$curl=curl\u init($paypal\u url);
$data=数组(
“cmd”=>“\u notify-synch”,
“tx”=>tx美元,
“在“=>”标记处”
);                                                                    
$data\u string=json\u encode($data);
curl_setopt($curl,CURLOPT_头,0);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data_string);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,1);
$headers=数组(
'内容类型:application/x-www-form-urlencoded',
“主持人:www.paypal.com”,
'连接:关闭'
);
curl_setopt($curl,CURLOPT_HTTP_VERSION,curl_HTTP_VERSION_1_1);
curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
$response=curl\u exec($curl);
$lines=explode(“\n”,$response);
$keyarray=array();
if(strcmp($lines[0],“SUCCESS”)==0){

对于($i=1;$ilooks,如沙盒暂时关闭)您联系过Paypal支持部门吗?至少在上周出现了相同的问题。我联系了支持部门并向他们发送了详细信息,希望他们明天会回答“php”标记是不必要的,它不是代码发出POST请求的原因,我在ASP.NETFYI上也遇到了同样的问题:我在卷曲PDT之前在url中获得了状态完成,所以在假设付款成功的情况下,我能够继续签出后的过程-作为继续开发的一种方法。不,我看不到transac这也会导致相同的错误页面。我很高兴知道我不是唯一遇到此问题的人。我也会联系Paypal。我会将您的答案标记为正确答案,因为问题确实存在于Paypal。
$tx=$_REQUEST['tx'];

$paypal_url='https://www.paypal.com/cgi-bin/webscr?cmd=_notify-synch&tx='.$tx.'&at=token here';

$curl = curl_init($paypal_url);

$data = array(

"cmd" => "_notify-synch",

"tx" => $tx,

"at" => "token here"


);                                                                    

$data_string = json_encode($data); 

curl_setopt ($curl, CURLOPT_HEADER, 0);

curl_setopt ($curl, CURLOPT_POST, 1);

curl_setopt ($curl, CURLOPT_POSTFIELDS, $data_string);

curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 1);

$headers = array (

'Content-Type: application/x-www-form-urlencoded',

'Host: www.paypal.com',

'Connection: close'

);

curl_setopt ($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

curl_setopt ($curl, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($curl);

$lines = explode("\n", $response);

$keyarray = array();

if (strcmp ($lines[0], "SUCCESS") == 0) {

for ($i=1; $i<count($lines);$i++){

list($key,$val) = explode("=", $lines[$i]);

$keyarray[urldecode($key)] = urldecode($val);

}


$first_name=$keyarray['first_name'];

$last_name=$keyarray['last_name'];

$payment_status=$keyarray['payment_status'];

$business=$keyarray['business'];

$payer_email=$keyarray['payer_email'];

$payment_gross=$keyarray['payment_gross'];

$mc_currency=$keyarray['mc_currency']; 

}