2012-06-18 45 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毫秒

提前感謝您對此事提供的幫助。

回答