2017-04-24 3 views
1

페이팔 발생 공인 지불에게 다시 인증 할 수 없습니다페이팔 : 공인 결제 오류를 다시 인증 할 수 없습니다 : 내부 서비스 오류가

다음

그것은 오류

stdClass Object 
(
    [name] => INTERNAL_SERVICE_ERROR 
    [message] => An internal service error occurred. 
    [information_link] => https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR 
    [debug_id] => b220155a9c70e 
) 

아래에 있습니다 내 코드

$clientId = 'XXXXX'; 
$secret = 'XXXX'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token"); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERPWD, $clientId . ":" . $secret); 
$result = curl_exec($ch); 

if (empty($result)) { 
    die("Error: No response."); 
} else { 
    $json = json_decode($result); 
    //echo "<pre>"; 
    //print_r($json); 
    //exit; 
    $token_type = $json->token_type; 
    $access_token = $json->access_token; 
    $nonce = $json->nonce; 

    //echo "Authorization: " . $token_type . " " . $access_token; 

    if (!empty($token_type) && !empty($access_token)) { 

     // START REAUTHORIZE PAYMENT 
     $authorizationId = 'AF998724VR277443T'; 
     $currency = 'USD'; 
     $amount = '20.00'; 
     $data = '{ 
        "amount": { 
        "total": "' . $amount . '",      
        "currency": "' . $currency . '" 

        } 
       };'; 


     $ch1 = curl_init(); 
     curl_setopt($ch1, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/payments/authorization/" . $authorizationId . "/reauthorize"); 
     curl_setopt($ch1, CURLOPT_POST, true); 
     curl_setopt($ch1, CURLOPT_POSTFIELDS, $data); 
     curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch1, CURLOPT_HTTPHEADER, array(
      "Content-Type: application/json", 
      "Authorization: " . $token_type . " " . $access_token, 
      "Content-length: " . strlen($data)) 
     ); 

     $result1 = curl_exec($ch1); 
     if (empty($result1)) { 
      die("Error: No response."); 
     } else { 
      $json1 = json_decode($result1); 
      echo "<pre>"; 
      print_r($json1); 
      exit; 
      //echo $json1->id; 
     } 
     // END REAUTHORIZE PAYMENT 
    } 
} 

입니다 https://developer.paypal.com/docs/api/payments/#authorization_reauthorize

내가 빠진 부분. 위의 WAMP 코드를 실행하고 있습니다. 페이팔 당으로

: 세 가지 일 명예 기간 승인 후

당신이 지불을 재 인증 할 수 만료됩니다.

답변

0

권한 부여 ID가 ​​이미 재 승인되었고 아직 명예 기간 내에있는 것으로 보입니다. 따라서 PayPal은 Reauthorization을 허용하지 않습니다. 명예 기간이 만료 된 후에 다시 시도 할 수 있습니다.

+0

3 일 명예 기간 그것은 권한 부여 ID가 ​​이미 재 인증되어 –

+0

재 인증없는 것하고 재 인증 ID가 내부에 여전히 및 만료 이미 문제가되고 관련이있을 수 있습니다 명예 기간. –

+0

인증 ID를 확인하는 방법은 이미 다시 인증 되었습니까? –

0

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

HTTPS 링크를 추가,

+0

없습니다. 여전히 같은 오류를주고 :( –

+0

가 ($의 채널은, CURLOPT_SSL_VERIFYPEER, 거짓이) curl_setopt을 시도, curl_setopt은 ($의 채널은, CURLOPT_SSL_VERIFYHOST, 거짓이). 모두 curl_init에서 ()가 –

+0

시도 같은 오류를 @Anyone_ph –