2016-07-16 4 views
2

Paypal 보관함을 사용하여 Paypal 보관소 신용 카드로 결제하려고하는데, 알아낼 수 없습니다. 오류를 해결할 방법이없는 것처럼 보입니다. 그것도 작동하거나 작동하지 않습니다, 나는 그것을 작동 경험하지 않았습니다.Paypal 보관소 신용 카드 청구 실패 문제를 해결하는 방법

카드 목록을 가져올 수 있지만 특정 카드를 가져올 수는 있지만 그 카드 중 하나를 지불 할 수는 없습니다.

저는 PHP Paypal SDK를 사용하고 있습니다. Paypal이 내 요청으로 보는 것은 다음과 같습니다.

{ 
    "body": { 
     "intent": "sale", 
     "payer": { 
      "payment_method": "credit_card", 
      "funding_instruments": [ 
       { 
        "credit_card_token": { 
         "credit_card_id": "CARD-6XP216179L970340WK6BNY5A", 
         "payer_id": "1" 
        } 
       } 
      ] 
     }, 
     "transactions": [ 
      { 
       "amount": { 
        "currency": "USD", 
        "total": "26.01" 
       } 
      } 
     ] 
    }, 
    "header": { 
     "x-pp-silover": "name\\u003dSANDBOX3.API.1\\u0026silo_version\\u003d1880\\u0026app\\u003dplatformapiserv\\u0026TIME\\u003d1702332759\\u0026HTTP_X_PP_AZ_LOCATOR\\u003d", 
     "content-length": "233", 
     "paypal-request-id": "323223593916288146862657311204", 
     "x-slr-retry": "SLR-RETRY-EMPTY", 
     "accept": "*/*", 
     "client-auth": "No cert", 
     "host": "api.sandbox.paypal.com", 
     "user-agent": "PayPalSDK/PayPal-PHP-SDK 1.7.3 (platform-ver\\u003d5.6.23-2+deb.sury.org~xenial+1; bit\\u003d64; os\\u003dLinux_4.4.0-21-generic; machine\\u003dx86_64; crypto-lib-ver\\u003d1.0.2h; curl\\u003d7.47.0)", 
     "x-slr-nobounce": "true", 
     "x-slr-orig-script_uri": "https://api.sandbox.paypal.com/v1/payments/payment", 
     "x-pp-corrid": "793fa20aaec8b", 
     "pp_remote_addr": "99.99.99.1", 
     "content-type": "application/json", 
     "authorization": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxl4S0" 
    }, 
    "additional_properties": {}, 
    "method": "POST" 
} 

내가 현재 할당 한 것보다 IP가 수정되었습니다. 그것을 게시하는 것이 보안 문제인지는 모르겠지만 비밀이 아닙니다.

내가 사용하고있는 코드는 다음과 같습니다.

$apiContext = new \PayPal\Rest\ApiContext(
      new \PayPal\Auth\OAuthTokenCredential(
       $clientId, 
       $secret 
       ) 
      ); 

     $cardToken = new CreditCardToken(); 
     $cardToken->setCreditCardId($paymentMethod->getProcessorId()); 
     $cardToken->setPayerId("1"); 

     $fi = new FundingInstrument(); 
     $fi->setCreditCardToken($cardToken); 

     $payer = new Payer(); 
     $payer->setPaymentMethod("credit_card") 
     ->setFundingInstruments(array($fi)); 
     $amount = new Amount(); 
     $amount->setCurrency("USD") 
     ->setTotal("26.01"); 

     $transaction = new Transaction(); 
     $transaction->setAmount($amount); 

     $payment = new Payment(); 
     $payment->setIntent("sale") 
     ->setPayer($payer) 
     ->setTransactions(array($transaction)); 
     print_r($payment); 

      $payment->create($apiContext); 
      if ($payment->getState() == 'approved') { 
       return TRUE; 
      } 
      return FALSE; 
     } catch (Exception $ex) { 
      print_r($ex); 
     } 

$ paymentMethod-> getProcessorId을() 나는 페이팔의 샌드 박스에서 검색 할 수있는 유효한 신용 카드 볼트 ID가있다.

다음은 Paypal의 답변입니다.

{ 
    "status": 500, 
    "duration_time": 135, 
    "body": { 
     "message": "An internal service error occurred.", 
     "information_link": "https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR", 
     "name": "INTERNAL_SERVICE_ERROR", 
     "debug_id": "793fa20aaec8b" 
    }, 
    "additional_properties": {}, 
    "header": { 
     "Content-Length": "209", 
     "Content-Language": "*", 
     "X-SLR-RETRY": "500", 
     "CORRELATION-ID": "793fa20aaec8b", 
     "Date": "Fri, 15 Jul 2016 23:53:39 GMT", 
     "Connection": "close", 
     "Paypal-Debug-Id": "793fa20aaec8b", 
     "PROXY_SERVER_INFO": "host\\u003dslcsbplatformapiserv3001.slc.paypal.com;threadId\\u003d569", 
     "Content-Type": "application/json" 
    } 
} 

내가 알고있는 것처럼, 내부 오류는 단지 뭔가 잘못 됐음을 의미하지만 올바르지 않은 것을 말하지는 않습니다. 함께 일하는 것은 짜증나. 문제 해결에 도움이되는 것은 아무것도주지 못한다. Paypal SB 대시 보드를 통해 조사 할 것도 없다.

답변

2

내부 오류이므로 잘못된 정보를 전달하지 않습니다. 여기에 대한 답변을받는 것이 어려울 것입니다.

PayPal에서 응답을받는 가장 좋은 방법은 https://www.paypal-techsupport.com/에 계정을 생성하고 거기에 같은 질문을 debug_id와 함께 게시하는 것입니다. (사이트 바닥 글에서 지원 담당자에게 문의)를 클릭하십시오. 그들은 어떤 종류의 오류인지를 알려줍니다. 나는 그들로부터 도움을 받기에 성공적인 기록을 가지고있다.

내부 오류 인 경우 https://github.com/paypal/PayPal-PHP-SDK의 경우 두 번째 가장 좋은 장소 인 응답 시간이 너무 길면 debug_id를 게시합니다.

+1

나는 그것을했다. 그리고 그들은 나에게 돌아갔다. 이 카드 번호를 사용하여 테스트해야했습니다. VISA : 4716 3248 7603 0777 마스터 카드 : 5453 9874 8085 6045 – Halfstop

+0

PayPal 샌드 박스에서 과도하게 사용되어 이상한 행동을 유발하는 신용 ​​카드가 거의 없습니다. 청구서 수신 주소가 50 만 개가 넘는 신용 카드를 생각해보십시오. 이러한 문제는 실시간으로 잘 다루어 지지만 샌드 박스에서는 이러한 문제가 발생합니다. 가장 좋은 방법은 고유 한 신용 카드를 사용하는 것입니다. https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1413&viewlocale=en_US&direct=en의 4 단계를 사용하여 만들거나 http://www.getcreditcardnumbers.com/을 만들 수 있습니다. 거대한 벌크. –