Paypal Express - 添加折扣

pb1*_*149 12 php payment paypal payment-gateway e-commerce

我目前正在向Paypal Express发布常规交易,并且没有错误地到达网关.

我现在想配置我的购物车向网关发送折扣.我的第一个想法是修改发送到网关的"AMT"值.然而,似乎贝宝通过计算总的验证"AMT"字段ITEMAMT,TAXAMT并且SHIPPINGAMT字段,以确保总不变:

[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
Run Code Online (Sandbox Code Playgroud)

我向Paypal发送了多少折扣?我查看了我能找到的文件,没有运气; 关于SO的类似问题也没有帮助.谢谢.

编辑:我注意到我可以穿过田野SHIPDISCAMT.我不知道这是否会让我做我需要的东西 - 我仍然会收到错误,表明soemthing'不匹配'.

pb1*_*149 22

得到它了.

事实证明,您可以将负数量作为订单项传递,并自行将其标记为折扣.我不得不添加上面的代码:

$params['L_NAME1'] = 'Discount Coupon';
$params['L_AMT1'] = -$discountCodeAmount;
$params['L_QTY1'] = 1;
$params['ITEMAMT'] -= $discountCodeAmount;
$params['AMT'] -= $discountCodeAmount;
Run Code Online (Sandbox Code Playgroud)

这具有以下效果:

在此输入图像描述

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

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

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