Spring MVC 使用支付宝接口完成在线支付的示例代码

本篇文章主要介绍了Spring MVC 使用支付宝接口完成在线支付的示例代码,具有一定的参考价值,有兴趣的可以了解一下

项目中要使用到在线支付功能 目前常用的在线支付手段主要是 支付宝 和微信。

这里我使用的是支付宝支付,支付宝有个好处就是他有一个沙箱模式 即使没有申请渠道的资格也可以体验一把在线支付。

第一步:完善沙箱信息 

进入支付宝的开发者中心 就可以看到有个沙箱环境

使用支付宝提供的秘钥生成工具 生成对应的秘钥 一定要保存好。支付宝推荐使用RSA2(SHA256)秘钥

把自己的公钥填上去就可以了。

第二步阅读在线支付开发文档

里面需要的配置信息 对应的使用沙箱环境的信息

第三步环境搭建

下载服务端SDK 并添加到项目中

这里我使用的maven项目 导入本地jar包采用了下列方式

<dependency>

<groupId>com.alipay</groupId>

<artifactId>alipay</artifactId>

<version>1.1.1</version>

<scope>system</scope>

<!--本地jar的路径,相对或者绝对都可以-->

<systemPath>${project.basedir}/lib/alipay-sdk-java20170307171631.jar</systemPath>

</dependency>

<dependency>

<groupId>com.alipay1</groupId>

<artifactId>commons</artifactId>

<version>1.1.1</version>

<scope>system</scope>

<!--本地jar的路径,相对或者绝对都可以-->

<systemPath>${project.basedir}/lib/commons-logging-1.1.1.jar</systemPath>

</dependency>

1、  调用接口 启动支付页面 具体参数说明 请查看文档

2、 //转到支付页面

3、     //初始化客户端 只需要实例化一次(线程安全)

4、     AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do"

5、         , "2016080300153333", GlobalConstant.APP_PRIVATE_KEY, "json", "UTF-8", GlobalConstant.ALIPAY_PUBLIC_KEY, "RSA2");

6、     AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();//创建API对应的request

7、     //在公共参数中设置回跳和通知地址

8、     alipayRequest.setReturnUrl("回跳地址");

9、     //异步回调一定是要在外网 不然支付宝服务器无法访问

10、     alipayRequest.setNotifyUrl("异步回调地址");

11、     alipayRequest.setBizContent("{" +

12、         "  \"out_trade_no\":\"" + orderId + "\"," +

13、         "  \"total_amount\":\"" + fetchParcel.getMoney() + "\"," +

14、         "  \"subject\":\"代领快递\"," +

15、         "  \"seller_id\":\"2088102169684935\"," +

16、         "  \"product_code\":\"QUICK_WAP_PAY\"" +

17、         " }");//填充业务参数

18、     String form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单

19、     httpResponse.setContentType("text/html;charset=utf-8");

20、     httpResponse.getWriter().write(form);//直接将完整的表单html输出到页面

21、     httpResponse.getWriter().flush();

1、接收同步回调展示 结果 此结果只是展示,具体状态必须依赖支付宝的异步通知

2、接收异步回调更改订单状态 支付宝的异步回调 是服务器之间的通讯并不会产生页面 并且 设置的回调地址

一定是要在外网上的 不然支付宝的服务器是无法访问该地址的

对回调得到的信息要使用支付宝的api进行校验

//将异步通知中收到的所有参数都存放到map中

Map<String, String> paramsMap =new HashMap<>();

paramsMap.put("tarde_no",trade_no);

paramsMap.put("trade_status",trade_status);

paramsMap.put("total_amount",total_amount);

paramsMap.put("out_trade_no",out_trade_no);

boolean signVerified = AlipaySignature.rsaCheckV1(paramsMap, GlobalConstant.ALIPAY_PUBLIC_KEY, "UTF-8", "RSA2");     //调用SDK验证签名

if (signVerified) {

//验签成功后,按照支付结果异步通知中的描述,对支付结果中的业务内容进行二次校验,校验成功后在response中返回success并继续商户自身业务处理,校验失败返回failure

String out_trade_no1 = paramsMap.get("out_trade_no");

String trade_status1 = paramsMap.get("trade_status");

logger.info(out_trade_no1+":"+trade_status1);

return "success";

} else {

//验签失败则记录异常日志,并在response中返回failure.

return "failure";

}

4进行支付体验

这里选择支付宝账号登录 账号 密码 在沙箱环境中可以找到 (买家账号)建议下载支付宝沙箱钱包 可以模拟在线支付调用钱包客户端的效果

以上就是本文的全部内容,希望对大家的学习有所帮助

时间: 2024-10-14 13:07:30

Spring MVC 使用支付宝接口完成在线支付的示例代码的相关文章

Android集成支付宝接口 实现在线支付

