2010-06-16 40 views
2

使用PHP实现Express Checkout和Paypal API。安全标题无效 - 使用curl php

我没有问题,第一步:SetExpressCheckout。我有一个awk =成功。

但在方法GetExpressCheckout我得到“安全标头是无效的”。我揣摩的问题,我觉得找到了,也许这是卷曲效果不好..

我没我什么复制整个网址:

https://api-3t.sandbox.paypal.com/nvp?USER=sanbox_1276609583_biz_api1.gmail.com&PWD=1276609589&SIGNATURE=AYVosblmD7khKkvvb.bNxvFT0OQ2A8GopwByEuC.CfMHt65VaUmvAEy-&VERSION=62.0&token=EC-3YG18670X88588437&METHOD=GetExpressCheckoutDetails

并粘贴到浏览器。这将导致以:

TOKEN = EC%2d3YG18670X88588437 & CHECKOUTSTATUS = PaymentActionNotInitiated & TIMESTAMP = 2010%2d06%2d16T07%3a40%3a12Z &的correlationID = e1a1e469bf066 & ACK =成功& VERSION = 62%2E0 & BUILD = 1356926 .. 。

但是,当这个url在函数中执行的时候我做不到了。下面是我的函数:

功能mycurl($网址,$ querystr){

$ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 

    curl_setopt($ch, CURLOPT_VERBOSE, 1); 

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

    curl_setopt($ch, CURLOPT_POST, 1); 

    curl_setopt($ch, CURLOPT_POSTFIELDS, $querystr); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 

    $response = curl_exec($ch); 

    curl_close ($ch); 

    return $response; 

}

我希望有人能够帮助这一点。非常感谢。

说明: - 我为此使用了沙箱。我创建了一个沙盒帐户,我有一个商业帐户代表一个商家,一个个人帐户代表一个买家。

而且我用这个:

端点URL:api-3t.sandbox.paypal.com/nvp 沙箱网址:www.sandbox.paypal.com/cgi-bin/webscr

这应该不是问题。

回答

0

这是最有可能的范围

在功能方面的问题,您应该写$querystr变量文件执行权的卷曲呼叫之前,或将其输出到屏幕上,并确保一切都在那里。很可能你的函数外部使用了变量$querystr变量,因此它可能是空的或缺少零件。

下面是一个例子来说明这个问题

<?php 
$variable = 'bar'; 
echo $variable;   // prints bar 

function myfunc(){ 
    echo $variable;   // prints nothing 
} 
function myfunc1(){ 
    global $variable, $variable1, $variable2; 
    echo $variable;  // prints bar 
} 
?> 

http://us3.php.net/manual/en/language.variables.scope.php以获取更多信息

你设置$响应变量后,也加入这行

echo '<pre>'; print_r($response); echo '</pre>'; 

你会得到一个错误代码和长的错误信息,请在paypals网站上查看以获取更多信息:[https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_errorcodes]