支付宝沙盒(java使用支付宝)springboot

news2024/11/26 8:17:01

目录

前言

注册账号(直接搜索支付宝沙盒)

​编辑

具体代码编写

Application配置(按自己需求添加)

config(这里需要亲自添加appid,privateKey,publicKey)

controller类

Service类

ServiceImpl类

运行

请求地址

请求接口后出现下面界面


前言

本来想直接对接到自己的账号的,结果支付宝开发者账号申请支付,需要有公司营业执照(没有不能使用),有沙盒练手也行。

注册账号(直接搜索支付宝沙盒)

具体代码编写

Application配置(按自己需求添加)

server:
  port: 9190

config(这里需要亲自添加appid,privateKey,publicKey)

public class AlipayConfig {
    /**
     * 支付宝网关地址
     */
    public static String serverUrl = "https://openapi-sandbox.dl.alipaydev.com/gateway.do";
    /**
     * appId
     */
    public static String appId = "";
    /**
     * 应用私钥 后期替换成自己的私钥
     */
    public static String privateKey = "";
    /**
     * 发送数据的格式 目前只能为json
     */
    public static String format = "json";
    /**
     * 设置字符集编码 目前只能为utf-8
     */
    public static String charset = "utf-8";
    /**
     * 支付宝公钥 后期替换成自己的支付宝公钥
     */
    public static String publicKey = "";
    /**
     * 支付宝签名 目前是 RSA2
     */
    public static String signType = "RSA2";
    public static AlipayClient getAlipayClient() {
        // 获得初始化的AlipayClient
        return new DefaultAlipayClient(AlipayConfig.serverUrl, AlipayConfig.appId,
                AlipayConfig.privateKey, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.publicKey,
                AlipayConfig.signType);
    }
}

controller类

@RestController
@RequestMapping("alipay")
public class PayController {

    @Autowired
    private AliPayServiceImp aliPayServiceImp;
    /**
     * 支付请求接口
     */
    @RequestMapping("pay/{orderId}/{cost}/{aliname}") // 订单id(不能重复)和消费金额
    public void pay(@PathVariable String orderId,@PathVariable String cost,@PathVariable String aliname, HttpServletResponse response){
        boolean pay = aliPayServiceImp.pay(orderId, cost,aliname, response);
    }

}

Service类

public interface AliPayService {
    boolean pay(String orderId, String cost ,String aliname, HttpServletResponse response);

}

ServiceImpl类

回调地址:成功后请求到的地址,可以直接使用,百度地址:https://www.baidu.com。

@Service
public class AliPayServiceImp implements AliPayService {

    @Override
    public boolean pay(String orderId, String cost, String aliname, HttpServletResponse response) {
        try {
        AlipayClient alipayClient = AlipayConfig.getAlipayClient();
        // 设置请求参数
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        AlipayTradePayModel model = new AlipayTradePayModel();
        model.setOutTradeNo(orderId);
        // 设置订单金额
        model.setTotalAmount(cost);
        // 订单名字
        model.setSubject(aliname);
        // 订单描述
        model.setBody("这是"+aliname+"的消费订单");
        // 产品码
        model.setProductCode("FAST_INSTANT_TRADE_PAY");
        // 设置参数
        alipayRequest.setBizModel(model);
        // 设置回调地址
        String url = "http://localhost:9528/#/example/index";
        System.out.println(url);
        alipayRequest.setReturnUrl(url);
        String result = alipayClient.pageExecute(alipayRequest).getBody();
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().println(result);
        return true;
    } catch (Exception e) {
        e.printStackTrace();
    }

        return false;
    }
}

运行

请求地址

http://localhost:9190/alipay/pay/222987226543232/509/111

请求接口后出现下面界面


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1632250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenNJet产品体验丨从零部署一个炫酷的Web服务器

本文记录了使用OpenNJet从零部署一个Web服务器的心得体会。 OpenNJet官方网站:https://njet.org.cn/ 一、基本信息 产品名称 OpenNJet 体验版本 2.1.0 体验设备 VMware16Ubuntu18.04 体验时间 2024.4.23 体验耗时 1.5 h 二、产品信息 产品简介&#x…

【13-支持向量机(SVM):Scikit-learn中的分类与回归】

文章目录 前言理解SVM核心概念SVM的优势SVM的劣势Scikit-learn中的SVM实现安装与导入数据准备SVM分类SVM回归调优与最佳实践总结前言 支持向量机(SVM)是一种强大的机器学习算法,用于解决分类、回归和异常检测问题。它的核心思想是找到一个最优超平面,使得不同类别之间的边界…

一文了解云原生应用引擎的领跑者:OpenNJet

一文了解云原生应用引擎的领跑者:OpenNJet 1. 什么是应用引擎2. NGINX 架构与 NJet架构的区别3. OpenNJet 编译与安装步骤3.1 配置编译环境-CentOS 编译环境配置3.2 编译代码 4. OpenNJet 的基本使用4.1 系统目录结构及功能说明4.2 基础命令 5. 快速上手-如何通过 O…

4.Docker本地镜像发布至阿里云仓库、私有仓库、DockerHub

文章目录 0、镜像的生成方法1、本地镜像发布到阿里云仓库2、本地镜像发布到私有仓库3、本地镜像发布到Docker Hub仓库 Docker仓库是集中存放镜像的地方,分为公共仓库和私有仓库。 注册服务器是存放仓库的具体服务器,一个注册服务器上可以有多个仓库&…

