2011-12-27 14 views
3

私はPayPal Sandboxに登録して、売り手事前設定テストアカウントを追加しました。 ApplicationIdについては、Web上で見つかったものはほとんどありませんでした。最後に、事前承認をトリガーに、私が応答でエラーを持っている:解決済み:PayPalアダプティブペイメント認証に失敗しました

Array 
(
    [RESPONSEENVELOPE.TIMESTAMP] => 2011-12-26T19:39:54.500-08:00 
    [RESPONSEENVELOPE.ACK] => Failure 
    [RESPONSEENVELOPE.CORRELATIONID] => a052cd3abd4ea 
    [RESPONSEENVELOPE.BUILD] => 2279004 
    [ERROR(0).ERRORID] => 520003 
    [ERROR(0).DOMAIN] => PLATFORM 
    [ERROR(0).SUBDOMAIN] => Application 
    [ERROR(0).SEVERITY] => Error 
    [ERROR(0).CATEGORY] => Application 
    [ERROR(0).MESSAGE] => Authentication failed. API credentials are incorrect. 
) 

PHPコード:

$URL = 'https://svcs.sandbox.paypal.com/AdaptivePayments/Preapproval' 
    .'?startingDate='.date('Y-m-d\Z') 
    .'&endingDate='.date('Y-m-d\Z', strtotime('+1 year')) 
    .'&currencyCode=USD' 
    .'&maxTotalAmountOfAllPayments=500.00' 
    .'&maxAmountPerPayment=200.00' 
    .'&maxNumberOfPayments=30' 
    .'&[email protected]' 
    .'&cancelUrl=http://example.com/cancel' 
    .'&returnUrl=http://example.com' 
    .'&pinType=NOT_REQUIRED' 
    .'&requestEnvelope.errorLanguage=en_US'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $URL); 
curl_setopt($ch, CURLOPT_VERBOSE, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER 
    , array(
     'X-PAYPAL-SECURITY-USERID' => 'xxxx' 
     , 'X-PAYPAL-SECURITY-PASSWORD' => 'xxxx' 
     , 'X-PAYPAL-SECURITY-SIGNATURE' => 'xxxxxxxxxxxxxxxxxxxx' 
     , 'X-PAYPAL-APPLICATION-ID' => 'APP-80W284485P519543T' 
     , 'X-PAYPAL-REQUEST-DATA-FORMAT' => 'NV' 
     , 'X-PAYPAL-RESPONSE-DATA-FORMAT' => 'NV' 
    ) 
); 
$response = curl_exec($ch); 
$responseAr = explode('&', $response); 
$parsedResponseAr = array(); 
foreach($responseAr as $i => $value) { 
    $tmpAr = explode('=', $value); 
    if(!empty($tmpAr)) 
     $parsedResponseAr[strtoupper($tmpAr[0])] = urldecode($tmpAr[1]); 
} 
print_r($parsedResponseAr); 

をそれがあるため、誤ったアプリケーションIDのだろうか?アプリIDをSandboxで使用するには、最初に自分のアプリを登録する必要がありますか?

編集理由:ヘッダ配列の形式が正しくありません。 これは以下のようになりますの

array(
    'X-PAYPAL-SECURITY-USERID: xxx' 
    , 'X-PAYPAL-SECURITY-PASSWORD: xxxx' 
    , 'X-PAYPAL-SECURITY-SIGNATURE: xxxxxxxx' 
    , 'X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T' 
    , 'X-PAYPAL-REQUEST-DATA-FORMAT: NV' 
    , 'X-PAYPAL-RESPONSE-DATA-FORMAT: NV' 
) 

答えて

1
[ERROR(0).MESSAGE] => Authentication failed. API credentials are incorrect. 

ビットは離れて与えます!

+0

私は知っていますが、PayPalの認証情報を使用していますが、正しいものです。キーが間違っていることを示していますか? '[エラー(0).CATEGORY] =>アプリケーション' –

+0

APIの資格情報が間違っているとは、あなた自身が誤植をしている可能性があり、資格情報を再チェックして、それ以外の場合は新しいユーザーアカウントを作成しません(サンドボックス) – Philip

+0

新しく作成されたPayPal Sandboxアカウントで同じエラーが発生しました...私はまずアプリケーションを登録する必要があると思います。 –

関連する問題