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_amount
和 discount_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 - 优惠券/折扣代码(负数)的主要内容,如果未能解决你的问题,请参考以下文章