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下载点击此处下载

打赏二维码,多谢支持

你可能感兴趣的:(paypal支付)