IP纯净度对跨境电商有什么直接影响?

IP纯净度对跨境电商具有直接且深远的影响。在跨境电商的运作中,IP地址扮演着至关重要的角色,而IP纯净度则直接关系到跨境电商的网络安全性、访问效果以及业务竞争力。 第一点,纯净的IP地址对于提升跨境电商的网络安全性具有关键作用&#xf…

AI项目二十:基于YOLOv8实例分割的DeepSORT多目标跟踪

若该文为原创文章,转载请注明原文出处。 前面提及目标跟踪使用的方法有很多,更多的是Deepsort方法。 本篇博客记录YOLOv8的实例分割deepsort视觉跟踪算法。结合YOLOv8的目标检测分割和deepsort的特征跟踪,该算法在复杂环境下确保了目标的准…

信创 | 信创产品行业有哪些?已取得了哪些进展?

信创产业是一条庞大的产业链,涉及IT基础设施产品(如CPU芯片、服务器、存储、交换机、路由器等),以及基础软件、应用软件、网络安全等领域。信创产业的核心目标是建立自主可控的信息技术底层架构和标准,全面推进国产替代…

Models_M1

a1 Hugging Face a2 openai/whisper-large-v3 示 a3 ByteDance/Hyper-SD 示​​​​​​​ a4 OpenGVLab/InternV…

LeetCode-旋转链表

每日一题,很久没做链表的题了,今天做l一道相对简单的力扣中等难度题。 题目要求 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出&…

FPGA 以太网概念简单学习

1 MAC和PHY 从硬件的角度来说,以太网接口电路主要由 MAC ( Media Access Control )控制器和物理层接口 PHY(Physical Layer , PHY )两大部分构成。 MAC 指媒体访问控制子层协议,它和 PHY 接…

使用yolov8+QT+onnrunxtime进行开发的注意事项

1、本来想尝试做一个C的yolov8在QT5.15.2的应用; 因此,在实现这个目标的时候,我先用了yolov8自带的export进行导出,使用的代码很简单,如下所示: import os from ultralytics import YOLO# model YOLO(&q…

优卡特脸爱云一脸通智慧平台 UpLoadPic.ashx 文件上传致RCE漏洞复现

0x01 产品简介 脸爱云一脸通智慧管理平台是一套功能强大,运行稳定,操作简单方便,用户界面美观,轻松统计数据的一脸通系统。无需安装,只需在后台配置即可在浏览器登录。功能包括:系统管理中心、人员信息管理中心、设备管理中心、消费管理子系统、订餐管理子系统、水控管理…

uniapp分包,以及通过uni-simple-router进行分包

先说一下uniapp的直接分包方式,很简单: 配置分包信息 打开manifest.json源码视图,添加 “optimization”:{“subPackages”:true} 开启分包优化 我们在根目录下创建一个pagesA文件夹,用来放置需要分包的页面 然后配置路由 运行到…

OpenNMS安装

环境要求 硬件要求 Just Testing 1Minimum Server Specification 2Minimum Server Specification 2CPU2GHz dual core x86_643GHz quad core x86_64 and aboveRAM4GB (physical)16GB (physical) and aboveStorage (disk space)50-GB HDD, SSD1TB with SSD and above You can i…

Python并发编程:揭开多线程与异步编程的神秘面纱

第一章:并发编程导论 1.1 并发与并行概念解析 1.1.1 并发性与并行性的区别 想象一下繁忙的厨房中多位厨师同时准备不同的菜肴——即使他们共享有限的空间和资源,也能协同工作,这就是并发性的一个生动比喻。并发性意味着多个任务在同一时间…

基于 dockerfile 编写LNMP

目录 一. 环境准备 二. 部署 nginx 2.1 建立工作目录,并上传需要的安装包 2.2 配置 nginx.conf 文件 2.3 编写 dockerfile 2.4 构建一个新的镜像 2.5 启动一个新的容器 三. 部署MySQL 3.1 建立工作目录,并上传安装包 3.2 编写 Dockerfile 3.…

ROS学习笔记(14)拉普拉斯变换和PID

0.前提 近些时间在对睿抗的ROS仿真赛进行小组安排,对小组成员进行了一些安排,也要求他们以本次比赛写下自己的比赛经历博客,他们的培训由我来安排和负责,因此我得加吧油,起码保证我的进度得快过他们,才能安…

源码编译安装curl _ 统信UOS _ 麒麟KOS _ 中科方德

原文链接:源码编译安装curl | 统信UOS | 麒麟KOS | 中科方德 Hello,大家好啊!今天我们来探讨一个非常实用的话题:在统信UOS、麒麟KOS以及中科方德桌面操作系统上如何从源码编译安装curl。Curl是一个广泛使用的命令行工具和库&…

【Kafka】Kafka高性能之道(六)

Kafka高性能之道 Kafka高性能原因 高效使用磁盘 1)顺序写磁盘,顺序写磁盘性能高于随机写内存。 2)Append Only 数据不更新,无记录级的数据删除(只会整个segment删s除)。读操作可直接在page cache内进行。如果进程重启,JVM内的cache会失效&a…

Pandas dataframe 中显示包含NaN值的单元格

大部分教程只讲如何打印含有NA的列或行。这个函数可以直接定位到单元格,当dataframe的行和列都很多的时候更加直观。 # Finding NaN locations for df.loc def locate_na(df):nan_indices set()nan_columns set()for col, vals in df_descriptors.items():for in…