Paypal快速支付java代碼

關於paypal支付,首先分清楚“快速支付”和“標準支付”,簡單的說就是快速支付的支付處理是在商家(你自己網站)這邊處理的,需要一定的編程能力;關於標準支付這部分就是直接通過html發起請求到paypal那邊,然後接下來不用管了,很簡單。可以先用沙箱賬號(測試賬號),關於這方面的話,詳細步驟參考http://blog.csdn.net/change_on/article/details/73881791 (最詳細的 paypal 支付接口開發--Java版)的步驟,但是代碼不建議參考他的(個人感覺),因爲本文描述得是快速支付。

在大家做這個paypal支付的時候,先要理清思路,搞清楚自己到底需要哪種支付方式(標準或者快速),然後再看看paypal官網的演示,看看整體的支付流程,這個很重要。

關於快速支付,主要分爲三個步驟,setExpressCheckout,getExpressCheckout(可省略),doExpressCheckout,set主要是發起支付,然後get就是獲取支付的詳細信息,do主要就是執行支付了,然後執行完成之後有一個回調,IPN回調,通常下paypal還有個PDT回調,但是這個我不建議用,因爲我寫郵件給paypal那邊也是推薦我使用IPN回調,PDT回調有侷限性,所以大家只用瞭解IPN回調,關於IPN回調,相對應的就是notify_url這個地址了,這個地址必須是外網可以訪問的(本人用natapp這個做內網穿透),以.do結尾,不能接?帶參數。

我做這個支付主要就是5個方法吧,set,get,do就不說了(這段代碼在我的demo可以下載,大家改寫一下),還有一個是notify,query,notify主要就是做驗證,這個代碼我不寫了,給個路徑大家參考一下吧,http://www.myexception.cn/paypal/1929410.html,就這個寫的比較好,然後query這一段就是大家可以直接通過

GetTransactionDetailsReq req = new GetTransactionDetailsReq();
GetTransactionDetailsRequestType reqType = new GetTransactionDetailsRequestType();
reqType.setTransactionID(orderId);
req.setGetTransactionDetailsRequest(reqType);
GetTransactionDetailsResponseType resp = service.getTransactionDetails(req);
if (resp != null) {
if (resp.getAck().toString().equalsIgnoreCase("SUCCESS")) {
result = resp.getPaymentTransactionDetails().getPaymentInfo().getPaymentStatus().getValue().toString();
} else {
result = "";
}
}

這段代碼進行查詢,orderId是paypal那邊的交易訂單號,通過這個訂單號可以查詢交易狀態,然後大家可以看看這個文檔吧, 這些文檔我都給大家一起打包吧,免得大家走彎路,其他的話大家就自己找找吧,有不懂可以問我,畢竟還是要學會自己找資料的。demo在我的那個資源裏面,大家下載一下吧。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章