2013-03-07 41 views
2

我开始使用PayPal,我的第一项工作是在我们的网站上进行调试。Paypal:仅在DoExpressCheckoutPayment方法中使用无效令牌

实际上,当我们去订单结束,它工作正常,但我们在日志中得到一个堆栈:"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时,没有检测到错误,并发售,无论如何接受。 ...

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

我们面临的其他问题,贝宝,我希望解决这个问题会解决的另一个....

非常感谢你的帮助你们!

勒布

回答

3

SetExpressCheckout应该发生第一 - 你回来的标记是什么,你重定向用户的浏览器,而当他们返回,他们就必须在URL中的令牌那就是当你可以getExpressCheckoutDetails如果您需要查看其送货地址和相关信息,并最终运行doExpressCheckoutPayment来提交交易。

重申一下:你从setEC得到有效令牌,使用此令牌重定向,你得到这个令牌回追加到RETURNURL客户返回,和你在任何后续getECdoEC调用引用此令牌。

+0

非常感谢你,这就是我的想法,流程订单不好。现在我必须了解贝宝如何能够无任何令牌地接受所有这些交易。因为这实际上是使用现场,它工作正常......不能得到原因,但我必须修复它!谢谢 ! – beluga 2013-03-08 08:31:50