2016-05-29 52 views
0

我想使用Java PayPal SDK获取账户历史记录。我想这个简单的代码:使用REST获取贝宝账户历史记录

public void randomDatabaseData() throws SQLException, FileNotFoundException, IOException, PayPalRESTException { 
    String clientID = "test"; 
    String clientSecret = "test"; 

    String accessToken = null; 
    try { 
     Map<String, String> map = new HashMap<String, String>(); 
     map.put("mode", "live"); 
     try { 
      accessToken = new OAuthTokenCredential(clientID, clientSecret, map).getAccessToken(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     System.out.println(accessToken); 
     transactionSearch(accessToken); 

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

public TransactionSearchResponseType transactionSearch(String accessToken) { 

    TransactionSearchReq transactionSearchReq = new TransactionSearchReq(); 
    TransactionSearchRequestType transactionSearchRequest = new TransactionSearchRequestType(
      "2012-12-25T00:00:00+0530"); 
    transactionSearchReq.setTransactionSearchRequest(transactionSearchRequest); 
    PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(); 
    service.setTokenSecret(accessToken); 

    TransactionSearchResponseType transactionSearchResponse = null; 
    try { 
     transactionSearchResponse = service.transactionSearch(transactionSearchReq); 
    } catch (Exception e) { 
     System.out.println("Error Message : " + e.getMessage()); 
    } 
    if (transactionSearchResponse.getAck().getValue().equalsIgnoreCase("success")) { 

     Iterator<PaymentTransactionSearchResultType> iterator = transactionSearchResponse 
       .getPaymentTransactions().iterator(); 
     while (iterator.hasNext()) { 
      PaymentTransactionSearchResultType searchResult = iterator.next(); 

      System.out.println("Transaction ID : " + searchResult.getTransactionID()); 
     } 
    } else { 
     List<ErrorType> errorList = transactionSearchResponse.getErrors(); 
     System.out.println("API Error Message : " + errorList.get(0).getLongMessage()); 
    } 

    return transactionSearchResponse; 
} 

,但我得到了自己的错误堆栈,当我运行代码:

Error Message : configurationMap cannot be null 
java.lang.NullPointerException 
    at com.crm.web.tickets.GenearateTicketsTest.transactionSearch(GenearateTicketsTest.java:161) 
    at com.crm.web.tickets.GenearateTicketsTest.randomDatabaseData(GenearateTicketsTest.java:139) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 

我怎么能解决这个问题的代码?我将客户端ID和密钥配置到PayPal网站,但仍然出现错误。

回答

1

我建议您使用TransactionSearch API根据您的搜索日期范围获取付款记录。

+0

我更新了帖子,但我得到错误。你知道我需要使用什么配置图吗? –