iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在Springboot中添加支付接口
  • 797
分享到

怎么在Springboot中添加支付接口

2023-06-14 12:06:41 797人浏览 薄情痞子
摘要

本篇文章为大家展示了怎么在SpringBoot中添加支付接口,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 支付宝支付接口(沙箱实现)1.1 支付宝沙箱账号获取如下图:此处可以自行设置账户金额1

本篇文章为大家展示了怎么在SpringBoot中添加支付接口,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1. 支付宝支付接口(沙箱实现)

1.1 支付宝沙箱账号获取

如下图:

怎么在Springboot中添加支付接口

此处可以自行设置账户金额

1.2 下载客户端(目前好像只支持Android

怎么在Springboot中添加支付接口

下载完成后根据官方提供的账号以及密码登录手机端支付宝账号 如图(商家账号):

怎么在Springboot中添加支付接口

1.3 代码配置

工具类AlipayConfig

public class AlipayConfig {//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓    // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号    public static String app_id = "";    // 商户私钥,您的PKCS8格式RSA2私钥    public static String merchant_private_key = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC/HOeQNyultzkc5cUnqxBSTIpYt6BTgJoCHKiLQDYgPhjvSX16r08Qw82qYdQgWEs4hHNy2COGA5ksw1eW+zyY2alcTEvRMo4sqx7Ytdm250f67wZQkuPRFSJN7ywHkTipjGKNcS9z9U0Dp18jRXHow4/A9OF8jOau7pWyG0Tc87WHf5u0/G16uMpRtGRzzyNvim7cHAnyFPNrAJ+5DRBdhBg+PjV7EcpYg5LRaMQaO8qDSis+AUU4e7QOELqMgr7yxBNScQ6KksnWnztcFxz6M9T66dAZJ0dWpiB8qatM6sT/MeHTAXeYLhIbnUaxM9vGJR3AJHbHmvNa9o0ToT0LAgMBAAECggEBaik1a1szAPc9EJgaru3H9zPfGASR8V2CGxAhGzC+rR2A9830aU5HxvA2Y9ZL3kxKl9a/4VM2smpo8vQcWypevibPPrSxYk2Tilevk7nq9aBHdHpIWbRHgaB/F930NRxJuvCfhbIe7P7Hwr84zyk3loySuwbByZHuZ0B4sqjowwwN/wbshl5m/5i4ej6AUp1LVEbxUFpNHNjIZejWVJ0Liq69l8o+1HsFIaGW1Vcrf+fmq20moZzFOLi4EmGfBp/na8JDmo3bE3X+ccAJ375OYictfZVKKYI/UIC/D+7y4XuZatLq3V3lql5ukMnAUJwtJeEapSigkJHDOX38xcSA7iECgYEA5qvIl7PGl8CwDOgTe8LoT8toTUmhAVDFwSF+ROCZD8u9qQeGG7SSCovoTQcVDuzVA3bW8d4Guvb7ZTpnUZZyWHD2rOqxh76wqHGiVTJRApNTS7XHXt3FERNgM7Y8lSoYHdarsZ7QZaJDGGkcwuGvJM0klwyuqs6LQq5DRsz9qp8CgYEA1BkiCjD5FUE/i48MFh+qYcOSiqsm7Hrj/4zuHj0QODonuUZPH0V6b3p4SIWHeBsjmSxBsqoLh3qFOzWAUeBVU3+muPHP3uglumtjZ5wE0nHCt2+0ZH+QKSk5mm8j+09xfTJ185FMusx0N9RQ4l6Rpzb7DSLQFelT4M7gvTRjAhUCgYAtUPQwcV4DdBRiBLnHJ4xSGMjd3igmRQMEpRrUVzdathEFgvfiu3+xWLkDYO/PJdHXQ2KI07CIzHqo8WdYzPCb1V1wrQ7BdB06ilB04lSt59mGVyjax0Cu0RqmLhgKyeFBA2ppk6SnQtBhnEzNMF8jILYegpxR7A/JwshuwVjYSwKBgQCTxfMGgLp6iZxZgs/b9jICrX1DKh5Tc0e5PBqHbOoJEtOsbYUg94pncz+s34PUNaxmwwP/FCS2M4wiBZOi+Bba9zxU7Q+R49KtgLaGCH6XlPUiUyyvPIVXeEaPB9Jc/SvIG8k8a0a3e02ZvE6G1hETQj2GGZv0ENiSpRQKBgC8qOk7TMndVDi3vlgGky3BmxSpycwGnI0tcBZnzAyzcLPH3RL3nLvUoZ1w550be7mPDt30/WkCMKV8uKRnNVSrp1LSbT0Z6oJxsaHaCxv3C2UFzlqKWsTtiKNKhYEhjsMYj6l2nRg2CC0WIAA6MPP3xaezSWO1la39Slam0w3l";    // 支付宝公钥,查看地址:https://openhome.alipay.com/platfORM/keyManage.htm 对应APPID下的支付宝公钥。    public static String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvxznkDcrpbc5HOXFJ6sQUkyKWLegU4CaAhyoi0A2ID4Y70l9eq9PEMPNqmHUIFhLOIRzctgjhGoZLMNXlvs8mNmpXb4pu3BwJ8hTzawCfuQ0QXYQYPj41exHKWiOS0WjKmjvKg0orPgFFOHu0DhC6jIK+8sQTUnEOipLJ1p87XBcc+jPU+unQGSdHVqYgfKmrTOrE/zHh0wF3mC4SG51GsTPbxiUdwCR2x5rzWvaNE6E9CwIDAQAB";    // 服务器异步通知页面路径  需Http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问    public static String notify_url = "http://localhost:8080/alipay/alipayNotifyNotice.action";    // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问    public static String return_url = "http://localhost:8080/alipay/alipayReturnNotice.action";    // 签名方式    public static String sign_type = "RSA2";    // 字符编码格式    public static String charset = "utf-8";    // 支付宝网关    public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";    // 支付宝网关    public static String log_path = "C:\\";//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑        public static void logResult(String sWord) {        FileWriter writer = null;        try {            writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");            writer.write(sWord);        } catch (Exception e) {            e.printStackTrace();        } finally {            if (writer != null) {                try {                    writer.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }}

其中的参数获取如下: app_id

怎么在Springboot中添加支付接口

商户私钥,以及支付宝公钥获取方法参考官方文档:密钥生成

页面跳转便是支付以后自动跳转的界面

接下来解释编写下单页面:

    @RequestMapping(value = "/goAlipay", produces = "text/html; charset=UTF-8")    @ResponseBody    public String goAlipay(String orderId, HttpServletRequest request, HttpServletRequest response) throws Exception {         order = (Order) request.getSession().getAttribute("order");    orderId="FinchII";        //获得初始化的AlipayClient        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "JSON", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);        //设置请求参数        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();        alipayRequest.setReturnUrl(AlipayConfig.return_url);        alipayRequest.setNotifyUrl(AlipayConfig.notify_url);        //商户订单号,商户网站订单系统中唯一订单号,必填        String out_trade_no = orderId;        //付款金额,必填        BigDecimal total_amount = order.getTotalPrice();        //订单名称,必填        int subject = order.getOrderId();        //商品描述,可空        String body = "用户订购商品个数:" + order.getLineItems().size();        // 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。        String timeout_express = "1c";        alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\","                + "\"total_amount\":\""+ total_amount +"\","                + "\"subject\":\""+ subject +"\","                + "\"body\":\""+ body +"\","                + "\"timeout_express\":\""+ timeout_express +"\","                + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");        //请求        String result = alipayClient.pageExecute(alipayRequest).getBody();        return result;    }    @RequestMapping(value = "/alipayReturnNotice")    public ModelAndView alipayReturnNotice(HttpServletRequest request, HttpServletRequest response) throws Exception {        //获取支付宝GET过来反馈信息        Map<String,String> params = new HashMap<String,String>();        Map<String,String[]> requestParams = request.getParameterMap();        for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {            String name = (String) iter.next();            String[] values = (String[]) requestParams.get(name);            String valueStr = "";            for (int i = 0; i < values.length; i++) {                valueStr = (i == values.length - 1) ? valueStr + values[i]                        : valueStr + values[i] + ",";            }            //乱码解决,这段代码在出现乱码时使用            valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");            params.put(name, valueStr);        }        boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset, AlipayConfig.sign_type); //调用SDK验证签名        ModelAndView mv = new ModelAndView("alipaySuccess");        //——请在这里编写您的程序(以下代码仅作参考)——        if(signVerified) {            //商户订单号            Order order= (Order) request.getSession().getAttribute("order");            BigDecimal out_trade_no = order.getTotalPrice();            //支付宝交易号            String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");            //付款金额            String total_amount = new String(request.getParameter("total_amount").getBytes("ISO-8859-1"),"UTF-8");            // 修改叮当状态,改为 支付成功,已付款; 同时新增支付流水                       mv.addObject("out_trade_no", out_trade_no);            mv.addObject("trade_no", trade_no);            mv.addObject("total_amount", total_amount);                  }else {                   }        return mv;    }        @RequestMapping(value = "/alipayNotifyNotice")    @ResponseBody    public String alipayNotifyNotice(HttpServletRequest request, HttpServletRequest response) throws Exception {        //获取支付宝POST过来反馈信息        Map<String,String> params = new HashMap<String,String>();        Map<String,String[]> requestParams = request.getParameterMap();        for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {            String name = (String) iter.next();            String[] values = (String[]) requestParams.get(name);            String valueStr = "";            for (int i = 0; i < values.length; i++) {                valueStr = (i == values.length - 1) ? valueStr + values[i]                        : valueStr + values[i] + ",";            }            //乱码解决,这段代码在出现乱码时使用//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");            params.put(name, valueStr);        }        boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset, AlipayConfig.sign_type); //调用SDK验证签名        //——请在这里编写您的程序(以下代码仅作参考)——        if(signVerified) {//验证成功            //商户订单号            String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");            //支付宝交易号            String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");            //交易状态            String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");            //付款金额            String total_amount = new String(request.getParameter("total_amount").getBytes("ISO-8859-1"),"UTF-8");            if(trade_status.equals("TRADE_FINISHED")){                //判断该笔订单是否在商户网站中已经做过处理                //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序                //如果有做过处理,不执行商户的业务程序                //注意: 尚自习的订单没有退款功能, 这个条件判断是进不来的, 所以此处不必写代码                //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知            }else if (trade_status.equals("TRADE_SUCCESS")){                //判断该笔订单是否在商户网站中已经做过处理                //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序                //如果有做过处理,不执行商户的业务程序                //注意:                //付款完成后,支付宝系统发送该交易状态通知                // 修改叮当状态,改为 支付成功,已付款; 同时新增支付流水                           }                   }else {//验证失败                   }        return "success";    }

上述内容就是怎么在springboot中添加支付接口,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么在Springboot中添加支付接口

本文链接: https://www.lsjlt.com/news/270979.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Springboot中添加支付接口
    本篇文章为大家展示了怎么在Springboot中添加支付接口,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 支付宝支付接口(沙箱实现)1.1 支付宝沙箱账号获取如下图:此处可以自行设置账户金额1...
    99+
    2023-06-14
  • Springboot添加支付接口
    目录1. 支付宝支付接口(沙箱实现)1.1 支付宝沙箱账号获取1.2 下载客户端(目前好像只支持Android)1.3 代码配置1. 支付宝支付接口(沙箱实现) 1.1 支付宝沙箱...
    99+
    2024-04-02
  • 怎么在SpringBoot中添加JSP支持
    今天就跟大家聊聊有关怎么在SpringBoot中添加JSP支持,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。序言:SpringBoot默认不支持JSP,如果想在项目中使用,需要进行相...
    99+
    2023-05-31
    springboot jsp bo
  • springboot中怎么对接微信支付
    springboot中怎么对接微信支付,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对接的完整流程如下首先是配置gzh.appid=公众号appidwxPay.mchId=...
    99+
    2023-06-20
  • 在PHP中如何处理支付接口?
    随着互联网和电子商务的快速发展,支付接口成为了一个非常重要的环节。而PHP作为一种广泛使用的网站开发语言,其处理支付接口的能力也受到了广大开发者的关注。在本文中,我们将探讨如何使用PHP处理支付接口,并介绍几种常用的支付接口处理方案和相关的...
    99+
    2023-05-14
    PHP 支付接口处理 支付流程
  • Python中怎么实现一个支付接口
    这篇文章给大家介绍Python中怎么实现一个支付接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先定义数据如下:用的测试平台的数据data=[   "", ...
    99+
    2023-06-17
  • java对接支付宝支付接口开发是怎样的
    本篇文章为大家展示了java对接支付宝支付接口开发是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一步(先要在支付宝进行操做,拿到我们需要开发的信息后在动代码)进入蚂蚁金服,我们先要创建应用...
    99+
    2023-06-22
  • PHP中怎么实现一个支付宝接口
    这期内容当中小编将会给大家带来有关PHP中怎么实现一个支付宝接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在使用支付宝支付的时候,首先必须注册一个支付宝的账户,然后下载支付宝提供的接口文件,通过支付宝...
    99+
    2023-06-17
  • Java Springboot整合支付宝接口的方法是什么
    本篇内容主要讲解“Java Springboot整合支付宝接口的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Springboot整合支付宝接口的方法是什...
    99+
    2023-07-05
  • python中怎么实现一个快速支付接口
    今天就跟大家聊聊有关python中怎么实现一个快速支付接口,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先定义数据如下:#用的测试平台的数据data=[  &n...
    99+
    2023-06-17
  • Android中怎么接入支付宝实现支付功能
    本篇文章为大家展示了Android中怎么接入支付宝实现支付功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.登录官网他的官网就是蚂蚁金服的开放平台了,我们可以访问 蚂蚁金服开放平台 ,并且注册账...
    99+
    2023-05-31
    android
  • 使用Spring MVC如何调用支付宝接口完成在线支付
    本篇文章为大家展示了使用Spring MVC如何调用支付宝接口完成在线支付,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一步:完善沙箱信息 进入支付宝的开发者中心 就可以看到有个沙箱环境...
    99+
    2023-05-31
    springmvc
  • java对接支付宝支付项目怎么实现
    本篇内容主要讲解“java对接支付宝支付项目怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java对接支付宝支付项目怎么实现”吧!java对接支付宝支付演示现在有不少的项目都需要对接支付...
    99+
    2023-07-02
  • 在springboot项目中拦截器怎么添加
    这篇文章给大家介绍在springboot项目中拦截器怎么添加,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。构建一个spring boot项目。添加拦截器需要添加一个configuration@Configuration...
    99+
    2023-05-31
    springboot 目中 拦截器
  • 怎么在win10中添加本地连接
    本篇文章给大家分享的是有关怎么在win10中添加本地连接,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Win10桌面右下角的网络图标中右键,然后点击【打开网络共享中心】,如下...
    99+
    2023-06-15
  • CentOS中怎么添加端口
    CentOS中怎么添加端口,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。添加端口: # /sbin/iptables -I INPUT -p tcp --dpo...
    99+
    2023-06-10
  • 如何在PHP项目中实现支付接口和订单处理?
    如何在PHP项目中实现支付接口和订单处理?随着电子商务的快速发展,支付接口和订单处理成为了一个PHP项目中不可或缺的组成部分。本文将介绍如何在PHP项目中实现支付接口和订单处理的方法和步骤。一、支付接口的选择和集成首先,我们需要选择一个适合...
    99+
    2023-11-02
    支付接口 订单处理
  • 怎么在CentOS中添加动态链接库
    今天就跟大家聊聊有关怎么在CentOS中添加动态链接库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第一:在/etc/profile中添加共享库的路径:[plain] vi...
    99+
    2023-06-10
  • 如何在Android App中接入微信支付
    目录微信支付App内支付扫码支付统一下单API获取code_url,并使用第三方二维码生成库 如ZXing 生成二维码。查询订单API本篇简单介绍Android App中接入微信支付...
    99+
    2024-04-02
  • 为什么不要在PHP接口的URL中添加后缀
    随着互联网的飞速发展,越来越多的网站和应用程序都已经转向了Web API(应用程序接口),其目的是为了提高系统的扩展性和可用性。同时,随着PHP的使用不断地增加,很多PHP程序员也开始使用PHP来开发Web API。然而,在使用PHP开发W...
    99+
    2023-05-14
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作