【问题标题】:Paypal Checkout Express empty cart problemPaypal Checkout Express 空车问题
【发布时间】:2011-09-16 14:39:57
【问题描述】:

我正在按照 Paypal 的 API 规范在我的网站中集成 Paypal。我正在沙盒中对其进行测试,并在发送 SetExpressCheckout 请求后,如下所示:

CURRENCYCODE=EUR
&RETURNURL=http%3A%2F%2Fwww.xxxxxxxx
&CANCELURL=http%3A%2F%2Fwww.xxxxxxxx
&PAYMENTACTION=Sale
&L_PAYMENTREQUEST_0_NAME0=T-shirt+ring-spun+attillata%3B+taglia+L%3B+colore+Navy
&L_PAYMENTREQUEST_0_NUMBER0=0LLR7IQ-B0SIE+%28Product+%230LLR7IQ-B0SIE%29
&L_PAYMENTREQUEST_0_DESC0=160+g%2Fm%C2%B2%2C+100+%25+cotone+ring-spun%2C+pre-ristretto%2C+simple+jersey%2C+scollatura+arrotondata%2C+maniche+corte%2C+impunture+sulla+scollatura%2C+sul+bordo+delle+maniche+e+sulla+base%2C+cuciture+laterali.
&L_PAYMENTREQUEST_0_AMT0=1.90
&L_PAYMENTREQUEST_0_QTY0=1
&L_PAYMENTREQUEST_0_NAME1=T-shirt+ring-spun+attillata%3B+taglia+M%3B+colore+Dark+Heather
&L_PAYMENTREQUEST_0_NUMBER1=0LLR7IQ-2KEI1+%28Product+%230LLR7IQ-2KEI1%29
&L_PAYMENTREQUEST_0_DESC1=160+g%2Fm%C2%B2%2C+100+%25+cotone+ring-spun%2C+pre-ristretto%2C+simple+jersey%2C+scollatura+arrotondata%2C+maniche+corte%2C+impunture+sulla+scollatura%2C+sul+bordo+delle+maniche+e+sulla+base%2C+cuciture+laterali.
&L_PAYMENTREQUEST_0_AMT1=1.90
&L_PAYMENTREQUEST_0_QTY1=1
&L_PAYMENTREQUEST_0_NAME2=T-shirt+ring-spun+attillata%3B+taglia+S%3B+colore+White
&L_PAYMENTREQUEST_0_NUMBER2=0LLR7IQ-TFOHI+%28Product+%230LLR7IQ-TFOHI%29
&L_PAYMENTREQUEST_0_DESC2=160+g%2Fm%C2%B2%2C+100+%25+cotone+ring-spun%2C+pre-ristretto%2C+simple+jersey%2C+scollatura+arrotondata%2C+maniche+corte%2C+impunture+sulla+scollatura%2C+sul+bordo+delle+maniche+e+sulla+base%2C+cuciture+laterali.
&L_PAYMENTREQUEST_0_AMT2=1.59
&L_PAYMENTREQUEST_0_QTY2=1
&ITEMAMT=5.39
&TAXAMT=1.08
&SHIPPINGAMT=0.00
&AMT=6.47
&ALLOWNOTE=1
&USER=XXXXXXXX
&PWD=XXXXXXXX
&SIGNATURE=XXXXXXXX
&METHOD=SetExpressCheckout
&VERSION=53.0

我将用户转发到 here,这是 Paypal 为响应我的第一个请求而返回给我的令牌。

问题是,尽管设置了所有价格的请求成功,但我有一个空白的 Paypal 评论页面,完全没有价格。

我错过了什么?

【问题讨论】:

    标签: php paypal checkout express nvp


    【解决方案1】:

    攻击糟糕的 API 文档! Paypal 确实很努力,但他们功亏一篑。我已经和这个 API 战斗过并且赢了! :)

    更改您已有的这些值...如果它解决了问题,请告诉我

    &PAYMENTREQUEST_0_PAYMENTACTION=Sale [[ <--- payment action ]]
    &PAYMENTREQUEST_0_CURRENCYCODE=EUR [[<-- currency code]]
    &PAYMENTREQUEST_0_ITEMAMT=5.39  [[<---- subtotal here]]
    &PAYMENTREQUEST_0_TAXAMT=1.08 [[<---- tax here]]
    &PAYMENTREQUEST_0_SHIPPINGAMT=0.00 [[<---- shipping here]]
    &PAYMENTREQUEST_0_AMT=6.47 [[<---- grand total here]]
    &PAYMENTREQUEST_0_ALLOWNOTE=1
    

    【讨论】:

    • 谢谢,我找到了这些信息并相应地更改了我的请求,但现在的问题是,paypal 不会在生产中将我的交易记入买方账户(也不会记入我的卖方账户) .尽管对 DoExpressCheckoutPayment 的调用(与之前的 SetExpressCheckout API 调用中的请求数据相同)返回成功...我的交易流程是否正确(如下)? 1) 发送 POST SetExpressCheckout 请求(包含所有订单数据、总计等)并解析响应; 2)如果响应成功,将用户的浏览器重定向到paypal的网站(webscr);
    • 3) 当paypal将用户重定向到我在setexpresscheckout中指定的回调url时,我调用GetExpressCheckoutDetails然后对Paypal执行一个POST DoExpressCheckoutPayment请求,如果成功,对用户说OK。
    • 是的,这是正确的流程。您是否在返回值的 ACK 键中获得“成功”?如果是这样,那么一切都应该是好的。不过,请确保您没有仍在使用沙盒 API 和凭据!
    • 谢谢,我找到了问题:API 调用中的参数错误。感谢您的帮助。
    【解决方案2】:

    除了这里的其他 cmets,在从 SetExpressCheckout 获得响应后重定向到 PayPal 时,请务必使用未记录的“useraction”选项:

    ?cmd=_express-checkout&useraction=commit&token=the-returned-token

    (下面的链接失效了)

    Here's the PayPal forum reference to this parameter

    【讨论】:

    • “一定要用”和“无证”在同一句话吓死我了
    【解决方案3】:

    这个问题也困扰了我好几天。

    使用 developer.paypal.com 的 Java SDK(截至 2008 年),我终于在https://www.x.com/developers/paypal/documentation-tools/sdk#3找到了新版本的 SDK(2011 年 11 月)

    使用新的 SDK(特别是更新后的 paypal_base.jar)还没有解决我的问题。

    您必须找出正确的 API 版本字符串才能使其运行。使用版本“51.0”(在我的一些示例代码中),调用失败。与“78.0”版本一样,新的 SDK 完成了这项工作。

    欢呼……

    【讨论】:

      猜你喜欢
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 2016-03-15
      • 2018-12-13
      • 2016-02-17
      • 2017-09-24
      • 2014-09-20
      相关资源
      最近更新 更多