JAVA 实现支付宝接口
2016-04-26 00:00
381 查看
0、必备类
AlipayConfig配置文件
(签约账号、密钥、页面跳转通知页面都在这里设定)
MD5支付宝签名加密文件
AlipayCore支付宝接口公共函数类
AlipayNotify-支付宝通知处理类
AlipaySubmit支付宝接各接口请求提交类
HttpProtocolHandler
HttpRequest
HttpResponse
HttpResultType
完整案例(需要有签约账号)
**
1、首先我们需要一个表单来提交订单信息**
要提交的5个参数:
-1 商户订单号-WIDout_trade_no(这个订单号可以自定义,(我是把本地的订单号赋值给它))
-2 订单名称-WIDsubject
3付款金额-WIDtotal_fee
-4 商品展示网址-WIDshow_url
-5 商品描述-WIDbody
(最后两个参数我没填也可以提交成功,但是必须要有这些参数)
2、需要一个用来获取这些订单信息并提交的页面
在这个页面中,将获取到的参数,以及支付宝配置的参数打包成一个Map<String,String>对象
这些配置参数有:
接着建立支付请求
3、然后部署起来,支付完成后,就会跳转到配置文件中的return_url域所指定的页面。
这里支付宝会回传 三个参数:
1、支付宝交易号-trade_no 这个是支付宝那边生成的
2、商铺订单号-out_trade_no,这个是之前可以自定义的订单号
3、交易状态-trade_status
( TRADE_FINISHED(表示交易已经成功结束,并不能再对该交易做后续操作);
TRADE_SUCCESS(表示交易已经成功结束,可以对该交易做后续操作,如:分润、退款等);)
之后还会计算通知验证结果
即便是交易成功的情况下,也可能会验证失败(我的就是, 我能得到TRADE_SUCCESS的交易状态)
但既然能得到交易是否成功的状态就够了,我没有去管这个通知验证问题。
我在得到交易成功的状态时,就可以根据返回的订单号修改相应订单的信息。
AlipayConfig配置文件
(签约账号、密钥、页面跳转通知页面都在这里设定)
MD5支付宝签名加密文件
AlipayCore支付宝接口公共函数类
AlipayNotify-支付宝通知处理类
AlipaySubmit支付宝接各接口请求提交类
HttpProtocolHandler
HttpRequest
HttpResponse
HttpResultType
完整案例(需要有签约账号)
**
1、首先我们需要一个表单来提交订单信息**
要提交的5个参数:
-1 商户订单号-WIDout_trade_no(这个订单号可以自定义,(我是把本地的订单号赋值给它))
-2 订单名称-WIDsubject
3付款金额-WIDtotal_fee
-4 商品展示网址-WIDshow_url
-5 商品描述-WIDbody
(最后两个参数我没填也可以提交成功,但是必须要有这些参数)
2、需要一个用来获取这些订单信息并提交的页面
在这个页面中,将获取到的参数,以及支付宝配置的参数打包成一个Map<String,String>对象
这些配置参数有:
sParaTemp.put("service", AlipayConfig.service); sParaTemp.put("partner", AlipayConfig.partner); sParaTemp.put("seller_id", AlipayConfig.seller_id); sParaTemp.put("_input_charset", AlipayConfig.input_charset); sParaTemp.put("payment_type", AlipayConfig.payment_type); sParaTemp.put("notify_url", AlipayConfig.notify_url); sParaTemp.put("return_url", AlipayConfig.return_url);
接着建立支付请求
String sHtmlText = AlipaySubmit.buildRequest(sParaTemp,"get","确认"); //这一部分就是构建出一个表单来,然后提交 out.println(sHtmlText);
3、然后部署起来,支付完成后,就会跳转到配置文件中的return_url域所指定的页面。
这里支付宝会回传 三个参数:
1、支付宝交易号-trade_no 这个是支付宝那边生成的
2、商铺订单号-out_trade_no,这个是之前可以自定义的订单号
3、交易状态-trade_status
( TRADE_FINISHED(表示交易已经成功结束,并不能再对该交易做后续操作);
TRADE_SUCCESS(表示交易已经成功结束,可以对该交易做后续操作,如:分润、退款等);)
之后还会计算通知验证结果
boolean verify_result = AlipayNotify.verify(params); //这个会决定是验证成功还是验证失败
即便是交易成功的情况下,也可能会验证失败(我的就是, 我能得到TRADE_SUCCESS的交易状态)
但既然能得到交易是否成功的状态就够了,我没有去管这个通知验证问题。
我在得到交易成功的状态时,就可以根据返回的订单号修改相应订单的信息。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树