2012-06-18 43 views
1

我目前正在使用JAVA实现PayPal的快速​​结账,与PayPal NVP API接口。我有SetExpressCheckout,GetExpressCheckoutDetails,DoExpressCheckout,DoAuthorization和DoCapture方法都可以工作。但是,我需要实施即时更新API,以计算运费和税费,并在我们的服务器上显示并显示在PayPal页面中。我遵循了所有的步骤和建议,但是,回调永远不会被调用。我试着玩setExpressCheckout参数,因为我在这个论坛上看到这些参数可能是问题,但无法使其工作。当我登录或更改送货地址时,回调永远不会被调用,我正在沙箱环境中。贝宝即时更新nvp不工作(沙箱环境)

我的回调网址是公开的,并且正常运行。当用Webbrowser尝试时,它会调用我的payPalCheckoutUpdate方法并在我的服务器中写入日志文件,所以我确信URL已被调用。问题是,当我登录PayPal的结帐移动网站或更改送货地址时,此回调网址从不会被调用。

我的PayPal更新方法托管在基于Apache Ofbiz的应用程序中,我在不同的论坛中发现PayPal无法访问8443或8080端口的ofbiz网址。所以我使用apache从我的回调URL重定向到我的实际方法并避免在回调url中使用不同于80的端口。 (当一个网页浏览器测试,能正常工作)

这是我的呼吁setExpressCheckout没有凭据(让我知道,如果你在此调用看到一个问题)

372623 [HTTP-0.0.0.0-8443 -3] INFO com.paypal.sdk.core.nvp.NVPAPICaller - L_SHIPPINGOPTIONAMOUNT0 = 0.00 & CANCELURL = HTTPS%3A%2F%2Fdev2.XXXjacker.com%3A8443%2FXXXjacker%2Fcontrol%2FpayPalCheckoutCancel & MAXAMT = 80.99 & L_SHIPPINGOPTIONLABEL0 =计算+离线& AMT = 80.99 & RETURNURL = https%3A%2F%2Fdev2.XXXjacker.com%3A8443%2FXXXjacker%2Fcontrol%2FpayPalCheckoutReturn & CALLBACK = HTTP%3A%2F%2Fdev2.XXXjacker.com%2FpayPalCheckoutUpdate & L_SHIPPINGOPTIONISDEFAULT0 =真& L_AMT0 = 80.99 & TAXAMT = 0.00 & L_QTY0 = 1 & L_NUMBER0 = 286202 & SHIPPINGAMT = 0.00 & L_NAME0 = DVD +%2B + VCR +瓦特%2F +线+在+%28no +调谐器%29 & ITEMAMT = 80.99 & CALLBACKVERSION + = 84.0 & VERSION = 84.0 & L_SHIPPINGOPTIONNAME0 =计算+离线& CALLBACKTIMEOUT = 3 & METHOD = SetExpressCheckout & CURRENCYCODE = USD & PWD = ** & SOURCE = PAYPAL_JAVA_SDK_7 6.0 & SIGNATURE = * *** & USER = xxxxx_12xxxx643_biz_api1.xxxxxxxxxxxxx.com

我试图与不L_SHIPPINGOPTIONLABEL0参数,也试图与版本和callbackversion设定为76.0(默认值由Java设置我正在使用的库,从贝宝采取)我总是得到相同的结果,回调url不会被调用。

这是从贝宝响应:

373536 [HTTP-0.0.0.0-8443-3] INFO com.paypal.sdk.core.nvp。NVPAPICaller - TOKEN = EC%2dXXXXXXXX03911650G & TIMESTAMP = 2012%2d06%2d12T22%3a03%3a06Z &的correlationID = f1e3c64211d5e & ACK =成功& VERSION = 84%2E0 & BUILD = 2975009 ACK:200执行时间:914毫秒

提前感谢您对此事提供的帮助。

回答