2015-06-04 2 views
0

Отредактировано: Возможно, у нас возникли проблемы с учетной записью предприятия. Кто-нибудь знает, как создать бизнес-аккаунт для RestApi?paypal live - получение кода ответа 400 PERMISSION_DENIED с RestAPI

Я сделал оплату RestApi в symfony с помощью paypal rest-api sdk. Все работает правильно в песочнице, но не работает вживую.

  • Счет PayPal является Активизированный платежное решение
  • счета выставиться для сайта Платежи Стандартный
  • Api клиента и секретный ключ изменен жить полномочия
  • Api режим контекста также изменили жить

Вот код:

$clientId = $this->container->getParameter('paypal_client_id'); 
$secret = $this->container->getParameter('paypal_secret'); 
$paypalMode = $this->container->getParameter('paypal_mode'); // live 
$oauthCredential = new OAuthTokenCredential($clientId, $secret); 
$apiContext = new ApiContext($oauthCredential); 
$apiContext->setConfig(
    [ 
     'log.LogEnabled' => true, 
     'log.FileName' => $logDir.'/PayPal.log', 
     'log.LogLevel' => 'FINE', 
     'mode' => $paypalMode, 
    ] 
); 

$payer = new Payer(); 
$payer->setPaymentMethod("paypal"); 

$item = new Item(); 
$item->setName($subTl->getName()) 
    ->setDescription($subTl->getDescription()) 
    ->setCurrency('EUR') 
    ->setQuantity('1') 
    ->setTax('0') 
    ->setPrice($subPrice); 

$items[] = $item; 
$sumPrice = 0; 
/** @var Item $item */ 
foreach ($items as $item) { 
    $sumPrice += (int)$item->getPrice(); 
} 

$itemList = new ItemList(); 
$itemList->setItems([$item]); 

$details = new Details(); 
$details->setShipping('0') 
    ->setTax('0') 
    ->setSubtotal($subPrice); 

$amount = new Amount(); 
$amount->setCurrency("EUR") 
    ->setTotal($sumPrice) 
    ->setDetails($details); 

$transaction = new Transaction(); 
$transaction 
    ->setAmount($amount) 
    ->setItemList($itemList) 
    ->setDescription("Payment description"); 

$urls = new RedirectUrls(); 
$urls 
    ->setCancelUrl($baseUrl . $this->cancelUrl) 
    ->setReturnUrl($baseUrl . $this->successUrl); 

$payment = new Payment(); 
$payment->setIntent("sale") 
    ->setPayer($payer) 
    ->setTransactions([$transaction]) 
    ->setRedirectUrls($urls); 

$payment->create($apiContext); 

Тогда я получил утверждение_url, перенаправляя пользователя на это. После оплаты он возвращает меня к моему обратному URL-адресу.

$clientId = $this->container->getParameter('paypal_client_id'); 
$secret = $this->container->getParameter('paypal_secret'); 
$oauthCredential = new OAuthTokenCredential($clientId, $secret); 
$apiContext = new ApiContext($oauthCredential); 
$logDir = $this->createLogDir(); 
$apiContext->setConfig(
    [ 
     'log.LogEnabled' => true, 
     'log.FileName' => $logDir.'/PayPal.log', 
     'log.LogLevel' => 'FINE', 
     'mode' => $paypalMode, 
    ] 
); 

$query = $request->query->all(); 
if (isset($query['success']) && $query['success'] == 'true') { 
    $paymentId = $query['paymentId']; 
    $payment = Payment::get($paymentId, $apiContext); 
    $execution = new PaymentExecution(); 
    $execution->setPayerId($query['PayerID']); 

    try { 
     $payment->execute($execution, $apiContext); 

     try { 
      $payment = Payment::get($paymentId, $apiContext); 
     } catch (PayPalConnectionException $ex) { 
      // fail 1 
     } 
    } catch (PayPalConnectionException $ex) { 
     // fail 2 
    } 
    if ($payment->getState() == 'approved') { 
     // EVERYTHING IS OK 
    } 
} 

Im получение "глючить 2", и журнал является следующее:

PayPal\Core\PayPalHttpConnection: ERROR: Got Http response code 400 when accessing https://api.paypal.com/v1/payments/payment/PAY-66T29544VN4574806KVYBFFA/execute. {"name":"PERMISSION_DENIED","message":"No permission for the requested operation","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#PERMISSION_DENIED","debug_id":"976cbb71b5e10"} 
+0

В соответствии с сообщением об ошибке «Состояние платежа не разрешает такой запрос». Каково состояние платежа при попытке его выполнить? –

+0

@JohnCartwright это состояние платежа «создано» – ppeter

+0

Извините. Мне все кажется правильным. Слишком долго, пока я использовал paypal (если ваш плательщик действителен). –

ответ

0

Это не код. PayPal не поддерживает такой любовный сайт с бизнес-счетами, которые мы хотели бы жить.

Смежные вопросы