使用 braintree 处理 paypal 客户端上的取消事件

Handle the cancel event on paypal client with braintree

我正在尝试处理用户在打开 PayPal 客户端时单击取消按钮的事件。

集成是通过 Braintree 完成的。

设置如下:

braintree.paypal.create({
            client: clientInstance
            }
        },

我看到 braintree 有这个事件的句柄(称为 'onCacncelled'),但仅适用于 v2。我已经问过他们该怎么做,但他们的解决方案不起作用,因为使用了 briantree 对象的 setup 属性,这在 v3 中不存在。或者至少这是 js 错误告诉我的。

完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系 support.

在 v3 中,您必须标记 PayPal 实例才能启动 PayPal 登录流程。与 v2 中的 onCancelled 回调函数不同,在 v3 中,它位于错误处理中,您可以在其中指示标记化错误或过早关闭流程以增加控制。

参见下面的示例和 link:

https://braintree.github.io/braintree-web/3.11.0/PayPal.html#tokenize

paypalInstance.tokenize({
  flow: 'vault' // Required
  // Any other tokenization options
}, function (tokenizeErr, payload) {
  button.removeAttribute('disabled');

    if (tokenizeErr) {
      // Handle tokenization errors or premature flow closure

      switch (tokenizeErr.code) {
        case 'PAYPAL_POPUP_CLOSED':
          console.error('Customer closed PayPal popup.');
          break;
        case 'PAYPAL_ACCOUNT_TOKENIZATION_FAILED':
          console.error('PayPal tokenization failed. See details:', tokenizeErr.details);
           break;
        case 'PAYPAL_FLOW_FAILED':
          console.error('Unable to initialize PayPal flow. Are your options correct?', tokenizeErr.details);
          break;
        default:
          console.error('Error!', tokenizeErr);
    }
} else {
  // Submit payload.nonce to your server
}
});