Paypal获取Transaciton历史交易API初步研究(一)——REST or Classic API

背景:

业务需求,需要开发一款小程序每天自动从Paypal上下载前一天的交易记录,并存入SQL SERVER数据库,以便与财务的Invoice进行金额比对。

开发构想:

采用Java为开发语言,Spring MVC框架,CXF Webservice。持久层采用Hibernate,并通过Spring的Schedule Task完成定时任务功能。

与Paypal的接口参考官方的SDK,但首先需要决定采用REST API或是Classic API。

官方SDK:https://developer.paypal.com/developer/

 

先是考虑使用最新的REST API,但根据官方SDK写了一个小例子获取个人Paypal账户的历史交易记录,取得的Transaction记录数为0。

然而在Paypal的Sandbox环境下创建的测试账户,以及建立的虚拟交易,却能通过REST API正常取得数据。

对此疑惑不解,Google了一下发现官方SDK上就有对此进行说明:

Currently, the REST APIs can be used to get history of only those transactions that were created using the REST APIs. Use the Classic TransactionSearch API operation to retrieve a history of the transactions that were created using the Classic APIs and JavaScript Buttons.

原来REST API并不能获取非REST API创建的交易记录,只能通过Classic API获取。不向后兼容这一点让人很无语好不好。

 

好吧,用Classic API就用吧,查阅SDK文档之后发现以下两个API方法就应该可以搞定需求。

1) transactionSearch

2)getTransactionDetails

参考了一个官方的小例子,调用方法还是比较简单的(SOAP)

// 调用TransactionSearch方法
1
TransactionSearchRequestType searchReqType = new TransactionSearchRequestType(); 2 searchReqType.setStartDate(TransactionUtils.convertUTCDate(dateFrom)); 3 searchReqType.setEndDate(TransactionUtils.convertUTCDate(dateTo)); 4 TransactionSearchReq searchReq = new TransactionSearchReq(); 5 searchReq.setTransactionSearchRequest(searchReqType); 6 7 TransactionSearchResponseType searchResp = new TransactionSearchResponseType(); 8 searchResp = service.transactionSearch(searchReq);
//调用getTransactionDetails方法
1
GetTransactionDetailsReq getDetailsReq = new GetTransactionDetailsReq(); 2 GetTransactionDetailsRequestType getDetailsReqType = new GetTransactionDetailsRequestType(); 3 getDetailsReqType.setTransactionID(id); 4 getDetailsReq.setGetTransactionDetailsRequest(getDetailsReqType); 5 6 GetTransactionDetailsResponseType getDetailsResp = null; 7 getDetailsResp = service.getTransactionDetails(getDetailsReq);

调用方法比较直观,先new一个对应的Request对象,往该对象传入查询的参数,然后将该Request作为API方法的参数传入,通过service对象得到Response。

在Response对象中就可以获取对应的Transaction数据信息。

 

——待续——

posted @ 2015-07-20 21:05  kogen  阅读(1407)  评论(0编辑  收藏  举报