手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能. 人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描一下,或者搜索一下,然后下单,不找零,直接送到你家,这将是手机支付给我们带来的全新交易体验.谷歌刚推出了谷歌钱包,这必是我们后面要使用的主要手段,但是鉴于当前国情,我觉得有必要介绍一下android手机集成支付宝功能. 1.下载官方架包和说明文档其实官方已经提供了安装指南,下载地址:https:/

Spring MVC注解配置结合Hibernate的入门教程及其代码实例

原文:Spring MVC注解配置结合Hibernate的入门教程及其代码实例 源代码下载地址:http://www.zuidaima.com/share/1787210045197312.htm 1.概述 本文旨在搭建Spring MVC+Hibernate开发框架,通过一个简单的demo讲解Spring MVC的相关配置文件,以及通过注解方式实现简单功能. 开发框架:Spring+Spring MVC+Hibernate(Spring所用的版本为3.0.5). 数据库:MySQL(数据库名称

spring框架整合使用定时任务框架java quartz的示例代码配置

原创整理不易,转载请注明出处:spring框架整合使用定时任务框架java quartz的示例代码配置 代码下载地址:http://www.zuidaima.com/share/1775583461723136.htm 有时候我们的任务(Job)需要再某些任务完成之后才能进行:例如从旧的数据库批量导数据的时候:需要现将被其他数据依赖的数据导入新的数据库:然后再进行关系的导入..在这种情况下我们就可以使用Quartz的listener来做文章了. 首先我们写一个主任务的类,命名为MainJob:她

基于有赞微小店+有赞云实现的个人微信和支付宝扫码在线支付收款

普通个人网站如果想要接入支付宝和微信的在线支付功能的话,没有企业资质是没办法开通支付平台的商户帐号的.前几天在网上看到说使用有赞云可以实现个人收款,而且还支持支付宝和微信等多种支付方式. 大概看了一下,有赞云的API基本满足普通的在线支付接入情况,费率据说是1%,另外搭配产品微小店还是免费的(PS:正常开通微信支付普遍的费率是0.6%左右,特殊行业有单独规定费率,所以还是可以接受的). 基于有赞云的API做在线支付功能还是比较简单的,但不支持PC端直接支付.用户选择支付宝支付时会跳转到手机版的网

[接口]支付宝接口开发集成支付环境开发总结

关于支付宝的接口集成气死是很简单,目前大概有3种类型,即时到帐.双功能.担保交易,只需要集成一次担保交易,其他的比如即时到帐集成很容易,担保交易的状态有几种,比如:是否支付成功,卖家是否发货,买家确认收获等.而即时到帐只有一种,就是是否已付款!最多还有个退款的功能.一般都没用到. 通过之前做项目:配资平台,有个预付费的功能,用到了支付宝的双功能收款,其实就是提供两种付款方式,即时到帐和担保交易.一般买家谨慎会选择担保. 下面说下具体的集成过程,第一:下载对应的集成接口包,比如即时到帐就下载即时到

通过拦截器Interceptor实现Spring MVC中Controller接口访问信息的记录

java web工程项目使用了Spring+Spring MVC+Hibernate的结构,在Controller中的方法都是用于处理前端的访问信息,Controller通过调用Service进行业务处理后给前端返回ModelAndView对象或者只返回Json格式数据.如果能够获得Http请求在后端程序中处理的相关信息,对于开发和调试时十分方便的.工程中使用了Spring MVC的Interceptor对所有Http请求及其响应进行拦截,从而获取到本次访问接口信息以及程序处理时长等信息,特意在

实战 Spring MVC接入支付宝即时到账 (部分代码)

下面就拿我项目中的部分代码来实践一下. 支付请求 首先,是提交表单 fund.jsp(这里我表单只需要用户填交易金额,其他的订单号之类的全部后台生成) <form id="deposit" name= "alipaysubmit" method="post" target="_blank"> <input type="hidden" name="user.id" val

企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET

先看效果: 1.本文演示的是微信[企业号]的H5页面微信支付 2.本项目基于开源微信框架WeiXinMPSDK开发:https://github.com/JeffreySu/WeiXinMPSDK 感谢作者苏志巍的开源精神 一.准备部分 相关参数: AppId:公众号的唯一标识(登陆微信企业号后台 - 设置 - 账号信息 - CorpID) AppSecret:(微信企业号后台 - 设置 - 权限管理 - 新建一个拥有所有应用权限的普通管理组 - Secret) Key:商户API密钥(登陆微信

pc端微信扫码支付和支付宝在线支付(还未验证 先留着)

本DEMO演示了PHP支付宝和微信扫码在线支付,支付成功后,在回调地址显示支付相关信息. 操作步骤: 1.修改配置文件 Application/common/conf/config.php $arr = array(     'DB_TYPE' => 'mysql',     'DB_HOST' => "localhost",     'DB_NAME' => 'demo',     'DB_USER' => "sucaihuo.com",