如何使用Express Checkout checkout.js v4指定NoShipping 1

时间:2017-01-25 04:16:26

标签: paypal

我使用最新的checkout.js快递结账,但不需要显示任何送货地址。由于它是一个数字商品,文档说我需要noshipping设置为1.但是,我无法弄清楚它是如何进入javascript的。

我按照basic integration步骤操作,然后使用REST API执行付款,以便我可以向我的服务器充电。

我尝试添加noshipping:1在javascript中的所有地方创建付款而没有运气。这就是它的样子(忽略编译问题,因为我只是试图展示我是如何尝试添加noshipping:1信息):

 payment: function() {
            var env    = this.props.env;
            var client = this.props.client;
            return paypal.rest.payment.create(env, client, {
                transactions: [
                    {
                        amount: { total: '4.99', currency: 'USD' }
                        DOESNT WORK-->noshipping: 1
                    }
                ],
                DOESNT WORK-->noshipping: 1
            });
        },

有没有人知道如何使用最新的checkout.js正确传递noshipping信息?

3 个答案:

答案 0 :(得分:8)

好的,看来他们终于加入了对此的支持。它看起来像这样:

                payment: {
                transactions: [
                    {
                        amount: { total: '19.99', currency: 'USD' }
                        // Possibly there is also a 'custom' field we can specify here;
                        // https://stackoverflow.com/questions/46320753/
                    }
                ],
                application_context: {
                    shipping_preference: 'NO_SHIPPING'
                }
            }

答案 1 :(得分:1)

一周后得到PayPal支持的“官方”回复:

  

感谢您与PayPal商户技术服务部联系。

     

不幸的是,我们在使用时没有选择noshipping   REST API。该选项仅适用于经典快递   checkout使用NVP / SOAP API。

就是这样。这个相当简单的概念是不可能使用他们最新的SDK。

答案 2 :(得分:0)

是的,根据您的代码,可以在PayPal-Python-SDK上按照以下方式指定NOSHIPPING:

 payment: function() {
        var env    = this.props.env;
        var client = this.props.client;
        return paypal.rest.payment.create(env, client, {
            transactions: [
                {
                    amount: { total: '4.99', currency: 'USD' }
                }
            ],
           application_context: {
                shipping_preferences: 'NO_SHIPPING',
            }
        });
    },

我希望它有所帮助。