使用REST获取PayPal帐户历史记录

时间:2016-05-29 15:38:18

标签: java paypal paypal-ipn paypal-sandbox

我想使用Java PayPal SDK来获取帐户历史记录。我尝试了这个简单的代码:

    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 个答案:

答案 0 :(得分:1)

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