2010-06-16 38 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]