我的测试服务器上可以很好地进行并行支付,也就是说,根据我从开发者贝宝网站下载的parallel.php文件示例,我可以一次并行向一个人以上汇款。
我还下载了preapproval_flow.php文件,但在代码中,我看不到允许我设置并行支付接收器的变量/数组,甚至看不到单个接收器。
是否不可能预先批准使用贝宝api的并行支付?
如果可能的话,我该怎么做?
使用直接平行支付,我可以使用以下设置支付的平行收款人:
$receiverEmailArray = array(
'email0',
'email1',
'email2',
'email3',
'email4',
'email5',
'email6',
'email7',
'email8',
'email9'
);
根据cms.paypal.com和x.com的说法,preapproval_flow有一个名为feesPayer
的选项,文档中写道:
SENDER–发件人支付所有费用(针对个人,隐含简单/平行支付;不要用于链式或单边支付)
大胆的一点,告诉我,可以进行预先批准的平行付款,但我不知道如何发送收件人。。。
此外,在x.com上,它说:
开发商和商人可以联合起来;
- 平行和预先批准的付款
预批准的第一步是从买家那里获得。
这种预先批准不与任何特定的卖家挂钩,而是与API呼叫者挂钩,它允许您在未来进行支付API呼叫,而无需买家确认。
预审批流是一个独立于支付流的API调用。在其中,您可以指定要预审批的总金额、预审批有效的开始日期和结束日期,以及其他一些参数。(有关完整规范,请参阅自适应支付开发指南的第8章:https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_AdaptivePayments.pdf)
在这个API调用中,您将买家重定向到PayPal网站,他将在那里批准未来付款,最多您指定的金额。(例如,如果您指定的总金额为1000美元,买家可以进行20次50美元的购买,或1次1000美元的大额购买)
一旦买家批准,你就有权向他收取费用(以预先批准代币PA-xxxxxxxxxxxxxx
的形式,但目前没有资金易手。
现在您有了代币,您可以继续进行并行支付API调用,就像您现在所做的那样,但您将指定一个附加参数:preapprovalKey=<The PA key obtained previously>
(您还需要确保actionType
设置为PAY)
一旦您进行此API调用,因为PayPal看到您已经获得了买家的许可(以批准的PA-key的形式),它将立即将资金转移到指定的接收者。买家没有必要被重定向来批准这笔付款,因为他已经预先批准了。(看到这里的逻辑吗?)
综上所述:
- 调用预先审批API,以获得向买方收费的权限
- 调用Pay API(包括步骤1中的PA密钥)以在给定的权限上执行