快速结账凭证处理(AMOUNT_MISMATCH)

时间:2015-06-10 08:30:18

标签: paypal express-checkout paypal-rest-sdk

自升级到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?

更新和执行付款命令仅支持"金额"的新值。对象但不是" 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"}

如何正确应用优惠券? 建议?

1 个答案:

答案 0 :(得分:1)

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