【问题标题】:Paypal Express - Add DiscountPaypal Express - 添加折扣
【发布时间】:2012-03-31 09:03:48
【问题描述】:

我目前正在向 Paypal Express 发布常规交易,并且正在顺利到达网关。

我现在想将我的购物车配置为向网关发送折扣。我的第一个想法是修改发送到网关的“AMT”值。但是,Paypal 似乎通过计算 ITEMAMTTAXAMTSHIPPINGAMT 字段的总数来验证“AMT”字段,以确保总数不变:

[L_AMT0] => 49.99
[L_NUMBER0] => 3706{3}8
[L_QTY0] => 1
[L_TAXAMT0] => 0.00
[ITEMAMT] => 49.99
[TAXAMT] => 0
[SHIPPINGAMT] => 14.95
[AMT] => 64.94

我向 Paypal 发送了多少折扣?我浏览了我能找到的文档,但没有运气;这里关于 SO 的类似问题也无济于事。谢谢。

编辑:我注意到我可以通过字段SHIPDISCAMT。我不知道这是否能让我做我需要做的事情 - 我仍然收到表明某些东西“不匹配”的错误。

【问题讨论】:

  • 您不能预先计算折扣并将其纳入您的 PayPal 变量吗?
  • @Josh 我该怎么做? PayPal 将通过查看各个 L_* 元素重新计算“总数”;如果它的计算与我将修改的“AMT”字段不匹配,那么它将返回网关错误。我确实考虑过修改每个人 L_AMT* 以从每个人身上提取一部分折扣价值,但这似乎是一个糟糕的解决方案。你能提供更深入的答复吗? (感谢您的帖子。)
  • @Josh 回答了我自己的问题。尽管如此,感谢您的帮助!

标签: php paypal e-commerce payment-gateway payment


【解决方案1】:

知道了。

事实证明,您可以将负金额作为订单项传递,然后自己将其标记为折扣。我不得不添加上面的代码:

$params['L_NAME1'] = 'Discount Coupon';
$params['L_AMT1'] = -$discountCodeAmount;
$params['L_QTY1'] = 1;
$params['ITEMAMT'] -= $discountCodeAmount;
$params['AMT'] -= $discountCodeAmount;

这产生了以下效果:

我在这个 PDF 中找到了答案:

https://cms.paypal.com/cms_content/CA/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf

由于某种原因,我读过的其他几篇官方 PayPal 快递文章/文件中没有提供该信息。

【讨论】:

  • 我也找不到它,尽管它已记录在其他 PayPal 解决方案中。很棒的发现。
【解决方案2】:

我使用负价格行项目技术来实现折扣,但遇到了一个问题 - 如果折扣值等于产品价格,例如订单项,例如:

[L_NAME0] => Product #1
[L_COST0] => 18.99
[L_QTY0] => 1
[L_NAME1] => Discount
[L_COST1] => -18.99
[L_QTY1] => 1
[ITEMAMT] => 0.00
[FREIGHTAMT] => 15.00
[HANDLINGAMT] => 0.00

然后它会产生 PayPal 错误“字段格式错误:10431-项目金额无效。”。

但是,删除折扣产品并发送“折扣”字段代替它修复了此问题并提供了新的 :-) PayPal 始终将此字段显示为“运费折扣”,而实际上是商品折扣。 至少,它有效...

【讨论】:

    【解决方案3】:

    请参考此 Paypal 网址 HTML Variable List

    <input type="hidden" name="discount_amount_cart" id="discount_amount_cart"  value="3.00">
    

    您可以使用此参数发送购物车范围的折扣 (discount_amount_cart)、产品范围的折扣 (discount_amount)。您可以在提供链接中找到更多信息。确保传递正整数值。 PayPal 不接受负值。

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 2012-10-01
      • 2011-10-23
      • 2015-01-05
      • 2015-01-12
      • 2012-12-05
      • 1970-01-01
      • 2013-10-09
      • 1970-01-01
      相关资源
      最近更新 更多