【问题标题】:Paypal API : how to get order/payment details by custom parameterPaypal API:如何通过自定义参数获取订单/付款详情
【发布时间】:2023-02-21 11:25:29
【问题描述】:

我使用 Paypal 按钮让用户在我的网站上付款,付款后我通过 Paypal PDT 获得确认/付款的详细信息。

它工作完美,但有时会发生用户在 Paypal 付款后不返回我的网站的情况。所以,我无法读取返回 url 中的交易 ID 来调用 API 来获取付款详细信息。

最后:我在 Paypal 上的付款是正确的,但我的系统上也有一个未付款的订单。

我的想法是创建一个二次调用来获取付款详细信息以“手动”完成订单。但是,正如我所写的,我没有订单 ID 或交易 ID。

匹配我系统上的订单及其在 Paypal 上的付款的唯一方法是使用自定义参数我通过它发送订单 ID,如下所示:

我的问题:是否可以使用自定义参数作为过滤器通过 API 调用获取付款详细信息?

我查看了 Paypal REST API,我认为这些调用应该可以完成工作:

/v2/checkout/orders/{id} /v2/payments/captures/{capture_id}

就我而言,这样的事情会很棒:

/v2/checkout/orders/{custom_id=MyOrdeId} /v2/payments/captures/{custom_id=MyOrdeId}

我希望我的问题很清楚。

谢谢

【问题讨论】:

    标签: rest paypal-rest-sdk


    【解决方案1】:

    custom_id 是您自己使用的任意元数据字段。它没有索引,您不能通过它进行查询。

    如果您稍后需要完成订单的异步通知,您可以订阅 webhook 事件。然而,这对于正常的支付处理来说不是一个好的解决方案,应该保留在需要的情况下(例如退款或争议等结账后事件的通知)。

    对于定期结帐,您应该做的是使用即时捕获 API 响应来接收有关所有一次性付款的详细信息。这最好与 JS SDK 一起用于批准流程,只有在一切都成功并已记录后才重定向到新的感谢/成功页面(如果您需要一个单独的页面)。

    按照standard checkout integration guide 将在您的服务器上调用两条路线,一条用于创建订单,一条用于捕获订单。当捕获路由被调用时,它应该(在服务器路由本身内)验证捕获响应 API 中的总金额是否正确,然后您可以立即将订单保存在您的记录中,前将 JSON 响应转发给前端调用者。

    前端调用者 JS 可以在同一页面上显示成功消息(无重定向解决方案),或者仅在成功捕获发生后才重定向。


    另一件需要注意的事情是 custom_id 用于任意元数据,但是如果您的系统中有一个字段是您自己的唯一结帐/订单 ID,那么保存它的最佳字段是 invoice_id 。这将阻止以后为相同的 invoice_id 付款,并且唯一的 invoice_id 字段实际上已被索引,并且可以在 www.paypal.com 界面中搜索以定位交易。

    【讨论】:

      猜你喜欢
      • 2017-02-08
      • 2014-01-03
      • 2020-08-09
      • 2016-03-07
      • 2012-09-10
      • 2012-03-05
      • 2021-09-17
      • 2011-09-16
      • 1970-01-01
      相关资源
      最近更新 更多