Paypal SDK 支付 - 无法捕获异常并接收 http 400

Posted

技术标签:

【中文标题】Paypal SDK 支付 - 无法捕获异常并接收 http 400【英文标题】:Paypal SDK Payouts - cannot catch Exception and Receive http 400 【发布时间】:2016-08-06 14:30:40 【问题描述】:

您好,我目前尝试实施以下措施:有人通过贝宝支付某些东西 - 之后第三人应该在他们的贝宝账户上收到 50% 的价格。所以我总是想遵循以下步骤:A 支付 10 欧元,我收到 10 欧元,我向 C 支付 5 欧元。

第一部分是通过 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('test@paypalsandbox.de')
            ->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');

我无法以某种方式捕捉到错误。它说

PayPalHttpConnection.php 第 174 行中的 PayPalConnectionException: 访问https://api.sandbox.paypal.com/v1/payments/payouts?sync_mode=true时得到Http响应码400。

我正在使用 laravel 5.1 实现这个

有什么想法吗?

【问题讨论】:

【参考方案1】:

在您的贝宝错误消息前添加一个“\”。为我工作。它是命名空间冲突。

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

【讨论】:

【参考方案2】:

根据您的业务模型,REST API 不是一个好的选择。 Paypal 具有自适应支付 API,可让您在从简单到复杂的许多不同场景中汇款。因此,在您的情况下,您可以参考 chained payment,发件人向主要收款人支付金额,主要收款人从中支付次要接收器。发送者只知道主要接收者,不知道次要接收者。次要接收者只知道主要接收者,而不是发送者。自适应支付演示download.

【讨论】:

以上是关于Paypal SDK 支付 - 无法捕获异常并接收 http 400的主要内容,如果未能解决你的问题,请参考以下文章

paypal sdk for android中的授权和捕获可行吗?

通过信用卡使用 PayPal SDK 进行沙盒支付

react-paypal-button-v2 无法授权支付

使用 Rails 和“paypal-sdk-merchant”gem 将多个接收者添加到 Paypal Mass Pay

使用 PayPal-PHP-SDK 进行第三方支付的 Paypal 沙盒测试

Paypal 自适应支付无法在移动设备上运行