是否可以通过Express Checkout和REST API使用自定义(自己的)贝宝按钮?

Tar*_*ras 4 javascript rest payment paypal

我已经实现了PayPal其余集成,现在可以创建付款了。因此,我必须立即启用付款批准。我使用了以下文档:

https://developer.paypal.com/docs/integration/web/accept-paypal-payment/

如我所见,使用approval_urlia传统方法(它将在单独的选项卡中打开批准页面)。但是一个现代的,在这里描述:

https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/advanced-integration/#set-up-your-client

确实需要使用checkout.js库脚本渲染PayPal按钮。我想使用我自己的按钮,但不知道拨打什么电话才能执行付款批准。我不知道是否允许这样做。在任何地方都找不到好的答案。请帮忙。

Rya*_*ton 5

不,不容易,不是上面提供的自定义链接对自定义的模仿很差。对大多数开发人员进行自定义可能意味着能够选择所需的任何按钮并以编程方式使用API​​进行交互。贝宝提供的不良API目前仅允许选择按钮的颜色/尺寸。它还会迫使您在加载时使用他们的checkout.js,以便他们可以跟踪您的用户。如果可能,我会避免这样做。

现在基本上您的选择是:

  1. 将快速结帐与他们提供的checkout.js结合使用,并提交给贝宝跟踪/有限定制。在贝宝营销方面,请使用具有完全凝聚力的贝宝品牌进行优化的加载按钮。

  2. 使用基本的结帐,这需要来回重定向。老派技术仍在工作。

  3. 尝试解决受限的checkout.js并找到其背后的秘密API,以创建您的自定义按钮。

我选择了选项2。


Dav*_*yen 5

我发现我能够让这个工作......

我正在使用https://www.paypalobjects.com/api/checkout.js然后像这样设置我的表单:

paypal.checkout.setup('{{ $paypalMerchantID }}', {
   environment: '{{ $paypalEnvironment }}',
   container: 'paypal-payment-form',
      buttons: [{
         container: 'paypal-payment-form',
            type: 'checkout',
               color: 'gold',
               size: 'responsive',
               shape: 'pill'
      }]
});
Run Code Online (Sandbox Code Playgroud)

这将在容器中创建按钮...但您也可以事先在容器中存在一个按钮,如下所示:

<button data-paypal-button="true">Pay via Paypal</button>

经过一些测试,您唯一需要的属性是data-paypal-button="true".

继续隐藏丑陋的按钮:

.paypal-button-widget { display: none; }

Hacky 是的,但是为什么使用自己的 Paypal 按钮这么难:^)