我正在尝试使用 Javascript SDK 创建一个 PayPal 订单。如果 PayPal 返回非描述性 400 错误,我将无法添加项目。
这个标记工作正常:
return actions.order.create({
purchase_units: [{
description: "Stuff",
amount: {
value: '57.49',
currency_code: "CAD",
},
}],
application_context: {
brand_name: "MyBusiness",
shipping_preference: 'NO_SHIPPING'
}
});
这个标记,我在其中添加了金额明细,但没有添加项目:
return actions.order.create({
purchase_units: [{
description: "Stuff",
amount: {
value: '57.49',
currency_code: "CAD",
breakdown: {
item_total: '57.49',
}
},
items: [{
unit_amount: '57.49',
quantity: '1',
name: "item 1",
}],
}],
application_context: {
brand_name: "MyBusiness",
shipping_preference: 'NO_SHIPPING'
}
});
我正在关注此文档:
https://developer.paypal.com/docs/api/orders/v2/#definition-purchase_unit_request
https://developer.paypal.com/docs/api/orders/v2/#definition-item
我猜我添加分割的方法不起作用。但规范暗示它是数量 -> 分割。
最佳答案
完整的工作示例...保存到 HTML 文件,或者只是复制 purchase_units 数组
<!DOCTYPE html>
<!-- example from https://developer.paypal.com/demo/checkout/#/pattern/client -->
<head>
<!-- Add meta tags for mobile and IE -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body>
<!-- Set up a container element for the button -->
<div id="paypal-button-container"></div>
<!-- Include the PayPal JavaScript SDK -->
<script src="https://www.paypal.com/sdk/js?client-id=sb¤cy=CAD"></script>
<script>
// Render the PayPal button into #paypal-button-container
paypal.Buttons({
// Set up the transaction
createOrder: function(data, actions) {
return actions.order.create({
// based on example array from https://developer.paypal.com/docs/checkout/reference/server-integration/set-up-transaction/
"purchase_units": [{
"description": "Stuff",
"amount": {
"value": "57.49",
"currency_code": "CAD",
"breakdown": {
"item_total": {
"currency_code": "CAD",
"value": "57.49"
},
}
},
"items": [
{
"unit_amount": {
"currency_code": "CAD",
"value": "57.49"
},
"quantity": "1",
"name": "item 1",
},
],
}
]
,
application_context: {
brand_name: "MyBusiness",
shipping_preference: 'NO_SHIPPING'
}
}/*end of parameters to actions.order.create*/);
},
// Finalize the transaction
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
// Show a success message to the buyer
alert('Transaction completed by ' + details.payer.name.given_name + '!');
});
}
}).render('#paypal-button-container');
</script>
</body>
关于paypal - 为什么添加项目会使 Paypal Checkout 返回错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59384260/