贝宝并行付款和退款

Posted

技术标签:

【中文标题】贝宝并行付款和退款【英文标题】:PayPal Parellel payments and refunds 【发布时间】:2014-06-25 06:57:34 【问题描述】:

我有一个关于并行付款和退款的问题。我们正在开发一个设置并行支付的应用程序,我们自己作为 My Store 接收方,服务提供商作为卖方接收方。我们为二级收款人提供了退还全部款项的机制。

(来源:ohozaa.com)

我们想知道的是,当卖家收款人的贝宝账户中没有资金时会发生什么?根据在沙盒中的测试以及我们所读到的内容,退款的卖方接收方部分似乎处于待处理状态(我们假设,因为资金是从关联的银行账户中提取的)。三件事:

我的商店收款人是否已全额支付退款,现在正在等待卖家收款人付款。是否暗示,此时 My Store 接收器已自掏腰包?

如果无法从卖家收款人关联的银行账户中提取资金会怎样?

如果我们尝试从未经验证的用户那里退款,但他们的贝宝帐户中没有资金,会发生什么情况?再一次,My Store 收款人是否全额支付退款,并希望在卖家收款人有资金时收取他们的部分?

【问题讨论】:

这些问题最好在 mpaypals 自己的论坛上提出 PayPal 将 *** 视为他们自己的论坛,并在此处为此类问题的人们提供链接,因此对于四处奔波的人们来说,整个情况有点尴尬。令人沮丧。实际上,我自己一直在试图弄清楚这个特定的问题,所以我跳到这里希望听到 PayPal 代表的意见(因为过去几周他们似乎一直在这里实际回答问题。) 与其说是编程问题,不如说是他们自己的 api(system) 是如何工作的。他们不应该在这里发送这些问题 【参考方案1】:

除非我对情况有误解,否则可能会出现三个问题/结果。

您提交付款以支付 mystore@test.com 10 美元和 Seller1@test.com 90 美元,总计 100 美元:

    https://svcs.sandbox.paypal.com/AdaptivePayments/Pay

    'currencyCode' => 'USD',
    'actionType' => 'PAY',
    'receiverList.receiver(0).email' => 'mystore@test.com',
    'receiverList.receiver(0).amount' => '10',
    'receiverList.receiver(1).email' => 'seller1@test.com',
    'receiverList.receiver(1).amount' => '90',
    'requestEnvelope.errorLanguage' => 'en-US',

buyer@test.com 想要退款:

1) 如果您有 API 权限为 Seller1@test.com 提交退款,您可以退还他的部分交易以及您的部分。您可以通过传递 receiverList 变量来做到这一点:

    https://svcs.sandbox.paypal.com/AdaptivePayments/Refund

    'payKey' => $thepaykey,
    'receiverList.receiver(0).email' => 'mystore@test.com',
    'receiverList.receiver(0).amount' => '10',
    'receiverList.receiver(1).email' => 'seller1@test.com',
    'receiverList.receiver(1).amount' => '90',
    'requestEnvelope.errorLanguage' => 'en_US',
    'currencyCode' => 'USD',

1.1) mystore@test.com 和seller1@test.com 都有资金,立即退款。

1.2) mystore@test.com 有资金,但 Seller1@test.com 没有。电子支票从 Seller1@test.com 的银行账户提交以支付退款,在银行清除之前,状态将为PENDING。 mystore@test.com 只支付了buyer@test.com 10 美元。买家@test.com 将有两笔交易,一笔 10 美元的已完成交易,另一笔 90 美元的待处理交易。如果 90USD 交易失败,PayPal 将再次尝试向银行代理。如果再次失败,seller1@test.com 的交易将进入 FAILED 状态,并且可能无法通过交易退款。退款此交易的唯一方法是汇款。

2) 如果您没有 API 权限来为 Seller1@test.com 提交退款,您将无法在请求中通过他的接收者。如果这样做,整个退款将失败。您不能超过最初支付的金额(10 美元)

3) 如果seller1@test.com 没有被确认,或者没有在paypal/sandbox 中创建账户,交易将会PENDING,在等待中买家可以点击在交易旁边取消。您也可以在交易显示COMPLETED之前取消交易,方法是提交相应金额的退款。

如果这是一个连锁支付,它可能会有不同的结果。

【讨论】:

以上是关于贝宝并行付款和退款的主要内容,如果未能解决你的问题,请参考以下文章

通过支付网关进行并行支付? (贝宝自适应支付除外)

使用贝宝自适应付款默认显示付款详情

贝宝平行支付

通过贝宝付款完成后如何获取交易详情

无法在沙盒中测试付款撤销 webhook 事件。贝宝 REST API

Paypal 自适应付款退款错误(代码:589061)