为什么添加项目会使Paypal Checkout返回错误? [英] Why does adding items make Paypal Checkout return an error?
问题描述
我正在尝试使用JavaScript SDK创建PayPal订单.如果PayPal返回非说明性400错误,我将无法添加商品.
I am trying to create a PayPal order using the Javascript SDK. I am unable to add items without PayPal returning a non-descriptive 400 error.
此标记可以正常工作:
return actions.order.create({
purchase_units: [{
description: "Stuff",
amount: {
value: '57.49',
currency_code: "CAD",
},
}],
application_context: {
brand_name: "MyBusiness",
shipping_preference: 'NO_SHIPPING'
}
});
我在其中添加金额明细和项目的标记不存在:
This markup, where I add the amount breakdown and items doesn't:
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
我猜想我添加细分的方式行不通.但是规范暗示它是金额->细分.
I'm guessing the way I added the breakdown doesn't work. But the spec implies that it is amount -> breakdown.
推荐答案
完整的示例...保存到HTML文件,或仅复制purchase_units数组
Full working example... save to an HTML file, or just copy the purchase_units array
<!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 Checkout返回错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!