使用PayPal IPN验证付款金额(USD +其他),无需运费或税金

时间:2013-02-26 03:43:25

标签: php paypal mysqli paypal-ipn

很抱歉这个长篇大论的标题,但这几乎总结了我的问题。我正在使用PayPal IPN来验证我的数据库中的价格收入。我一次只卖一件商品,没有购物车,也没有运费。只有当买家来自一个地区时,才会征税。

所有价格均以XX.XX的形式存储在我的数据库中,不含税。当PayPal通过IPN发回数据时我以为我可以使用mc_gross来比较我的数据库价格,但我发现了两个可能的问题:

  1. 如果买家用非美元资金支付,我读到mc_gross不会等于我首先发送给PayPal的价格,因此不会与我的数据库匹配,这是真的吗?

  2. 如果买方在应税区域内,并且在PayPal.com上将税额添加到他的总额中,这将反映在mc_gross中吗?我在PayPal文档和网上发现了有关mc_gross是否包含税价的相互矛盾的信息。

2 个答案:

答案 0 :(得分:2)

  

如果买家支付非美元资金,我读到mc_gross不会等于我首先发送给PayPal的价格,因此不会与我的数据库匹配,这是真的吗?

您应该首先验证您如何处理付款,锁定基金类型或使用custom变量存储商品ID

  

如果买方在应税区域内,并且在PayPal.com上将税额添加到其总额中,这将反映在mc_gross中吗?我在PayPal文档和网上发现有关mc_gross是否包含税价的信息存在冲突。

mc_gross是支付的总金额,因此包含税,您应该使用某种ID来验证购买的产品,而不是支付的金额

答案 1 :(得分:2)

  

如果买方在应税区域内,并且税额加到他的总额中   在PayPal.com这会反映在mc_gross吗?我发现有冲突   PayPal文档中的信息以及有关mc_gross的在线信息   包括税价。

正如David Nguyen所说,mc_gross是支付的总金额,因此包括税。 但是,您必须使用mc_gross将您的数据库价格与安全进行比较。

如果您想在没有税的情况下获得真正的价格,那么您需要做的就是 检查发布的变量“tax”是否为数字,如果是,则减去它 发布的变量“mc_gross”。

e.g.
mc_gross = 142.68
tax = 19.68
mc_gross - tax = 123

您的数据库数量需要为123.如果不存在安全错误,因为 用户更改价格并绕过系统。

顺便说一句,你还必须检查货币,创建帖子等等, click here for more details