【问题标题】:Paypal : invalid token only in DoExpressCheckoutPayment methodPaypal:仅在 DoExpressCheckoutPayment 方法中的令牌无效
【发布时间】:2013-02-22 20:58:09
【问题描述】:

我开始使用 PayPal,我的第一项工作是在我们的网站上对其进行调试。

实际上,当我们结束订单时,它工作正常,但我们在日志中得到一个堆栈:"Invalid token (#10410: Invalid Token)"。 当调用 doExpressCheckoutPayment 时会发生这种情况,并且似乎没有令牌也没有 payerid,因此会引发错误。所有其他信息似乎都已正确填写。

这是调用doExpressCheckoutPayment的调试结果:

[DoExpressCheckoutPayment] => Array
(
    [TOKEN] => 
    [PAYERID] => 
    [PAYMENTACTION] => Sale
    [AMT] => 4.16
    [CURRENCYCODE] => EUR
    [BUTTONSOURCE] => Varien_Cart_EC_FR
    [NOTIFYURL] => *
    [RETURNFMFDETAILS] => 1
    [ITEMAMT] => 3.36
    [TAXAMT] => 0.80
    [SHIPPINGAMT] => 0.00
    [L_NUMBER0] => *
    [L_NAME0] => *
    [L_QTY0] => 1
    [L_AMT0] => 4.10
    [L_NUMBER1] => 
    [L_NAME1] => Discount
    [L_QTY1] => 1
    [L_AMT1] => -0.74
    [BUSINESS] => 
    [EMAIL] => *
    [FIRSTNAME] => *
    [LASTNAME] => *
    [MIDDLENAME] => 
    [SALUTATION] => 
    [SUFFIX] => 
    [COUNTRYCODE] => *
    [STATE] => *
    [CITY] => *
    [STREET] => *
    [ZIP] => *
    [PHONENUM] => *
    [SHIPTOCOUNTRYCODE] => *
    [SHIPTOSTATE] => *
    [SHIPTOCITY] => *
    [SHIPTOSTREET] => *
    [SHIPTOZIP] => *
    [SHIPTOPHONENUM] => *
    [SHIPTOSTREET2] => 
    [STREET2] => 
    [SHIPTONAME] => *
    [ADDROVERRIDE] => 1
    [METHOD] => DoExpressCheckoutPayment
    [VERSION] => 72.0
    [USER] => ****
    [PWD] => ****
    [SIGNATURE] => ****
)

[response] => Array
(
    [TIMESTAMP] => 2013-03-07T15:01:45Z
    [CORRELATIONID] => 64adbc2375f59
    [ACK] => Failure
    [VERSION] => 72.0
    [BUILD] => 5331358
    [L_ERRORCODE0] => 10410
    [L_SHORTMESSAGE0] => Invalid token
    [L_LONGMESSAGE0] => Invalid token.
    [L_SEVERITYCODE0] => Error
)

问题是在这个方法被调用之后,setExpressCheckout 被调用并且它是成功的,所以订单被正确放置。

这是调用setExpressCheckout时的成功响应:

[response] => Array
(
    [TOKEN] => EC-5UG654898R029060W
    [TIMESTAMP] => 2013-03-07T15:01:48Z
    [CORRELATIONID] => 348b58c6200c1
    [ACK] => Success
    [VERSION] => 72.0
    [BUILD] => 5331358
)

我不明白为什么在执行doExpressCheckoutPayment 时会抛出失败,而在执行setExpressCheckout 时,没有检测到错误并且无论如何都接受了销售......

方法调用的顺序有问题吗?我的意思是,不应该在 doExpressCheckoutPayment 之前调用 setExpressCheckout 吗?

我们正面临 PayPal 的另一个问题,我希望解决这个问题能够解决另一个问题....

非常感谢你们的帮助!

Seb

【问题讨论】:

    标签: paypal express token checkout


    【解决方案1】:

    SetExpressCheckout 应该首先发生 - 您返回的令牌是您重定向客户浏览器时使用的令牌,当他们返回时,他们将在 URL 中拥有令牌,这时您可以 getExpressCheckoutDetails 如果您需要查看他们的送货地址和相关信息,最后你运行doExpressCheckoutPayment 来提交交易。

    重申:您从setEC 获得一个有效令牌,在重定向中使用此令牌,您将此令牌返回附加到客户返回的RETURNURL,并在任何后续@ 中引用此令牌987654326@ 和 doEC 来电。

    【讨论】:

    • 非常感谢,我就是这么想的,流程顺序不好。现在我必须了解 Paypal 是如何在没有任何令牌的情况下接受所有这些交易的。因为这实际上是现场使用的,而且工作正常……不明白为什么,但我必须修复它!谢谢!
    猜你喜欢
    • 2016-03-18
    • 2014-12-31
    • 2016-06-07
    • 2013-01-24
    • 2011-11-02
    • 2011-11-15
    • 2017-03-09
    • 2017-03-21
    • 2021-06-29
    相关资源
    最近更新 更多