下载电脑网站的官方demo:

建议:新手第一次接入支付的还是下载看看,了解下,readme.txt好好看下,包括以后看第三方的此文件最好先浏览下,要不容易踩坑
下面会有专门sdk接入指南

下载:https://docs.open.alipay.com/270/106291/

阿里源码主要Demo

package com.alipay.config;/* **类名:AlipayConfig*功能:基础配置类*详细:设置帐户有关信息及返回路径*修改日期:2017-04-05*说明:*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。*/public class AlipayConfig {//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号public static String app_id = "2016102400748331";// 商户私钥,您的PKCS8格式RSA2私钥public static String merchant_private_key = "";// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。public static String alipay_public_key = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB\n";// 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问public static String notify_url = "http://工程公网访问地址/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问public static String return_url = "http://工程公网访问地址/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp";// 签名方式public static String sign_type = "RSA2";// 字符编码格式public static String charset = "utf-8";// 支付宝网关public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";// 支付宝网关public static String log_path = "C:\\";}

下面正式注册蚂蚁开发者账号

注册地址:https://open.alipay.com

选择如下

设置appid 以及ras密钥

ras在支付宝支付的应用(就是非对称假冒,公钥用来生成支付宝密钥【传输数据】,然后私钥在你程序中用来解密数据)

设置密钥

然后下载密钥生成工具如下

第三方sdk

<dependency><groupId>net.guerlab</groupId><artifactId>sdk-alipay-starter</artifactId><version>2.1.0</version>
</dependency>

然后将生成的公钥到网站上面粘贴,获取支付宝公钥,将支付宝公钥替换程序中的公钥,将你生成的私钥替换代码中的私钥

示例

spring:mvc:view:# 页面默认前缀目录prefix: /WEB-INF/jsp/# 响应页面默认后缀suffix: .jsp
server:port: 9999appid: wx60c1c374fd1329a2
secret: b6e4ebc42a1fa92d1ea7ea440e52d648
redirectUri: http://moran1012.natapp1.cc/callback
### 生成微信授权
authorizedUrl: https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
###获取code后,请求以下链接获取access_token
access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
###拉取用户信息(需scope为 snsapi_userinfo)
userinfo: https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
alipay:#默认false,为true表示使用沙箱环境dev: true#签名算法 RSA2 RSAsign-type: RSA2#应用IDapp-id: 2012101200736715#应用私钥private-key: MIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQDOP2FcM6sWiapQQqSBE4Y3OvXb6r0WVhmuZN9N7LdrQRV516Kxg4OL7goMei7i1gzY3becqhiVYdRG+q0WhZ3K0i8EecpUeTUG7avxMYFsc9CoQNd/IxRXy+qRrg6Y7QAvuwhSakse+k/3+VUVto/i3wIY+Satph//iIzawKqMRZxZbhX7SjvK4Iaajitvqd3NcWhmh179XxkBA3ySQoWXLNO2FFs8sdmpRVV5MweZBJVaGwW2OQpAMs4tkpdrWf2m8iFUanIRW/6GeApt58tlPgkkt3TyP9rAQPLY+fKxScbNaPbvB9E8ZGkKoaA9/TJZPwlKxtSF1x/k1pEAp5m1AgMBAAECgf8t6+7BmL9/RSemty/pjW9U3MvhK2Lulj0hl1QhBZPRTax6dIjE/YNMpLOYE5xc5Uv2/Wbkevr+R8n8A9SGLzny7tmJJZTnOhWUdVbTXTJz81WCIO3aYPUml0CjLx4Q7rQb7Ijt0LzpKNKgfeNz8jIXUZAl/1OdVl/JhZ3XFw7iLDbTACqTKCENTFz9XlJ80JsUCibDUJi2pqC4nZcHJOSxvPLVIOOFn7XdtuqdrwlWtAOk0m/Rbf1XVf6JPbS7dNgJk+n8c1TvRZz2wrid5m7ctuQyyxfdut0vZxBYgzZX10RXrXB1hZDHmyItZAUa0hmxUT/un9ufQ46r3QEd0w0CgYEA/Wp/m8eai6uyr+X7nHNg968EFF4phovTRd9W0XIRYqToylL3os9HIKE5U+/sekGEzX/70aqJxw9SiT/h5ADgejRL4piDWfJxu05tA/O3bboQBg1rPd1vkQOitaoyf9AO/Ge2ugjGGskkwosj9d5z5mz9GSpPS/ZyBpqOgghXN/8CgYEA0FnBm4wPVVwi/dU3VT8Jmj91R3IP4UyBTzcJlkVQ7ccCRbObuf9TOROcs7N7gUNVxksjVRnCF07aRYDYCN6EZkhVnwN+kzSDcO/3H2a6Ij+jfGtkfpMR0uhAz9OgbbJrJEZLlwFp3ilM2BAhADWaET2OxoTc2fUvjf1zksCgYBQuPflG3PzQcItncjEUUx2GV3nTwdTQH8QJtB07yzyiy1MJZmUVwqFLlYgkrB1USGIhFgmtXgl3I+iAKNoCY933ei+SW6t3Di2PYkkVSH85ePsyaF7l2nOe6X80DY92Hytkiv2nozcQ25eOgw+aZnpsJX+yidwPxSbXeg/K4D86QKBgHO+GO7HLNF3oLywENAbd8Mnk4hAFhBLxt3xrjK7iQy+bEW6VD1MWLgxa/DsOSUC+ghxP0yMRaVbGahYviqXKqgDcQUnUhUAyzaMLHiXEON1J3QcfoTuCEU67dsBaY37QiqPF5P0+y8k0cNKI0PaKZzrNjCwdrU4dCu9N5MAVV3nAoGBAKcTefy22LXuduw0HeTxR1JGwn9eg/whPVxSPPfFxNTGxKicoP4eKy4bQYSscI9cgS5GTFXqEHEaLeEKuLEV4/auZ/7b5+o+BfjsQnyaxV8A8fgQNAUv5Q7rU/zrgQM8E4MXP99bQNOJJgAjm7+dpRZ/GJL9SiAHkJL5h2McSNCh#支付宝公钥alipay-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhWdnts9UIBLSwIin1IToaCXc5xV2vX6BhOFms6K7pbzNVFCQ3tgnqrPbpjyI6ZUTwPTbhu3u+aafbC1hOQAsciBALxTP/pDe+AOPDoUo5Yj9D+Io+Q6d/sEDtsJQuaPpWMET0qM4Nngn1iroJYef4CbenjFMZ4IYzciBZlNgVzSgf6ZOvF9C7tAwpaURFs2r2e8HxoyUrv/T7oVU5Ws/a70FpQB4JuirKIeTLEE4fia9IjMOOmicXcFlpR0ht/m8ggAdr5o+hl+vU1EKcTUJKCogRdlt29DZQ2RLutr0tIaFAJ2kzoocLtQW7AyI8TnHZFDFqJiBap1GsQgltMGWBwIDAQAB

支付代码

/*** @ClassName AliPayController* @Description TODO* @Author moran* @Date 2020/4/21 16:04**/
@Slf4j
@RestController
@RequestMapping("/open/api/pay")
public class AliPayController {@Autowiredprivate AlipayClient client;@Autowiredprivate AlipayProperties properties;private static final String REDIRECT_WFWZS_URL = "http://moran1012.natapp1.cc/return_url.jsp";@GetMapping("/submit_pay")public void submitPay(HttpServletResponse response) throws AlipayApiException, IOException {JSONObject data = new JSONObject();String orderNo = System.currentTimeMillis()+ "";data.put("out_trade_no",orderNo ); // 商户订单号data.put("total_amount", "0.01"); // 订单金额data.put("subject", "测试支付宝下单"); // 订单标题data.put("product_code", "FAST_INSTANT_TRADE_PAY"); // 产品码, PC支付 FAST_INSTANT_TRADE_PAY,AlipayTradePagePayRequest requestAli = new AlipayTradePagePayRequest();requestAli.setNotifyUrl("http://moran1012.natapp1.cc/open/api/pay/notify_ali"); // 异步通知地址requestAli.setBizContent(data.toJSONString()); // 业务参数String returnUrl = REDIRECT_WFWZS_URL + "?orderNo=" + orderNo;requestAli.setReturnUrl(returnUrl);String from = client.pageExecute(requestAli).getBody();response.setContentType("text/html;charset=UTF-8");response.getWriter().write(from);}/*** 异步通知**/@PostMapping("/notify_ali")public void notifyAli(HttpServletRequest request, HttpServletResponse response) throws Exception {log.info("支付宝异步通知数据:{}", ServletUtil.getParamMap(request));if (!AlipayUtils.rsaCheck(properties, request.getParameterMap())) {// 这里处理验签失败log.error("支付宝异步通知验签失败");response.getWriter().write("fail");response.getWriter().flush();response.getWriter().close();} else {String out_trade_no = request.getParameter("out_trade_no");// 获取请求参数中的商户订单号log.info("支付宝异步通知验签成功,订单号:{}", out_trade_no);// 交易状态String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"), "UTF-8");if (trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")) {// TRADE_FINISHED 退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知// TRADE_SUCCESS 付款完成后,支付宝系统发送该交易状态通知// 判断该笔订单是否在商户网站中已经做过处理// 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序// 如果有做过处理,不执行商户的业务程序}response.getWriter().write("success");response.getWriter().flush();response.getWriter().close();}}}

前端页面请求支付

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script><body><button onclick="ww()">pay</button>
</body>
<script type="text/javascript">function pay(){$.ajax({url: "../open/api/pay/submit_pay",type: "get",success: function(r) {//将支付宝返回的数据渲染 div$("body").append(r);}})}
</script>

吊炸天SpringBoot接入支付宝支付【附关键代码】相关推荐

  1. SpringBoot 接入支付宝支付-证书模式

    SpringBoot 接入支付宝支付-证书模式 满足一下条件 1.注册支付宝商户,实名认证,获取APPID 2.申请支付宝公钥证书 3.有些复杂具体还是按照官方引导进行操作 产品大全 https:// ...

  2. SpringBoot接入支付宝支付API

    springboot接入支付宝api(网页或单独支付二维码) 更多内容可以参考支付宝开放平台:支付宝开放平台 (alipay.com) 支付宝沙箱:沙箱环境 - 支付宝文档中心 (alipay.com ...

  3. Java接入支付宝支付测试买iPhone13 pro max

    Java接入支付宝支付 一.介绍 二.沙箱 三.支付流程 四.准备支付宝 五.代码 1.前端代码 2.后端代码 六.测试 一.介绍 支付宝官方网站 支付宝(中国)网络技术有限公司是国内的第三方支付平台 ...

  4. Android 接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

  5. Android接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

  6. 腾腾流氓,云云更流氓(问微信怎样接入支付宝支付),手贱的赶紧点,你会感谢我的...

    草原上的两匹马! 打从当年微信开始布局公众号之初时,估计就已经想到了与支付宝正面冲突的场面,所以微信先来个瞒天过海,在春晚搞了个微信红包,那叫一个火呀,此时的云云隐隐感觉到些许不安. 早期的微信开发者 ...

  7. 2021-02-11-JavaWeb网站接入支付宝支付

    JavaWeb网站接入支付宝支付 前言 前序步骤 接入 pom.xml 在沙箱环境获取测试账号,以及付钱的账号 公钥私钥的生成可以下面这个工具 Controller层 模拟付款 前言 今天给大家分享一 ...

  8. 网站接入支付宝支付之扫码支付

    接入支付宝支付需要在支付宝开发平台创建应用获取appid,创建后需要审核,所以我们用支付宝提提供的沙箱环境开发测试. 首先登录支付宝开放平台,在开发者中心选择研发服务->沙箱环境->沙箱应 ...

  9. PHP 支付PC端扫码支付、APP接口调起支付宝支付、微信公众号接入支付宝支付

    第一:第三方支付原理 第二:支付接口申请流程 地址:https://docs.open.alipay.com/270/105899/ : 参考地址:https://blog.csdn.net/nove ...

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

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

最新文章

  1. axios使用post请求的时候后台接收不到参数
  2. MATLAB基础操作--命令窗口
  3. 【 NLS 】Gauss-Netwon algorithm Iteration Procedure of TOA - Based Positioning
  4. Numpy中array和matrix转换
  5. 《程序猿的呐喊》读书笔记(下)
  6. 利用SCCM2012中的导入计算机功能来实现定制化的操作系统部署
  7. MongoDB学习之(二)java连接
  8. RocketMQ(消息中间件)
  9. GitHub 近两万 Star,无需编码,可一键生成前后端代码
  10. 编程:中国有句俗话“三天打鱼两天晒网”,某人从1990年1月1日起三天打鱼两天晒网,编程计算他在某一天是打鱼还是晒网
  11. windows批处理修改IE主页
  12. html5绘制渐变图形-线性渐变
  13. 【论文】AlexNet 一
  14. 校园招聘——双选会感悟(前段学习总结)
  15. 接口请求中post与put的区别
  16. 在Unity中制作逼真的建筑场景
  17. 计算机专业英语课外笔记,手帐 | 有了这份笔记后 我终于爱上了英语
  18. 深入理解类加载机制:拨开迷雾见真章
  19. 干货分享丨​供应链管理-ERP的前世今生
  20. 大龄35,无教学经验,有教师资格证,想当老师,没有学校愿意培养怎么办?...

热门文章

  1. c语言函数初始化,c语言初始化输入和输出函数
  2. 搭建邮件系统与使用第三方邮件发送平台优劣详解
  3. Ubuntu搭建socks5服务
  4. 转:隐马尔可夫模型(HMM)攻略
  5. MATLAB 学习笔记(6)MATLAB 的 upsample 函数和 downsample 函数
  6. 怎样用python获取财经网新闻
  7. 使用linux时电脑突然蓝屏,win7系统电脑突然蓝屏的原因的原因和解决方法介绍
  8. Express全系列教程之(六):cookie的使用
  9. 280. 陪审团 poj1015(背包DP)
  10. SharePoint传出电子邮件配置