代码之家  ›  专栏  ›  技术社区  ›  StripyTiger

PayPal Angelley DoExpressCheckout-数据不匹配

  •  0
  • StripyTiger  · 技术社区  · 7 年前

    我刚刚开始在php中使用angelley库,特别是调用doexpresscheckoutpayment的setexpresscheckout。

    我已经建立了我的购物车,并张贴到贝宝使用setexpresscheckout功能。

    一切似乎都进行得很好,但我已经离开了doexpresscheckoutpayment,就像演示中的原始篮子一样。是这个篮子通过贝宝,而不是我的篮子。

    这是对的吗?我想它会注意到原来的篮子并不是最终被处理和抛出的一个错误。我知道我可以在doexpresscheckoutpayment中重建购物篮,但我认为它们应该匹配,以捕获可能在我的网站和paypal之间发生的任何干扰-或者这是我的工作检查?(如果可以的话!)

    顺便说一下,当货币代码不匹配时它确实抛出了一个错误-我不得不将它们都改成英镑

    如果我误解了该怎么做,我道歉。

    1 回复  |  直到 7 年前
        1
  •  1
  •   IncredibleHat    7 年前

    一般情况下:

    setexpresscheckout中的内容和值需要与允许领域内的doexpresscheckoutpayment匹配(允许您在用户上更改购买的值和项…在合理范围内)。

    为什么没有抱怨:

    它可能没有完全抱怨的原因,是“演示数据”和“实际数据”之间的差异在允许卖家更改的范围内。而且它只是接受了最终交易的差额(除非您注意到,货币代码不能更改!)是的。

    请参阅,当您最初向PayPal发送包含以下信息的用户时:

    • 购买产品4
    • 9.99美元
    • 美元

    然后用户“同意这些条件并授权交易”。获取授权代码以继续捕获。不过,在这一点上,卖家有一个变化的余地(虽然不推荐,因为你很容易让客户不高兴)。在这里,你可以做最后的交易:

    • 购买产品9282(打开用户的产品)
    • 11.99美元(加价一点,要求加税或其他)
    • 美元(必须与您指出的保持一致)

    尽管这对于贝宝系统来说还是可以接受的…这可能不是正确的客户业务。

    对干扰的关注:

    你关心的” 可能发生的干扰 “不应该是一个。交易代码、商人身份证和秘密都是用来防止中间人插手的。自从 操作都是服务器端的(而不是javascript),用户不能直接自己改变这些值来以更低的价格获得不同的产品。

    希望这有助于澄清你的问题。

    推荐文章