Javascript Paypal在故障切换中的工作原理

Javascript Paypal在故障切换中的工作原理,javascript,node.js,express,paypal,Javascript,Node.js,Express,Paypal,我为具有以下体系结构的客户工作: 后端 Java服务器 前端 代理(节点JS+Express应用程序) 我们向服务器发出的所有请求都需要通过代理(安全功能) 我们需要在应用程序中集成Paypal API,因此我们为OK和KO回调创建了两个操作(比如/proxy/paymentOK和/proxy/paymentKO),它们调用我们的服务器并更新记录的状态 现在是解决我们问题的时候了: 假设用户进行了付款。因此,paypal将调用我们的OK回调(/proxy/paymentOK)。若代

我为具有以下体系结构的客户工作:

  • 后端
    • Java服务器
  • 前端
    • 代理(节点JS+Express应用程序)
我们向服务器发出的所有请求都需要通过代理(安全功能)

我们需要在应用程序中集成Paypal API,因此我们为OK和KO回调创建了两个操作(比如
/proxy/paymentOK
/proxy/paymentKO
),它们调用我们的服务器并更新记录的状态

现在是解决我们问题的时候了:

  • 假设用户进行了付款。因此,paypal将调用我们的OK回调(
    /proxy/paymentOK
    )。若代理和服务器之间出现问题(例如,电源或网络故障),那个么付款会发生什么情况?付款是否会自动退还给客户?贝宝怎么知道打电话后一切都很好

  • 在发送paypal请求之前,我将保留一些值,因此我有一个状态为“待付款”的记录的ID。贝宝需要知道这个参数,因为无论付款接受还是拒绝,我都必须用
    接受
    拒绝
    状态更新记录。如何将此ID发送给Paypal,以及如何在Paypal进行回调时获取此ID


谢谢大家

过程如下:

  • 创建付款 这只是声明有关交易的详细信息,但不会让用户参与支付。在第2步之前,您可以随时编辑付款。您将收到此付款的ID和URL

  • 用户付费 您为用户提供交易的url,即user pay。您会收到通知(您不应该信任OK/KO回调,而应该信任付款id)

  • 批准付款 您检查付款状态,如果付款处于挂起状态,则执行/批准付款。交易完成了

  • 如果崩溃步骤1,无需担心,事务甚至没有启动。您可以安全地启动另一个

    如果您崩溃步骤2,当重新启动服务器时,您拥有所有的支付ID,并且应该为每个ID执行步骤3

    如果您崩溃步骤3,您可以安全地重做,paypal将通知您此付款是否已执行,并提供其状态


    注意:即使您丢失了信息,也可以随时检索。(或获取一个)

    很长时间我没有进入贝宝,但你应该有一个交易ID,它允许你随时检查交易状态。如果出现问题,您可以检查所有挂起的事务状态,并从中断处继续处理。@cyrbill,但我会在调用Paypal API后收到该事务ID作为响应?谢谢@cybil的回答。我希望第3步更加自动化,但这似乎是不可能的:(.他们的是第2步结束时的其他方法(通知部分)这更直接,但你仍然需要批准付款。第一步是你和用户讨论价格和物品。第二步是用户把钱扔到桌子上。第三步是你拿钱。正如你所看到的,购买要到第三步才能完成。如果你在桌子上找到钱,你必须找到哪个客户把钱扔到桌子上,以及是为了什么物品:)