2016-04-14 44 views
2

您好我目前嘗試實施以下:有人通過貝寶支付的東西 - 第三人應該收到他們的PayPal帳戶後價格的50%。因此,我總是想要遵循以下步驟:人員A支付10歐元,我收到10歐元,我支付5歐元給C人員。貝寶SDK賠付 - 無法捕捉異常和接收HTTP 400

第一部分是通過php中的paypal sdk工作,第二部分其他人都不盡如人意目前...)

這是我這

$payouts = new \PayPal\Api\Payout(); 

$senderBatchHeader = new \PayPal\Api\PayoutSenderBatchHeader(); 

$senderBatchHeader->setSenderBatchId(uniqid()) 
    ->setEmailSubject("Test."); 

$senderItem1 = new \PayPal\Api\PayoutItem(); 

$senderItem1->setRecipientType('Email') 
      ->setNote('Test.') 
      ->setReceiver('[email protected]') 
      ->setSenderItemId('test ' . uniqid()) 
      ->setAmount(new \PayPal\Api\Currency('{ 
        "value": "5.00", 
        "currency":"EUR" 
       }')); 


$payouts->setSenderBatchHeader($senderBatchHeader) 
    ->addItem($senderItem1); 

// For Sample Purposes Only. 
$request = clone $payouts; 

// ### Create Payout 
try { 
    $output = $payouts->createSynchronous($this->_api_context); 
} catch (PayPapl\Exception\PayPalConnectionException $ex) { 
      //todo add exception handler 
    dd('test'); 

    ResultPrinter::printError("Created Batch Payout", "Payout", null, $request, $ex); 
    exit(1); 
} 

dd('test'); 

代碼,我不能以某種方式捕獲錯誤。它說

PayPalConnection.php中的PayPalConnectionException線174: 當訪問https://api.sandbox.paypal.com/v1/payments/payouts?sync_mode=true時得到Http響應代碼400。

我正在實施這個使用laravel 5.1

任何想法?

回答

1

根據您的商業模式,REST API不是一個很好的選擇。 貝寶有適應性支付API,它可以讓你在許多不同的場景中從簡單到複雜的發送款項。因此,在你的情況下,你可以參考chained payment,發件人向主接收者支付一定數額,主接收者從中支付次要接收器。發送者只知道主要接收者,而不知道次要接收者。次要接收者只知道主要接收者,而不知道發送者。自適應付款演示download

+0

感謝我將有一個depper看看這個 –

1

在您的PayPal錯誤消息前面放上'\'。爲我工作。它的命名空間衝突。

try { 
    $output = $payouts->createSynchronous($this->_api_context); 
} catch (\PayPal\Exception\PayPalConnectionException $ex) { 
    //todo add exception handler 
    dd('test'); 
    ResultPrinter::printError("Created Batch Payout", "Payout", null, $request, $ex); 
    exit(1); 
}catch (\Exception $e){ 
    dd($e->getMessage(); 
} 

See this post

+0

感謝的人!這花了幾個小時。 –