由于最近的一个SpringBoot项目中需要整合支付宝付款,所以将过程整理在此,方便查阅。测试前提需要一个支付宝提供的沙箱环境,如果你还没有这种测试账号,可以看姊妹篇获得支付宝沙箱账号

一、引入依赖

     <dependency><groupId>com.github.1991wangliang</groupId><artifactId>alipay-api</artifactId><version>1.0.0</version></dependency>

二、AliPayConfig配置类

该类作为AliPay的配置类,其中包含的信息已注释在其中,都可以在支付宝开放平台中找到,其中的notify_url与return _url字段是用于支付后的回调接口,这里就简单以百度为例。在实际的操作中我是做了一个内网映射,如果有感兴趣的小伙伴可以看我的另一篇文章《五分钟免费获得自己的永久域名,免费!永久!》。

package com.lsnu.travel.config;import org.springframework.stereotype.Component;/*** AliPay配置** @author Jenson* @since 2020/9/5 14:12**/
public class AliPayConfig {//商品appIdpublic static String APPID="";//生成的私钥public static String RSA_PRIVATE_KEY="";//服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,且需要公网地址(这里以百度为例)public static String notify_url="https://www.baidu.com";public static String return_url="https://www.baidu.com";//请求网关地址public static String URL="";//编码public static String CHARSET="";public static String FORMAT="json";//支付宝公钥public static String ALIPAY_PUBLIC_KEY="";//RSA2public static String SIGNTYPE="RSA2";}

三、前端页面

写了一个简单的表单,用于付款提交。

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"/><title>Title</title>
</head>
<body><form th:action="@{/pay}" method="post">单号:<input type="text" name="out_trade_no"/><br/>名称:<input type="text" name="subject"/><br/>金额:<input type="text" name="total_amount"/><br/>描述(可为空):<input type="text" name="body"/><br/>超时(秒可为空):<input type="text" name="time_out_express"/><br/>产品码:<input type="text" name="product_code"/><br/><br/><input type="submit" value="付款"></form>
</body>
</html>

四、后端代码

这里只是做了简单地测试功能,没有像失败补偿机制,幂等性等等很详细的步骤。

