2016-03-31 14 views
0

Nach einer SSLHandshakeException mit der paypal SOAP API (Transaction) verwendet wird, habe ich paypal_base.jar auf die Version von paypal in den folgenden Link angegeben aktualisiert:(400) Bad Request in PayPalAPISoapBindingStub.transactionSearch

https://github.com/paypal/TLS-update

I habe das Problem behoben, aber ich habe folgendes:

mar 31, 2016 6:56:26 PM com.paypal.sdk.core.soap.SOAPAPICaller call 
INFORMACIÓN: transactionSearch sent 
mar 31, 2016 6:56:28 PM com.paypal.sdk.exceptions.TransactionException <init> 
GRAVE: (400)Bad Request 
java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at com.paypal.sdk.core.soap.SOAPAPICaller.callSOAP(SOAPAPICaller.java:462) 
at com.paypal.sdk.core.soap.SOAPAPICaller.call(SOAPAPICaller.java:382) 
at com.paypal.sdk.services.CallerServices.call(CallerServices.java:125) 
at t.main(t.java:42) 
Caused by: (400)Bad Request 
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744) 
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144) 
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) 
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) 
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) 
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) 
at org.apache.axis.client.Call.invokeEngine(Call.java:2784) 
at org.apache.axis.client.Call.invoke(Call.java:2767) 
at org.apache.axis.client.Call.invoke(Call.java:2443) 
at org.apache.axis.client.Call.invoke(Call.java:2366) 
at org.apache.axis.client.Call.invoke(Call.java:1812) 
at com.paypal.soap.api.PayPalAPISoapBindingStub.transactionSearch(Unknown Source) 
... 8 more 

Irgendwelche Hinweise auf dieses Problem?

UPDATE:

Dies ist die Anfrage:

TransactionSearchRequestType request = new TransactionSearchRequestType(); 
    request.setStartDate(new GregorianCalendar()); 

    CallerServices caller = new CallerServices(); 
    try { 
     APIProfile profile = ProfileFactory.createSignatureAPIProfile(); 
     profile.setAPIUsername("*********"); 
     profile.setAPIPassword("*************"); 
     profile.setSignature("*******************************************"); 
     profile.setEnvironment("sandbox"); 
     caller.setAPIProfile(profile); 

     TransactionSearchResponseType response = (TransactionSearchResponseType) caller.call("TransactionSearch", request); 

    } catch (PayPalException e) { 
     System.out.println("PaypalCaller: Error calling Paypal webservice " + e); 
    } catch (Exception e) { 
     System.out.println(e.getMessage() + e); 
    } catch (Throwable e) { 
     System.out.println(e.getMessage() + e); 
    } 
+0

bitte posten Sie Ihre API-Anfrage und Antwort. Basierend auf dem Fehler sieht es wie eine schlechte API-Anfrage aus. –

+0

Ich werde den Code kopieren. –

+0

Basierend auf https://developer.paypal.com/docs/classic/api/merchant/TransactionSearch_API_Operation_NVP/, müssen Sie Parameter Startdate in API-Anforderung übergeben, –

Antwort

0

Ich konnte das Problem lösen. Ich habe eine andere paypal Bibliothek verwendet, die verwendet werden können, das gleiche zu tun:

https://github.com/paypal/merchant-sdk-java

Code:

TransactionSearchReq txnreq = new TransactionSearchReq(); 
TransactionSearchRequestType requestType = new TransactionSearchRequestType(); 
    requestType.setStartDate("2016-03-28T00:00:00.000Z"); 
    txnreq.setTransactionSearchRequest(requestType); 

    PayPalAPIInterfaceServiceService service; 

    try { 
     Map<String, String> sdkConfig = new HashMap<String, String>(); 

     sdkConfig.put("mode", "sandbox"); 
     sdkConfig.put("acct1.UserName", "***********"); 
     sdkConfig.put("acct1.Password", "***************"); 
     sdkConfig.put("acct1.Signature","*****************************"); 

     service = new PayPalAPIInterfaceServiceService(sdkConfig); 
     TransactionSearchResponseType response = service.transactionSearch(txnreq); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
Verwandte Themen