如何将订单详细信息传递给 PayPal 智能按钮结账

Posted

技术标签:

【中文标题】如何将订单详细信息传递给 PayPal 智能按钮结账【英文标题】:How can I pass order details to a PayPal smart button checkout 【发布时间】:2021-03-29 12:22:38 【问题描述】:

我正在使用 django 构建一个电子商务网站,并寻找一种将订单详细信息传递给商家帐户的方法。这个我试过了

 createOrder: function(data, actions) 
        return actions.order.create(
            purchase_units: [
                amount: 
                    value: '30.11',
                ,
                description: 'this is a description',
            ]
        );
    ,

此方法有效,但我只能传递字符串。我曾尝试传递列表,但没有成功

        createOrder: function(data, actions) 
        return actions.order.create(
            purchase_units: [
                amount: 
                    value: '30.11',
                ,
                description: [
                    order: "dress5",
                    price: "30"
                ]
            ]
        );
    ,

对我应该做什么有什么建议吗?

【问题讨论】:

【参考方案1】:

由于您使用的是 django,您可能应该使用 REST API 调用在后端创建和捕获订单——在您的情况下可能使用 Checkout-Python-SDK。您需要创建两条新路线,一条用于“创建订单”,一条用于“捕获订单”,documented here。

然后将您的两条路由与以下 html/JS 审批前端配对:https://developer.paypal.com/demo/checkout/#/pattern/server

(无论哪种方式,传递给 actions.order.create() 的对象也是 v2/checkout/orders request object,所以所有相同的语法都适用。)


至于如何实际传递细节:如果指定items数组,amount必须有一个breakdown对象,其item_total与sum匹配,并且其自身sum必须与总金额值匹配.

这是另一个问题的有效 purchase_units 数组的 JSON 示例:


    "purchase_units":[
        "amount":
            "value":259.96,
            "currency_code":"USD",
            "breakdown":
                "item_total":
                    "currency_code":"USD",
                    "value":259.96
                
            
        ,
        "items":[
            
                "unit_amount":
                    "currency_code":"USD",
                    "value":"49.99"
                ,
                "quantity":"1",
                "name":"GB Stacked"
            ,
            
                "unit_amount":
                    "currency_code":"USD",
                    "value":"79.99"
                ,
                "quantity":"1",
                "name":"Stacked Jeans"
            ,
            
                "unit_amount":
                    "currency_code":"USD",
                    "value":"49.99"
                ,
                "quantity":"1",
                "name":"GB Stacked"
            ,
            
                "unit_amount":
                    "currency_code":"USD",
                    "value":"79.99"
                ,
                "quantity":"1",
                "name":"Stacked Jeans"
            
        ]
    ]

这给出了:

【讨论】:

谢谢,真的帮了我很多,有没有办法可以在细分中添加税费和运费等信息 是的,所有参数都在 v2/checkout/orders 文档中用于细分:developer.paypal.com/docs/api/orders/v2/…。确保细分总计等于您的金额值,否则会出错

以上是关于如何将订单详细信息传递给 PayPal 智能按钮结账的主要内容,如果未能解决你的问题,请参考以下文章

如何在magento中将订单详细信息传递给paypal express checkout?

如何将订单详细信息传递到 magento 中的 paypal-express-checkout?

PHP 中的 Paypal 智能按钮服务器集成:错误:需要传递一个订单 ID

PayPal 智能按钮和 REST Checkout SDK - SyntaxError:JSON 输入意外结束或期望传递订单 ID

使用智能支付按钮(React + Redux)的 PayPal 结帐创建订单问题

Paypal 智能按钮元数据 - Webhook