我该如何在PayPal JavaScript中恢复/停止交易

问题描述

我是Angular的新手,我正在尝试将Paypal集成为支付网关。我不知道要遵循什么流程

  paypal
  .Buttons({
    createOrder: (data,actions) => {
      return actions.order.create({
        purchase_units: [
          {
            description: this.data.description,amount: {
              currency_code: 'EUR',value: 200
            }
          }
        ]
      });
    },onApprove: async (data,actions) => {
      console.log(data);
      this.bookPackage(data);

    },onError: err => {
      console.log(err);
    }
  })
  .render(this.paypalElement.nativeElement);

我假设我致电支付网关进行交易,如果交易成功,我将致电我的服务器以在onApprove回调中预订包裹。但是,如果我的BookPackage api调用失败,我该怎么办。我如何撤消交易?

解决方法

批准后(在批准中),您需要捕获或至少授权PayPal订单。

捕获(或授权)失败的可能性大于bookPackage后端调用(例如,如果信用卡被拒),因此您应该先进行PayPal捕获/授权。然后做你的书包。最后,如果您进行了授权,则最终需要捕获作为第三个API调用。

[如果由于bookPackage失败而需要“撤消”交易,退还捕获的款项,或者如果您仅授权,则使授权无效。]


为了获得最佳结果,您应该使用服务器端集成,并从服务器端执行所有操作。

以下是要使用的前端代码:https://developer.paypal.com/demo/checkout/#/pattern/server

您将至少需要两条路线,“设置交易”(意图为:捕获或授权),第二条路线为“捕获交易” https://developer.paypal.com/docs/checkout/reference/server-integration/

(或者,如果您要走更复杂的多步路线,当然也可以授权)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...