【问题标题】:Express checkout voucher handling (AMOUNT_MISMATCH)快速结帐凭证处理 (AMOUNT_MISMATCH)
【发布时间】: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


【解决方案1】:

您可以使用discount 变量指定折扣金额或百分比,请参阅https://developer.paypal.com/docs/api/

【讨论】:

  • 据我所知,折扣变量仅存在于发票中。支付执行只需要一个“金额”对象。 developer.paypal.com/docs/api/… 正如我所说,我可以在金额对象中使用 shipping_discount,但我正在寻找解决此问题的正确方法。
猜你喜欢
  • 2014-12-07
  • 2013-03-05
  • 2017-11-22
  • 2012-12-14
  • 2011-08-10
  • 2014-03-01
  • 2011-06-16
  • 2015-11-18
  • 2016-07-10
相关资源
最近更新 更多