PayPal Rest API 直接付款

Posted

技术标签:

【中文标题】PayPal Rest API 直接付款【英文标题】:PayPal Rest API Direct Payments 【发布时间】:2016-05-20 21:04:07 【问题描述】:

我目前的网站通过 PayPal 接受付款。我使用 REST API 的 php SDK 来处理这个问题。这是我通过我的网站处理付款的步骤:

    Create a payment,intent 设置为“Sale”,付款方式设置为“paypal”,重定向 url 设置为确认页面。 在确认页面上,我存储了返回的 paymentId 和 PayerID(来自查询字符串)以在步骤 3 中使用。 一旦用户确认了订单,我就会 execute the payment 传递在步骤 2 中存储的 paymentId 和 PayerID。

这是一种享受。不过,我想为用户提供通过 PayPal(如上)或通过我的网站(使用 PayPal 直接付款)处理付款的选项。

对于直接付款,我已经能够通过将意图设置为“销售”、付款方式设置为“信用卡”并传入适当的卡详细信息来成功创建付款。但是我不确定我是否需要像上面那样在之后执行付款,或者付款是否会自动完成。

如果我确实需要执行付款,那么如何获取 paymentId 和 PayerID?如果我不需要执行付款,那么这会出现问题,因为我希望用户确认付款。我可以将创建付款的内容移动到仅在用户确认直接付款的订单后才执行,但是在用户输入卡详细信息后我无法验证它们。我想知道是否有更好的方法来处理这个问题?

如果有人能帮助解决这个问题,我将不胜感激。谢谢

【问题讨论】:

【参考方案1】:

您只需要处理信用卡的第一步(创建付款)(详见此处:https://developer.paypal.com/docs/integration/direct/accept-credit-cards/)。

关于无法让用户确认的其他问题,您可以做一些事情:

将“确认”移至实际处理卡之前 改用身份验证/捕获方法 (https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/authcapture/)

由于我认为 auth/capture 更接近您的想法,因此让我进一步深入研究。您实际上所做的是授权资金(将它们保存在用户的付款来源上),然后在以后获取它们。这与酒店暂停您的信用卡以支付杂费并随后取消暂停的前提相同。

您可以使用 PayPal REST API 完成所有这些操作。以下是您正在寻找的功能:

授权资金:https://developer.paypal.com/docs/api/#authorizations 获取资金(稍后):https://developer.paypal.com/docs/api/#captures 如果用户不想处理,则取消(取消)授权持有的资金:https://developer.paypal.com/docs/api/#void-an-authorization

在您授权之后,用户可以确认并且您可以验证卡。一切都通过后,您就可以进行拍摄了。

我知道这对你来说不是问题,但我还是会提到它。使用 auth/capture,授权资金将保证只有 3 天(兑现期),但您可以继续尝试捕获资金 29 天。但是,在这 3 天之后,无法保证资金会到位。

希望有帮助

【讨论】:

感谢您解决了我对信用卡支付的困惑。但我认为授权和捕获将用于推迟付款,直到您准备好发货。我认为最好使用第一种方法并验证卡详细信息(不使用 PayPal),然后将信息存储在用户的会话中。然后我可以发送一个标准的付款请求(意向“销售”和付款方式“信用卡”)。 同意,这就是我个人会做的。 auth/capture 可以用于上面的方法,但它并不是真正的意思。

以上是关于PayPal Rest API 直接付款的主要内容,如果未能解决你的问题,请参考以下文章

如何在节点中使用 paypal-rest 直接付款?

接受预付卡 PayPal REST API

PayPal REST SDK 已弃用

Paypal API 直接:买方到卖方付款

PayPal API 直接付款流程

使用 Paypal REST API 创建付款