 @Autowiredprivate AliPayConfig aliPayConfig;@PostMapping("/pay")public String pay(String out_trade_no,String subject,String total_amount,String body,String time_out_express,String product_code) throws AlipayApiException {//1.封装Rsa签名方式AlipayClient client = new DefaultAlipayClient(aliPayConfig.URL,aliPayConfig.APPID, aliPayConfig.RSA_PRIVATE_KEY,aliPayConfig.FORMAT, aliPayConfig.CHARSET,aliPayConfig.ALIPAY_PUBLIC_KEY, aliPayConfig.SIGNTYPE);//2.创建Request请求AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();//封装传入参数AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();model.setOutTradeNo(out_trade_no); //订单号model.setBody(body);    //描述model.setProductCode(product_code); //商品码model.setSubject(subject);  //主题model.setTotalAmount(total_amount);    //价格model.setTimeoutExpress(time_out_express);   //超时时间//设置请求参数request.setBizModel(model);//设置异步回调地址request.setNotifyUrl(aliPayConfig.notify_url);//设置同步回调地址request.setReturnUrl(aliPayConfig.return_url);//生成表单String form = client.pageExecute(request).getBody();//如果支付失败的补偿机制log.info("确认订单[{}]付款成功",out_trade_no);//修改订单状态 ...return form;}

五、测试过程

进入index.html,输入相关数据后,点击浏览器付款就行。

然后选择我们申请的沙箱账号登录。

然后按照平常步骤操作就好,成功后会得到下面的结果

再次到沙箱中查看具体的账号信息,发现159.02已经从买家账户划到了商家账户中:

不过沙箱环境不是特别稳定,过程可能出现付款失败,多试几次就好。

SpringBoot整合支付宝付款(沙箱环境)相关推荐

  1. springboot整合支付宝沙箱支付

    springboot整合支付宝沙箱支付 1.简介 支付宝开发平台地址:https://open.alipay.com/develop/sandbox/app 对于学生来说,目前网上确实没有比较统一而且 ...

  2. SpringBoot整合支付宝支付接口 详解 (有源文件)

    目录 1.简介与支付接口运行原理 2.基本配置说明 3.支付接口实现 4.整合后沙箱测试 1.简介与支付接口运行原理 简介: 现在与钱有关的项目都离不开支付,现在就来介绍一下如何对接支付宝接口.演示项 ...

  3. SpringBoot整合支付宝之电脑网站支付

    SpringBoot整合支付宝之电脑网站支付 一.支付宝介绍 1.2 过程分析 1.3 对接支付宝的准备工作 1.4 申请步骤: 2.支付功能实现 2.1 思路分析 2.2 编写支付宝支付接口 2.2 ...

  4. 支付宝支付—沙箱环境使用

    前言 支付宝支付-沙箱环境使用「本文」 支付宝支付-支付宝PC端扫码支付 支付宝支付-手机浏览器H5支付 支付宝提供的沙箱环境,入门门槛非常低,不需要商家认证那一套,这一点对开发者是非常友好的,可以直 ...

  5. springboot整合支付宝微信支付案例+代码

    springboot支付宝微信支付 每天多学一点点~ 之前写好了一篇,不下心被覆盖的,我的锅....下次写博客记得导出来!!!! 话不多说,这就开始吧- 文章目录 springboot支付宝微信支付 ...

  6. 支付宝支付(沙箱环境)

    参考于:https://www.cnblogs.com/xifengxiaoma/p/10107635.html 1.这里我使用的是支付宝沙箱环境,先看一下实现效果 订单待支付页面: 当点击" ...

  7. 项目支付接入支付宝【沙箱环境】

    前言 订单支付接入支付宝,使用支付宝提供的沙箱机制模拟为订单付款.我这里主要记录一下沙箱环境如何接入到系统中,具体细节的实现.按照官方文档来就可以了. 1.使用步骤 这里有几个重要数据要拿到,一个是支 ...

  8. SSM集成支付宝(沙箱环境)

    1. 加入依赖 <!--支付宝--><dependency><groupId>com.alipay.sdk</groupId><artifactI ...

  9. Java 接入支付宝支付 - 沙箱环境

    Table of Contents 一.沙箱环境 二.下载 Java 版 dome 三.生成RSA2密钥 四.代码如下 4.1 AlipayConfig 4.2 AlipayVo 4.3 Alipay ...

最新文章

  1. TFS2008 基本安装
  2. Hadoop 数据类型与文件结构剖析 Sequence, Map, Set, Array, BloomMap Files
  3. 如何画功能稳定,美观的PCB?
  4. mysql 讲义_MySQL 讲义
  5. java代码顺序执行命令_将小程序安装到Java卡的APDU命令的顺序是什么?
  6. devops 开源_没有开源,就不会有DevOps
  7. 中国物流领域首次!菜鸟路径规划算法入围全球最高工业奖项
  8. sql 联合_SQL联合,SQL联合全部
  9. 如何利用VUE动态添加class样式
  10. 《转》牛顿法与拟牛顿法学习笔记
  11. c#进阶一:使用ILDASM来查看c#中间语言
  12. php开源代码推荐,非常好用的源代码网站推荐,用这些开源代码就够了
  13. flink 部署模式和运行时架构(会话模式、单作业模式、应用模式,JobManager、TaskManager,YARN 模式部署以及运行时架构)
  14. 累计独立访客(UV)不低于 1000 是什么意思,怎么推广呢解决1000呢?
  15. A64 base instruction -- orr
  16. HTML中 <img>标签的用法
  17. 什么样的人适合当领导
  18. 两个PDF比较标出差异_[连玉君专栏]如何检验分组回归后的组间系数差异?
  19. 如何把1个pdf拆分几个pdf
  20. 2022LOL微博杯模糊问题,1080p高清看微博杯the shy比赛直播

热门文章

  1. 7. 常见网络攻击欺骗手段与防护
  2. 帝国cms插件支持7.0/7.2 7.5/UTF-8 微信登入插件 一键登入
  3. 6个爱好编程者可以参与以促进放松
  4. .NET CORE项目设置起始页
  5. 软件测试职业生涯规划
  6. HDOJ 6082 度度熊与邪恶大魔王
  7. jquery 图片转为base64
  8. 【质数乘积且包含回文快速近积数】2021-11-22
  9. 如何将图一-1变成图1-1(word题注的大写变成小写)
  10. 面试时如何谈自己的兴趣爱好