PayPal智能按钮付款未通过

时间:2020-07-17 02:41:42

标签: angular paypal

我的Angular网页上有一个PayPal智能按钮,如下所示:

paypal.Buttons({
      createOrder: (data, actions) => {
        return actions.order.create({
          purchase_units: [
            {
              description: this.product.description,
              amount: {
                currency_code: 'USD',
                value: this.product.price,
              }
            },
          ],

          application_context: {
            shipping_preference: 'NO_SHIPPING'
          }
        });
      },

      onApprove: async (data, actions) => {
        this.dataService.reserveReservation();
        const order = actions.order.capture();
        alert('Transaction Completed!');
      }
    }).render(this.paypalElement.nativeElement);

95%的时间都可以完成购买,但是有时dataService.reserveReservation会在没有付款的情况下被致电。如果付款失败,actions.order.capture()是否会返回错误的时间,或者为什么在付款未通过且在PayPal家庭活动中的任何地方都没有显示时调用onApprove回调标签?如何确保每次都付款?

1 个答案:

答案 0 :(得分:1)

捕获可能会失败; https://developer.paypal.com/docs/checkout/integration-features/funding-failure/中列出了一些失败情况的示例-因此,您的代码属于捕获解决方案之后。

具体来说,请参见https://developer.paypal.com/demo/checkout/#/pattern/client处的示例-.then()成功完成付款后,您的代码应位于actions.order.capture()承诺链中。

并确保将结果正确返回给onApprove的呼叫者。