Php 贝宝批量支付API

Php 贝宝批量支付API,php,paypal,Php,Paypal,我正试图找出贝宝批量支付的最佳工作流程: 我的一切工作正常,即我可以发送大量支出,阅读和存储回复 我有一个Paypals服务类,它与Paypals API交互 // ... use myApp\Contracts\Payment; class PaypalService implements Payment { public function sendBatchPayout(...) { ... } public function getPayoutDeta

我正试图找出贝宝批量支付的最佳工作流程:

我的一切工作正常,即我可以发送大量支出,阅读和存储回复

我有一个Paypals服务类,它与Paypals API交互

// ...

use myApp\Contracts\Payment;

class PaypalService implements Payment
{
   public function sendBatchPayout(...)
   {
     ...
   }

  public function getPayoutDetails($payout_batch_id)
  {
   ...
  }
}

// .. etc
我想知道处理大额支付的理想流程是什么

例如:

  • 3个收件人需要获得X金额

  • 我是这样做的:

    创建批量付款

  • 这将返回一个带有“payout\u batch\u id”的响应,这是异步的

  • 在获取状态后,我是否立即打电话获取支付批次详细信息?还是有等待期

  • 我应该将响应的哪一部分存储在我的存储器/DB中,我为批量支付的每个接收者创建一个记录,我应该为这些记录中的每个分配“支付批处理id”吗

  • 第5点很重要,因为下次我希望发送付款时,我想从当前付款金额中扣除之前成功付款的金额

  • 请帮忙。多谢各位

    在获取状态后,我是否立即打电话获取支付批次详细信息?还是有等待期

    您可以定期检查状态,但理想情况下我会使用Webhook,以便在批处理/项目完成时通知您,而不是轮询。然后,如果您错过了事件通知(您的服务器已关闭),请通过/v1/notifications/webhooks events重新列出该通知,或者定期轮询自上次收到更新后是否超过了某个时间限制(可能是5/10/15/30/45天)

    我应该将响应的哪一部分存储在我的存储器/DB中,我为批量支付的每个接收者创建一个记录,我应该为这些记录中的每个分配“支付批处理id”吗

    我建议始终使用发件人\u批次\u id,以防您没有收到来自PayPal的回复,您将重新发送相同的发件人\u批次\u id,如果发送成功,您将收到相同的回复(防止重复支付)。应将其与结果付款\u批次\u id一起存储。要区分批次中的每个项目,请存储付款\u项目\u id。您可以根据付款\u批次\u id或付款\u项目\u id获取状态

    第5点很重要,因为下次我希望发送付款时,我想从当前付款金额中扣除之前成功付款的金额

    如果您已经发送了付款,并且该付款处于待定状态(或任何其他不确定状态),则您不应针对该金额再次发出付款。假设在您将请求发送到PayPal之前成功地从该点发送了资金,然后仅假设在您得到具体的失败场景时失败,否则您可能仍然要承担责任


    希望这有帮助

    如果您希望立即检索结果,您可以尝试同步支付。