Java集成支付宝沙箱支付,详细教程(SpringBoot完整版)

这篇具有很好参考价值的文章主要介绍了Java集成支付宝沙箱支付,详细教程(SpringBoot完整版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、开发前准备?

easy支付官方文档:https://opendocs.alipay.com/open/009ys9

通用版文档:https://opendocs.alipay.com/open/02np94

支付宝沙箱的配置:
注册支付宝开发者账户,进入开发者控制台

沙箱快捷入口:
https://open.alipay.com/develop/sandbox/app

java支付宝沙箱支付教程个人测试,java,spring boot
沙箱的界面:

java支付宝沙箱支付教程个人测试,java,spring boot

二、使用步骤

1、引入库

<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-easysdk</artifactId>
    <version>2.2.2</version>
</dependency>

2、配置在 application.yml 里面进行配置:

#阿里沙箱支付配置
alipay:
  #签名算法
  signType: 
  #应用ID
  appId: 
  #应用私钥
  appPrivateKey:
  #支付宝公钥
  publicKey: 
  #回调地址
  notifyUrl: 

3、alipay的java配置:AplipayConfig.java

/**
 * @author :Mr.ZJW
 * @date :Created 2023/9/20 17:40
 * @description:alipay沙箱环境配置
 */
@Slf4j
@Data
@Component
@ConfigurationProperties(prefix = "alipay")
public class AlipayConfig {

    /**
     * appId
     */
    private String appId;

    /**
     * 私钥
     */
    private String appPrivateKey;

    /**
     * 公钥
     */
    private String publicKey;

    /**
     * 回调地址
     */
    private String notifyUrl;

    /**
     * 支付宝配置初始化,公钥模式
     */
    @PostConstruct
    public void init() {
        Config config = new Config();
        //#基础配置
        config.protocol = "https";  //协议
        config.gatewayHost = "openapi.alipaydev.com";    //支付宝网关
        config.signType = "RSA2";   //签名方式
        //#业务配置
        config.appId = this.appId;  //应用id
        config.merchantPrivateKey = this.appPrivateKey;    应用私钥
        config.alipayPublicKey = this.publicKey;    //支付宝公钥
        config.notifyUrl = this.notifyUrl;  //回调地址
        Factory.setOptions(config);
        log.info("支付宝配置初始化完成");
    }

}

4、支付接口

import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;
import com.google.common.collect.Maps;
import com.jowell.common.exception.base.BaseException;
import com.jowell.common.response.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @author :Mr.ZJW
 * @date :Created 2023/9/20 17:53
 * @description:支付controller
 */
@Slf4j
@RequestMapping("/alipay")
@Controller
@ResponseBody
public class TestAlipayController {

    /**
     * 支付接口
     *
     * @param subject     名称
     * @param outTradeNo  订单号
     * @param totalAmount 金额
     * @return /
     */
    @GetMapping("/pay")
    public String pay(String subject, String outTradeNo, String totalAmount) {
        AlipayTradePagePayResponse response;
        try {
            response = Factory.Payment.Page().pay(subject, outTradeNo, totalAmount, "");
        } catch (Exception e) {
            log.error("支付宝付款调用失败,原因:" + e.getMessage());
            throw new BaseException("网络异常,请刷新后重试");
        }
        return response.getBody();
    }

接口测试:
访问URL进行测试,测试的url格式:http://localhost:10000/alipay/pay?subject=支付测试&outTradeNo=D239211000000&totalAmount=1

效果:
java支付宝沙箱支付教程个人测试,java,spring boot
进行用买家账号密码登录:
java支付宝沙箱支付教程个人测试,java,spring boot
输入支付密码进行支付:
java支付宝沙箱支付教程个人测试,java,spring boot

支付成功:
java支付宝沙箱支付教程个人测试,java,spring boot

4、回调接口

回调接口要有一个外网域名,这里可以使用花生壳以及我分享过的一遍文章:
文章链接:https://blog.csdn.net/javaeEEse/article/details/117983797?spm=1001.2014.3001.5502

java支付宝沙箱支付教程个人测试,java,spring boot
把这个域名复制到配置文件里的回调地址上。

回调完整代码:文章来源地址https://www.toymoban.com/news/detail-830805.html

    /**
     * 支付宝回调
     */
    @PostMapping("/notify")
    public Result<String> notify(HttpServletRequest request) {
        log.info("支付宝回调成功");
        //校验是否成功
        if ("TRADE_SUCCESS".equals(request.getParameter("trade_status"))) {
            //#解析回调数据
            Map<String, String> params = Maps.newHashMap();
            Map<String, String[]> requestParams = request.getParameterMap();
            for (String name : requestParams.keySet()) {
                params.put(name, request.getParameter(name));
            }
            //订单号
            String tradeNo = params.get("out_trade_no");
            //支付金额
            String gmtPayment = params.get("gmt_payment");
            //支付宝交易凭证号
            String alipayTradeNo = params.get("trade_no");
            //#支付宝验签,防止不法分子伪造请求
            try {
                Boolean flag = Factory.Payment.Common().verifyNotify(params);
                if (Boolean.TRUE.equals(flag)) {
                    log.info("交易名称: " + params.get("subject"));
                    log.info("交易状态: " + params.get("trade_status"));
                    log.info("支付宝交易凭证号: " + params.get("trade_no"));
                    log.info("商户订单号: " + params.get("out_trade_no"));
                    log.info("交易金额: " + params.get("total_amount"));
                    log.info("买家在支付宝唯一id: " + params.get("buyer_id"));
                    log.info("买家付款时间: " + params.get("gmt_payment"));
                    log.info("买家付款金额: " + params.get("buyer_pay_amount"));
                } else {
                    log.error("异步通知验签失败");
                    return Result.error("fail");
                }

            } catch (Exception e) {
                log.error("异步发生异常{}", e.getMessage());
                return Result.error("fail");
            }
            //#进行一些业务逻辑,如更新订单等操作
        }
        return Result.success();
    }

到了这里,关于Java集成支付宝沙箱支付,详细教程(SpringBoot完整版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHP实现支付宝支付(沙箱)完整版,亲测可用

    demo 请狠狠的戳这里 ¥  https://download.lllomh.com/cliect/#/product/LA07512258233358 demo 请狠狠的戳这里 c   https://download.csdn.net/download/lllomh/28926037 沙箱测试,登陆我们个人的支付宝账号 地址:支付宝开放平台 第一次登陆的账户来说是需要填写信息注册 信息填写完成会跳转到这个页面,

    2023年04月11日
    浏览(77)
  • Java集成建行龙支付接口(详细)

    目录 一、准备工作 二、开始对接 三、总结 一、准备工作 1. 获取建行龙支付对接文档( 注意:建行会给指定邮箱发送16个rar的压缩包 )都下载完才能获取到完整文档,解压完可以看到名为“ 建行龙支付接入指南V1.32 ”的文件夹,里面的内容为 6个文件夹1个pdf文档 。 2. 获取

    2024年02月09日
    浏览(42)
  • 基于 Spring Boot 支付宝沙箱支付(Java 版本)

    打开沙箱地址:https://open.alipay.com/develop/sandbox/app 需要获取 :AppId、支付宝网关地址、应用私钥、支付宝公钥 注册 https://natapp.cn/ 购买免费隧道 注意:需要记住这个 authtoken,配置文件用得到 配置隧道 文件 config 配置 配置文件需要与 natapp 放在同级目录下 启动 natapp 为什么要

    2024年01月23日
    浏览(39)
  • Java实现支付宝沙箱环境支付,SDK接口远程调试

    转发自cpolar内网穿透的文章:Java支付宝沙箱环境支付,SDK接口远程调试【内网穿透】 Maven Spring boot Jdk 1.8 获取支付宝支付Java SDK,maven项目可以选择maven版本,普通java项目可以在GitHub下载,这里以maven为例 SDK下载地址:https://doc.open.alipay.com/docs/doc.htm?treeId=193articleId=103419docType=1 选择

    2024年02月06日
    浏览(41)
  • Java开发者必备:支付宝沙箱环境支付远程调试指南

    🔥 博客主页 : 小羊失眠啦. 🔖 系列专栏 : C语言 、 Linux 、 Cpolar ❤️ 感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地

    2024年02月08日
    浏览(36)
  • Java支付SDK接口远程调试 - 支付宝沙箱环境【公网地址调试】

    转发自CSDN远程穿透的文章:Java支付宝沙箱环境支付,SDK接口远程调试【内网穿透】 Maven Spring boot Jdk 1.8 获取支付宝支付Java SDK,maven项目可以选择maven版本,普通java项目可以在GitHub下载,这里以maven为例 SDK下载地址:https://doc.open.alipay.com/docs/doc.htm?treeId=193articleId=103419docType=1 选择

    2023年04月18日
    浏览(35)
  • 公网环境调试本地配置的Java支付宝沙箱环境模拟支付场景

    在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地,局限性大,在沙箱环境中有多种支付场景,往往是多人联合开发,本地环境可能无法满足异地联合,所以把本地环境变成公网环境下进行调试开发会更好。 本次教程,我们将使用支付宝平台提供的沙箱环境,在本地配

    2024年01月22日
    浏览(44)
  • Java支付宝沙箱环境支付,SDK接口远程调试【内网穿透】

    转发自CSDN远程穿透的文章:Java支付宝沙箱环境支付,SDK接口远程调试【内网穿透】 Maven Spring boot Jdk 1.8 获取支付宝支付Java SDK,maven项目可以选择maven版本,普通java项目可以在GitHub下载,这里以maven为例 SDK下载地址:https://doc.open.alipay.com/docs/doc.htm?treeId=193articleId=103419docType=1  选择

    2024年02月02日
    浏览(40)
  • 如何使用Java支付宝沙箱环境并公网调用sdk创建支付单服

    1.测试环境 Maven Spring boot Jdk 1.8 2.本地配置 获取支付宝支付Java SDK,maven项目可以选择maven版本,普通java项目可以在GitHub下载,这里以maven为例 SDK下载地址:https://doc.open.alipay.com/docs/doc.htm?treeId=193articleId=103419docType=1 选择最新版的SDK版本 复制maven坐标,导入spring boot项目pom 文件里面

    2024年01月22日
    浏览(39)
  • 本地配置Java支付宝沙箱环境模拟支付并内网穿透远程调试

    在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地,局限性大,在沙箱环境中有多种支付场景,往往是多人联合开发,本地环境可能无法满足异地联合,所以把本地环境变成公网环境下进行调试开发会更好。 本次教程,我们将使用支付宝平台提供的沙箱环境,在本地配

    2024年02月04日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包