我目前正在使用JAVA实现Paypal的快速结账,与PayPal NVP API接口。我有SetExpressCheckout,GetExpressCheckoutDetails,DoExpressCheckout,DoAuthorization和DoCapture方法都可以正常工作。但是,我需要实现Instant Update API,以便在我们的服务器上计算运费和税金,并在paypal的页面中显示。我遵循了所有步骤和建议,但是,从不调用回调。我尝试使用setExpressCheckout参数,因为我在这个论坛中读到这些参数可能是问题,但无法使其工作。当我登录或更改送货地址时,永远不会调用回调,我在沙箱环境BTW。
我的回调网址是公开的并且正常运行。当尝试使用webbrowser时,它调用我的payPalCheckoutUpdate方法并在我的服务器中的日志文件中写入,所以我肯定是调用了url。问题是当我登录paypal的结账移动网站或更改送货地址时,这个回调网址永远不会被调用。
我的paypal更新方法托管在基于Apache Ofbiz的应用程序中,我在不同的论坛中发现,paypal无法访问端口8443或8080中的ofbiz的URL。所以我使用apache从我的回调URL重定向到我的实际方法避免在回调网址中使用不同于80的端口。 (使用webbrowser进行测试时,此工作正常)
这是我在没有凭据的情况下调用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 + w%的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_76.0&安培; SIGNATURE = * *** &安培; USER = xxxxx_12xxxx643_biz_api1.xxxxxxxxxxxxx.com
我尝试使用和不使用L_SHIPPINGOPTIONLABEL0参数,并尝试将版本和callbackversion设置为76.0(我使用的java库默认设置,取自paypal)我总是得到相同的结果,回调网址是'n' t invoked。
这是贝宝的反应:
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 ms
提前感谢您对此事的帮助。
答案 0 :(得分:0)