Java调支付宝接口最新版

Java调支付宝接口最新版!

技术: Java+SpringBoot+Maven+沙箱测试

时间: 2022/3/1日发布

  1. 新建SpringBoot添加Web模块不多介绍了,肯定都会

  2. 添加支付宝的依赖

    <dependency>
        <groupId>com.alipay.sdk</groupId>
        <artifactId>alipay-sdk-java</artifactId>
        <version>4.22.32.ALL</version>
    </dependency>
    
  3. 开始配置沙箱

    地址: https://open.alipay.com/platform/appDaily.htm

    在旧版本还需要自动生成公钥私钥,但是新版已经为您生成好了,直接用就可以…

    沙箱简介:

在这里插入图片描述

点击公钥模式,查看,里面参数后面用到

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
账号就是一个买家一个卖家 比较简单,就介绍到这里,下面开始上代码

  1. 模拟一张页面,方便POST请求,代码如下

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>支付宝支付测试</title>
        </head>
        <body>
            <h1>商品购买页面</h1>
            <form action="/buy" method="post">
                <p>商品单号:<input type="text" name="out_trade_no"></p>
                <p>商品名称:<input type="text" name="subject"></p>
                <p>付款金额:<input type="text" name="total_amount"></p>
                <p>商品描述:<input type="text" name="body"></p>
                <p>支付超时时间:<input type="text" name="timeout_express"></p>
                <p>销售产品码:<input type="text" name="product_code"></p>
                <p><input type="submit" value="提交"></p>
            </form>
        </body>
    </html>
    
  2. 开始对交易做一些基础的配置,下面的config类上面都打了注释,也就不跟大家一个一个介绍了,大部分都是上面介绍沙箱时候用到的参数

    我这里支付成功就跳转百度,你们可以根据你们的需求来

    大家不喜欢用Java类也可使用配置文件,之后IO读取是一样的,代码如下

    /**
     * @author: ZhouXK
     * @date: 2022/3/1-17:06
     * @describeL: 支付宝接口参数
     */
    public class AliPayConfig {
    	/**
    	 * 商户APPId
    	 */
    	public static String APPID = "2021000119626311";
    	/**
    	 * 私钥
    	 */
    	public static String RSA_PRIVATE_KEY = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC78A16/43Px6/HdN4s4sbC5jy3SrLa136cvxEZ8O7ckcW7bpqWqHTXkI6qv+AsTAtzgc+0OA4AfumsRYAAi5DFMcLS1gnDhLxbtnbTcvednP/dd4KobfuN8IOPt0FeCiC4SRX+4ttqYF3J3+WagD7NOOBZ0Aa8Rvct1z+pl7e9QryYZ0tXnG6Mcn+EUFDsHKvMpy4S9XgRUW8IMObLRfCx9VSnaEy6ahR3pKAzYseWA1VzUKIy0eFtf5iE94p/axh3NwUEpboR5mrpb+W6egQE782lImwrQwfMXeLCWNgsyVD0ViwLIe5HV3T0Uf+WcqALctDrzltOFvjvbJYbMNZJAgMBAAECggEAPwujagyKpRZGyHFTCtm0dbNI0PAVGcbKqYiLExm493NLUroiz8GJGLtcsLkXWaTU/pWgeMOJJu9sMidKbmRjV1N/GL1GnzlK+rU2HW7m1A/T4ZZy1U+34IC7kZ2XJxXcrhWOdGfj1Uaoj801N+QnrS6UTGy1pblkuBMKPzkvISTLDx75en3ShQO2Ts+icY5t9k0PlozjJTcGpt1ltly778oJR5UG3V9izkCWm5/ZyDrf/IvKbXYfxtfQO2NFc8JONenoI5awe7bDlSn/NQuzDFu94sQZXUzzgGY0392tn56rue6Ibwpc9B4zffaxWpbA43MkLIhOB/derJqqIYW9BQKBgQD1F7gyguCWtIfiPEIi+QeECqWUQifgB8W5e8Vrxl/J1Qq2eODJou9xy0/g2fj/ifpl8JTULlXXRNQCwhoi+DCNrDsX81RyIiB28IJUmhKCr7wKEL9P8P+HAtEXHQUd8P2DU+zfi6DA3ky7WpGa8HOgohQwzNUkg0Ni8ueX7ICBIwKBgQDETS5K2XgwijwQAbZ7uDjfva+aWxXWtKsdi4jIVBY0UVMr2c1ElJga56GCIfgmzrJbkJ3ASTPpfzolNHvuiyfXfcrqIKS2KyUJdPrKXpYC7ujRgw+DqMatrwQZjpdIMowO67w8p7b5YMLQd9RcBEdcilWVDRIUZ0xIhGSXAv0/owKBgENslAqpQHmVDnCpXRRb57pmZ2iizm9uE/HT39qnRwCyL/FEzaoKvc5TPRVBQaOi5JSYm4jHemvvDlf359LI7ip7QAJ1uTxwsPencGMvw3naOGOYedjXFqSgnL68CAVVn5g6RUa2FbIZNYixAK9cCKMfE2jdYKFbzvTwl8+Oi0d7AoGAaTJ3WXNbfp/F+koAsiKSkAzGO3EOrgYaIXYycjDlyVm/uaM55sO/E8QIAIYVxy5D1OAWOgLAyCP/VArhU3/NdSUbhgbCXkGW0o+XCrZPq/i+WfDjcooTFubQyqVomy9DcYeRU+wJGXFqVW+yJTHB0Gzt2jer9bU54y7X/TmD4AMCgYEA3L3SYNFh9txoOd7dtJaBzj52Eiu6LOWGV2wQLYoiKLfaoa7+RUjDK6CWs6LxVd6aKtjOchxNA052Feu1XyMNKNlbfT5HPpOrGcoLCn0qHYX/D3/jiftECGz7M6Sp9jvLXamiIMhGQCm8Dnv9PCA0DIXdsQJ4ldRvZ5RbvnT244c=";
    	/**
    	 * 异步通知URL
    	 */
    	public static String NOTIFY_URL = "https://www.baidu.com/";
    	/**
    	 * 同步通知URL
    	 */
    	public static String RETURN_URL = "https://www.baidu.com/";
    	/**
    	 * 请求网关地址
    	 */
    	public static String URL = "https://openapi.alipaydev.com/gateway.do";
    	/**
    	 * 编码格式
    	 */
    	public static String CHARSET = "UTF-8";
    	/**
    	 * 返回格式
    	 */
    	public static String FORMAT = "json";
    	/**
    	 * 支付宝公钥
    	 */
    	public static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlhRcorwMswcYN61r8AY7/qX6vASrDKbr1N4GvXUV1z7kIJvMNCiNrbO90pqr788gqf7TJVIRjWjgvVhTZiYWUBveKeho2C4XnZXFk2d6QY2jOBpWCXsjC+5ggp4njDdwj5thD2ujo7/reepgpC+KHHaPJ5iZ4JTifDHE4qJ1KBJNIikmNokQIT3YNKpdYSD8eRhQqi2lXOo1Fj7IuKESMGdG+JHo1p+s0Z3XTdVkuWlNxxClO0WxU89Vq+0FRbSh4R2jaC+LiKwtwHVUnYkbSgmToukb4vBjjmB2HbWYKbKJw018RMiDhziRVYjupF6wBPyfUuSkubCj4//yYgi8xwIDAQAB";
    	/**
    	 * 加密方式
    	 */
    	public static String SIGNTYPE = "RSA2";
    }
    
  3. 接下来就写Controller层

    /**
     * @author: ZhouXK
     * @date: 2022/3/1-17:19
     * @describeL: 支付宝支付接口
     */
    @Controller
    public class ShopAlipayController {
    
        @PostMapping("/buy")
        @ResponseBody
        //这个接收的参数就是前端页面那几个参数,这是MVC的东西,如果可以我建议你封装一个DTO对象啥的...
        public String test(HttpServletResponse response, String out_trade_no, String subject, String total_amount, String body, String timeout_express, String product_code) throws IOException {
            /**
    		 * 支付宝签名方式,参数讲解,跟配置类里面的参数是照应的,如果不想要配置类,直接把值写到这里面也ok
    		 * 1.请求网关
    		 * 2.收款人Id
    		 * 3.支付宝私钥
    		 * 4.返回格式
    		 * 5.编码格式
    		 * 6.支付宝公钥
    		 * 7.加密方式
    		 */
            AlipayClient alipayClient = new DefaultAlipayClient(
                AliPayConfig.URL,
                AliPayConfig.APPID,
                AliPayConfig.RSA_PRIVATE_KEY,
                AliPayConfig.FORMAT,
                AliPayConfig.CHARSET,
                AliPayConfig.ALIPAY_PUBLIC_KEY,
                AliPayConfig.SIGNTYPE
            );
            //创建Request请求,这个是支付宝提供的
            AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
            // 封装参数
            AlipayTradeWapPayModel payModel = new AlipayTradeWapPayModel();
            payModel.setOutTradeNo(out_trade_no);
            payModel.setSubject(subject);
            payModel.setTotalAmount(total_amount);
            payModel.setBody(body);
            payModel.setTimeoutExpress(timeout_express);
            payModel.setProductCode(product_code);
            request.setBizModel(payModel);
            //设置异步地址
            request.setNotifyUrl(AliPayConfig.NOTIFY_URL);
            //设置同步回调地址
            request.setReturnUrl(AliPayConfig.RETURN_URL);
            //生成表单
            String form = null;
            try {
                form = alipayClient.pageExecute(request).getBody();
            } catch (AlipayApiException e) {
                e.printStackTrace();
            }
            return form;
        }
    }
    

    之后请求localhost:8080默认跳转index.html,参数随便填写,请求就完事了

在这里插入图片描述

浏览器付款,这样用沙箱账号,或者直接下载一个沙箱版APP也是可以的

在这里插入图片描述

剩下的就是登录成功付款成功之后跳转百度了… 走到这里教程就结束了,加油,打工人!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值