2013-07-10 14 views
0

目前使用PHP +捲曲,以測試XAMPP的NVP SetExpressCheckout貝寶功能(沙箱模式), 不管我做什麼,我收到以下錯誤:寶NVP驗證失敗

錯誤代碼10002:身份驗證/授權失敗。您無權進行此API調用。

$nvp = array(
    'METHOD' => 'SetExpressCheckout', 
    'VERSION' => '98', 
    'USER' => $user, 
    'PWD' => $pwd, 
    'SIGNATURE' => $signature, 
    'RETURNURL' => $returnurl, 
    'CANCELURL' => $cancelurl, 
    'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale', 
    'PAYMENTREQUEST_0_AMT' => '20.00', 
    'PAYMENTREQUEST_0_CURRENCYCODE' => $currency, 
    'REQCONFIRMSHIPPING' => '0', 
    'NOSHIPPING' => '1', 
    'ALLOWNOTE' => '0', 
    'LOCALECODE' => 'US' 
    'L_PAYMENTREQUEST_0_NAME0' = 'A product name'; 
    'L_PAYMENTREQUEST_0_AMT0' = '20.00'; 
    'L_PAYMENTREQUEST_0_QTY0' = '1'; 
    'L_PAYMENTREQUEST_0_ITEMCATEGORY0' = 'Digital'; 
); 

$request = 'https://api-3t.sandbox.paypal.com/nvp?' . http_build_query($nvp); 
$curl = curl_init(); 

curl_setopt($curl, CURLOPT_URL, $request); 
curl_setopt($curl, CURLOPT_VERBOSE, true); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$response = urldecode(curl_exec($curl)); 

curl_close($curl); 

奇怪的是,如果我請在瀏覽器中,我得到的成功和從端點令牌捲曲請求(同爲$ request變量), 我不知道是否有事做捲曲本身或如果它是別的東西,我試圖完全禁止我的防火牆 但錯誤仍然存​​在...

+0

嘗試登錄您發送出去,以確保沒有原始請求中請求剛開砍掉。另外,你是否有正在返回的關聯ID,我可以檢查日誌,看看是否有任何跡象表明我的結果。 –

+0

在記錄了curl函數發出的請求之後,我發現問題:http_build_query()函數將''替換爲'&'...修復後,它成功地獲得了正確的令牌。謝謝!! –

回答

0

您的數組格式不正確。

'L_PAYMENTREQUEST_0_NAME0' = 'A product name'; 

這是一個很好的方式開始調試