如何将订单详细信息传递给 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