PayPal REST API - 优惠券/折扣代码(负数)

Posted

技术标签:

【中文标题】PayPal REST API - 优惠券/折扣代码(负数)【英文标题】:PayPal REST API - Coupon / Discount Code (Negative Numbers) 【发布时间】:2014-01-09 17:31:07 【问题描述】:

我一直无法找到准确的答案。

我们已经知道,PayPal 的 REST API 没有应用折扣代码的选项。但是,我们可以将另一个项目附加到 item_list 的描述中,即促销/折扣代码。

例如将其分解为人类可读的数据,这就是我要传递给 API 的内容。

交易

Amount: 100
item_list: [ product1, 60 ], [ product2, 60 ], [ coupon_code, -20 ]

从视觉上看,这条路线应该可以工作(就像在经典 API 中一样)。但是,PayPal API 不允许负数

理想情况下,我们希望通过 PayPal REST API 使用签名/OAuth 路由。开放/经典 API。


2014 年 1 月 13 日更新 我注意到 Storenvy 能够对其连接用户的 PayPal 帐户应用折扣。但是,如果我记得 Storenvy 与 PayPal 有合作关系 - 我想知道他们是否在特定的内部 rest API 版本上提供折扣支持?

【问题讨论】:

如果它根本不允许负数,您所能做的就是通知他们并希望有足够多的人抱怨他们要么修复它,要么最终给我们一个实际的折扣字段来使用。在那之前,您可能必须坚持使用经典 API 并将其添加为具有负值的行项目,就像您解释的那样。这就是为什么我还没有转向 REST。当我尝试为人们构建解决方案时,仍然有太多这样的事情出现。 【参考方案1】:

对于折扣,我们确实有折扣变量 discount_amountdiscount_percentage,您可以在其中获得:

适用于付款的折扣金额和币种。

查看参考https://developer.paypal.com/docs/api/payments/ 并在那里搜索“折扣”一词。

我希望这会有所帮助。

【讨论】:

这是最近添加的吗? @亚伦 有没有办法在不使用 Paypal 发票的情况下实现这一点?我正在通过item_list(作为transaction 的一部分)作为付款的一部分。我没有使用贝宝开票,我也不想。如何为付款/交易添加折扣? 您现在可以添加一个负数的项目作为一种解决方法。看到这个线程:github.com/paypal/PayPal-php-SDK/issues/55 REST API 中没有这样的折扣变量。投反对票。 discount_amount 和 discount_percentage 变量仅在 installment_amount 下可用。它们不适用于通常的交易。不知道为什么这个答案被标记为正确答案。否决【参考方案2】:

我这样做是创建另一个项目,并给出负价格。

  $item = new Item();
  $price = -11.20;
  ......
  $item->setName($name)
        ->setCurrency($currency)
        ->setQuantity($quantity)
        ->setSku($sku)
        ->setPrice($price);

对于这个例子,我有一个 -11.20 欧元的促销代码:

【讨论】:

使用 paypal 确实是一件令人头疼的事,我想我会用 stripe 来代替。 paypal 是一场噩梦:现在不允许负数【参考方案3】:

什么对我有用:

discount 字段添加到breakdown

'discount' => [
    'currency_code' => $order->currency,
    'value' => $order->coupon_total,
]

查看 PayPal 的文档:https://developer.paypal.com/docs/api/orders/v2/#definition-amount_breakdown

折扣将在价格明细中显示为折扣

【讨论】:

谢谢@yiddidhe-kop,遇到了同样的问题,您的解决方案对我有用

以上是关于PayPal REST API - 优惠券/折扣代码(负数)的主要内容,如果未能解决你的问题,请参考以下文章

PayPal 订阅 API - 如何应用折扣

通过 PayPal REST API 示例打折?

在贝宝(贝宝订阅)中首次定期付款时应用折扣优惠券代码

Paypal 显示一个金额,但收取另一个金额

我在哪里使用其余 API 设置 PayPal 付款的折扣值?

建议paypal的定期付款方式