【问题标题】:Using PayPal IPN to verify payment amounts (USD + others) without shipping or tax使用 PayPal IPN 验证付款金额(美元 + 其他),无需运费或税金
【发布时间】:2013-02-11 10:09:20
【问题描述】:

很抱歉标题冗长,但这几乎概括了我的问题。我正在使用 PayPal IPN 根据我的数据库中的价格验证收款。我一次只卖一件商品,没有购物车,也没有运费。仅当买家来自一个地区时才收取税款。

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

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

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

【问题讨论】:

    标签: php paypal mysqli paypal-ipn


    【解决方案1】:

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

    您应该首先验证您是如何处理付款的,锁定资金类型或使用 custom 变量存储项目 ID

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

    mc_gross 是支付的总金额,所以是含税的,您应该使用某种 ID 而非支付的金额来验证购买的产品

    【讨论】:

    • 嗨,大卫,感谢您的回复。 “锁定基金类型”是什么意思?有没有办法我只能接受美元付款?通过 ID 验证的问题(如果我的想法是正确的)是买家可以将支付的金额更改为 0.01 美元,但仍然通过贝宝提交相同的商品编号。我只销售一种产品,但价格会根据一些定制选项而变化。
    • 买家如何添加商品并付款?无论您使用什么(paypal 按钮、第 3 方购物车)都应该允许您锁定货币/价格/等。
    • 我正在使用stackoverflow.com/a/5348937/1538275这个方法创建一个自定义链接——PHP根据用户选择计算价格并将价格插入链接(并将其存储在订单数据库中)。
    【解决方案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

    【讨论】:

      猜你喜欢
      • 2012-09-17
      • 2013-03-10
      • 2013-10-19
      • 2020-09-02
      • 1970-01-01
      • 2020-05-12
      • 2013-05-14
      • 2020-09-18
      • 2017-02-07
      相关资源
      最近更新 更多