PayPal Rest API直接支付

7
我目前通过PayPal接受付款。 我使用 PHP SDK处理REST API。 这是我处理网站支付的步骤:
  1. 创建付款,将意图设置为“销售”,将付款方式设置为“paypal”,将重定向url设置为确认页面。
  2. 在确认页面上,我存储返回的paymentId和PayerID(从查询字符串中)以在第3步中使用。
  3. 一旦用户确认订单,我就会执行付款,并传递在第2步中存储的paymentId和PayerID。
这很有效。 但是,我想给用户提供两种选择:通过PayPal(如上所述)或通过我的网站(使用PayPal直接付款)处理付款。
对于直接付款,我已成功创建了付款,将意图设置为“销售”,付款方式设置为“信用卡”,并传递适当的卡片详细信息。但是我不确定是否需要像上面那样执行付款,还是付款会自动进行。
如果我确实需要执行付款,那么如何获取paymentId和PayerID?如果我不需要执行付款,那么这就存在问题,因为我希望用户确认付款。我可以将创建付款的内容移动到用户确认直接付款订单后才执行,但是这样我无法在用户输入卡片详细信息后验证卡片详细信息。我想知道是否有更好的处理方法?
如果有人能帮助澄清这个问题,我将不胜感激。谢谢。
1个回答

1

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

关于无法让用户确认的问题,您可以采取以下几种措施:

因为我认为授权/捕获更接近您想要做的事情,所以让我再深入了解一下。您实际上正在授权资金(在用户的付款来源上保留它们),然后在稍后时间内捕获这些资金。这与酒店为杂项费用在您的信用卡上保留一定金额并在以后取消保留的原理是相同的。

您可以使用PayPal REST API完成所有这些操作。以下是您需要的功能:

授权后,用户可以确认,您可以验证卡片。一旦一切都得到批准,您就可以捕获资金。

我知道这对您来说不是问题,但我还是要提一下。使用授权/捕获功能,已授权的资金只能保证存在3天(荣誉期),但您可以在29天内继续尝试捕获资金。然而,在那3天之后,不能保证资金仍然存在。

希望这能帮到您。


感谢您解决了我的信用卡支付疑惑。但是我认为授权和捕获应该是为了推迟付款,直到您准备好发货。我认为最好使用第一种方法验证信用卡详细信息(不使用PayPal),然后将信息存储在用户会话中。然后,我可以发送标准的付款请求(意图为“销售”,付款方式为“信用卡”)。 - nfplee
1
同意,这就是我个人会做的事情。授权/捕获可以用于上述方法,但它并不是为此而设计的。 - Jonathan LeBlanc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接