如何完成 paypal 付款中的待处理交易

How to complete pending transactions in paypal payouts

我正在尝试在 Paypal 中实现单一支付功能。我参考了Paypal的文档here给出的示例代码。一切似乎都在按顺序进行,但 PayPal 给出的响应表明:"batch_status": "PENDING"。这是我的支付函数:

public function payoutWithPaypal()
{
    $request_amount = session()->get('request_amount');
    $transaction_id = session()->get('transaction_id');
    $receiver_email = session()->get('receiver_email');

    $payouts = new \PayPal\Api\Payout();
    $senderBatchHeader = new \PayPal\Api\PayoutSenderBatchHeader();
    $senderBatchHeader->setSenderBatchId(uniqid())->setEmailSubject("You have a Payout!");
    $senderItem = new \PayPal\Api\PayoutItem();
    $senderItem->setRecipientType('Email')
                ->setNote('Thanks for your patronage!')
                ->setReceiver($receiver_email)
                ->setSenderItemId("001")
                ->setAmount(new \PayPal\Api\Currency('{
                            "value":"'.$request_amount.'",
                            "currency":"USD"
                        }'));

    $payouts->setSenderBatchHeader($senderBatchHeader)->addItem($senderItem);
    $request = clone $payouts;
    
    try {
        $output = $payouts->create(array('sync_mode' => 'false'), $this->_api_context);

    } catch (\Exception $ex) {
         dd($ex);
    }

    return $output;

}

提供的解决方案here并没有真正解决我的问题。

分批付款运行。对于以 'PENDING' 开头的批处理状态是正常的。批次中每笔付款的状态很重要。您可以根据需要查询它们,如果它们是单独挂起的,可能会给出一些原因。

PayPal 付款在沙盒或实时中处于待处理状态的最常见原因是,如果没有 PayPal 帐户具有确认电子邮件(分别在沙盒或实时中)付款发送到的地址。收款人有 30 天的时间创建帐户 and/or 确认其帐户中的电子邮件以接受付款,否则将在 30 天后自动退款。在此期间,提醒会发送到该电子邮件。