我试图找出贝宝批量支付的最佳工作流程:
我有所有的工作,即我可以发送批量支付,阅读和存储的回应。
我有一个与Paypals交互的PaypalService类。
// ...
use myApp\Contracts\Payment;
class PaypalService implements Payment
{
public function sendBatchPayout(...)
{
...
}
public function getPayoutDetails($payout_batch_id)
{
...
}
}
// .. etc我想知道什么是处理批量支付的理想过程。
例如:
请帮帮忙。谢谢。
发布于 2017-03-06 23:52:22
我是否会打电话得到支付批处理的详细信息后,立即得到状态?还是有等待期?
您可以定期检查状态,但理想情况下,我将使用Webhooks,以便在完成批/项时通知您,而不是轮询。然后,如果您错过了事件通知(您的服务器关机),或者通过/v1/notifications/webhooks重新列出通知,或者定期轮询自上次收到更新(可能是5/10/15/30/45天)后超过一定时间限制的事件。
我要将响应的哪一部分存储在存储/数据库中,我为批量支付的每个接收方创建一个记录,是否应该将“payout_batch_id”分配给每个记录
我建议您始终以这种方式使用sender_batch_id,以防您无法从PayPal获得响应,您将重新发送相同的sender_batch_id,如果它通过,您将得到相同的响应(防止重复支付)。这应该和结果的payout_batch_id一起存储。若要区分批处理存储payout_item_id中的每个项,请执行以下操作。您可以根据payout_batch_id或payout_item_id获取状态。
第五是重要的,因为下次我希望发送一个支出,我想从当前的支付金额中扣除以前成功支付的金额。
如果您已经发送了支付,并且它正在挂起(或任何其他不确定状态),则不应该为该金额发出另一笔支出。假设在您将请求发送到PayPal之前成功地发送了资金,然后假设它失败了,如果您得到了具体的失败场景,否则您可能仍然要承担责任。
希望这能帮上忙
https://stackoverflow.com/questions/32187470
复制相似问题