【发布时间】:2015-08-25 09:26:33
【问题描述】:
自从升级到 PayPal REST API 后,我们的快速结账出现了问题。
使用 Express Checkout 时,用户将首先被发送到 Paypal 站点进行身份验证,以便我们获取他的地址详细信息。
在此阶段设置以下值:
创建付款
"transactions": [
{
"amount": {
"currency": "EUR",
"total": "11.95",
"details": {
"shipping": "2.00",
"subtotal": "9.95"
}
},
"item_list": {
"items": [
{
"quantity": "1",
"name": "Some item :)",
"price": "9.95",
"currency": "EUR",
"sku": "123"
}
]
}
}
]
返回到我们的结帐页面后,用户可以选择将代金券应用于他的订单。我们不确定如何在 PayPal REST API 中反映这一变化。
在旧 API 中,我们使用负价格在 item_list 中创建新商品。
REST API 中是否有正弦方式在身份验证后更新 item_list?
Update 和 Execute payment 命令都只支持“amount”对象的新值,但不支持“item_list”。如果我们按如下方式发送新的(折扣)金额,我们会收到 AMOUNT_MISMATCH 错误,因为新的“金额”不再反映“item_list”。
执行付款
"transactions": [
{
"amount": {
"currency": "EUR",
"total": "6.95",
"details": {
"shipping": "2.00",
"subtotal": "4.95"
}
}
}
]
结果
Error code : 400 with response : {"name":"AMOUNT_MISMATCH","message":"The totals of the cart item amounts do not match sale amounts"}
如何正确使用优惠券? 有什么建议吗?
【问题讨论】:
-
编辑:折扣不能用tax、handling_fee、tax或amount.details对象中的自定义小计来模拟。
标签: paypal express-checkout paypal-rest-sdk