spring boot支付宝沙箱环境测试支付功能

目录

一、安装支付宝支付demo

二、配置demo信息

三、配置回调地址和异步地址

四、内网穿透

(一)简介

(二)使用场景

(三)内网穿透的几个常用软件

(四)使用natapp


一、安装支付宝支付demo

选择Java版本,下载后是一个eclipse项目

SDK & Demo 获取 - 支付宝文档中心 (alipay.com)

导入ideal参考:IDEA导入Eclipse项目步骤详解-CSDN博客 

二、配置demo信息

在AlipayConfig中配置,需要配置的信息如下:

//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

	// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
	public static String app_id = "";
	
	// 商户私钥,您的PKCS8格式RSA2私钥
    public static String merchant_private_key = "xxx";
	
	// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    public static String alipay_public_key = "xxx";

	// 服务器异步通知页面路径  需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 = "";
	
	// 支付宝网关
	public static String log_path = "";

首先我们进入沙箱支付宝开放平台 (alipay.com)

沙箱会分配APPID还有支付宝网关地址支付宝 - 网上支付 安全快速! 

日志路径log_path可以不写,接下来是商户私钥和支付宝公钥,一共四把钥匙,支付宝需要知道我们应用的公钥,密钥自己藏着,然后我们也需要知道支付宝的公钥,其关系如下图所示:

在沙箱中点击自定义密钥,然后选择公钥模式,可以获取支付宝公钥

接着下载支付宝密钥生成器密钥工具下载 - 支付宝文档中心 (alipay.com),(傻瓜式安装,最多自定义一下安装路径),生成完成后要把公钥配置在上面的应用公钥那,应用私钥配置在代码中,如此还欠回调地址和异步地址,但是已经可以启动项目了,不影响整体运行。

//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

	// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
	public static String app_id = "9021015688664745";
	
	// 商户私钥,您的PKCS8格式RSA2私钥
    public static String merchant_private_key = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCYVu3TUNAskQBtOk3Ghqr7QCMl47SdMgsFHgDtCO0j8WuMX7c1dr6Lrn0FenJk12P2PZ72ei1pYWjNU73nshKQUttJ0ZJ8rKKclMvUCPfFQyXtwd1m9r/ZUpFzhHcvuVeKyfTKEGKsdZu1unHf2a9BC/lOeXOsa7nU0Kr+KZHoRRQRra5rXhrYDCk9xvr45gJl1eWyR3vFEBLmKlJF6B5noUgs8QkCKcO4s6tZ2W64j5E6v/CJkOUHE9fz7XdgAzOEiDwFworgty+U4Zy6oYUnGbaPit2zqTQBItB1JAoGBAJb/mZwW8Atu9uaT6ooFFgR7y9MwD2PcjugKnvf1Ll+eiRg3qMQGrNhxNRQ2jCD6rQUYgjnLgd7WFY5RYok0tQfEHP4aNK7nN0Hd150oMwTTa5c44XipM1+G2QrzBtIEKTEQbx0mL2HkFqvstONKWDhKFexMxmqJbzixygriKvzBAoGACE+3kyPXCsOCQCxmaJuJovm9dmyMgktEtrPxhFDRfsYqOc6xyKd84LgzFNNKmcuhMVI2cTphHQw0M5l2wDhOQbKSh26t2urwZIGbHSa3v2tb/dKpkXi0gu63Y7PpsNYx1ZOKuSAStz8gv5TnqoCrPFynJKFWMhW4C0VqLVsLSvg=";
	
	// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    public static String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wnAk9KNZf8hkPzI0KwEXu8ebXRgiRs8UXOd9O8LYScDHBBNTqTgexHaGJHeOXtZf8WLo6rBFfJRFedMOTcFk9S9j7arLdvqnAew7DUzE7bWl4jgPzcs5FH1CV2nCsURwrUKUvtx9cbRTCA82hDvC0uPDO6IDkj40tfYxJtL1IjIlMzfwbh4cMRXbZxo0VetjTe/BMG7JuQBokdnXpy84dGTOK8oJC/gJCOai65l57KcuSKXcG3EmlhqUZaq8HF4Rg9A7ScdSQ7Xu7bAp6XxOIkrw2VFEyA+93zEj2x6fWr3RTNsYez3Xjy1QhXoqeaZQQckolvc3huTfsT8eV2QVQIDAQAB";

	// 服务器异步通知页面路径  需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-sandbox.dl.alipaydev.com/gateway.do";
	
	// 支付宝网关
	public static String log_path = "";

付款账号可以使用沙箱中给我们的,还能自己无限充钱

启动时报错:

Error:(1, 1) java: 非法字符: ‘\ufeff’

Error:(1, 10) java: 需要class, interface或enum  

解决:

Error:(1, 1) java: 非法字符: '\ufeff'_浪里小菜鸡的博客-CSDN博客

 三、配置回调地址和异步地址

配置成localhost:8080?确实可以,因为项目就在本机运行,但需要考虑到的是,买家在世界各地,支付完后访问不了这两个页面,为什么京东可以在全世界各地防问,因为有域名,所以我们需要一个域名可以映射本机localhost:8080,使得外网可以访问内网,这里介绍内网穿透

    // 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
    public static String notify_url = "http://localhost:8080/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";

    // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
    public static String return_url = "http://localhost:8080/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp";

四、内网穿透

(一)简介

内网穿透功能可以允许我们使用外网的网址来访问主机;
正常的外网需要访问我们项目的流程是:
1 、买服务器并且有公网固定 IP
2 、买域名映射到服务器的 IP
3 、域名需要进行备案和审核

(二)使用场景

1 、开发测试(微信、支付宝)
2 、智慧互联
3 、远程控制
4 、私有云

(三)内网穿透的几个常用软件

1 natapp https://natapp.cn/ 优惠码: 022B93FD 9 折) [ 仅限第一次使用 ]
2、花生壳: https://www.oray.com/

(四)使用natapp

在网站中注册后下载客户端:NATAPP-内网穿透 基于ngrok的国内高速内网映射工具

新手教程:NATAPP1分钟快速新手图文教程 - NATAPP-内网穿透 基于ngrok的国内高速内网映射工具 

下载config.ini并放在客户端同一目录下,配置authToken后直接双击启动exe客户端, Forwarding行即为 域名->ip:端口

完成后将其配置到代码中

//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

	// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
	public static String app_id = "9021015688664745";
	
	// 商户私钥,您的PKCS8格式RSA2私钥
    public static String merchant_private_key = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCYVu3TUNAskQBtOk3Ghqr7QCMl47SdMgsFHgDtCO0j8WuMX7c1dr6Lrn0FenJk12P2PZ72ei1pYWjNU73nshKQUttJ0ZJ8rKKclMvUCPfFQyXtwd1m9r/ZUpFzhHcvuVeKyfTKEGKsdZu1unHf2a9BC/lOeXOsa7nU0Kr+KZHoRRQRra5rXhrYDCk9xvr45gJl1eWyR3vFEBLmKlJF6B5noUgs8QkCKcO4s6tZ2W64j5E6v/CJkOUHE9fz7XdgAzOEiDwFworgty+U4Zy6oYUnGbaPit2zqTQBItB1JAoGBAJb/mZwW8Atu9uaT6ooFFgR7y9MwD2PcjugKnvf1Ll+eiRg3qMQGrNhxNRQ2jCD6rQUYgjnLgd7WFY5RYok0tQfEHP4aNK7nN0Hd150oMwTTa5c44XipM1+G2QrzBtIEKTEQbx0mL2HkFqvstONKWDhKFexMxmqJbzixygriKvzBAoGACE+3kyPXCsOCQCxmaJuJovm9dmyMgktEtrPxhFDRfsYqOc6xyKd84LgzFNNKmcuhMVI2cTphHQw0M5l2wDhOQbKSh26t2urwZIGbHSa3v2tb/dKpkXi0gu63Y7PpsNYx1ZOKuSAStz8gv5TnqoCrPFynJKFWMhW4C0VqLVsLSvg=";
	
	// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    public static String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wnAk9KNZf8hkPzI0KwEXu8ebXRgiRs8UXOd9O8LYScDHBBNTqTgexHaGJHeOXtZf8WLo6rBFfJRFedMOTcFk9S9j7arLdvqnAew7DUzE7bWl4jgPzcs5FH1CV2nCsURwrUKUvtx9cbRTCA82hDvC0uPDO6IDkj40tfYxJtL1IjIlMzfwbh4cMRXbZxo0VetjTe/BMG7JuQBokdnXpy84dGTOK8oJC/gJCOai65l57KcuSKXcG3EmlhqUZaq8HF4Rg9A7ScdSQ7Xu7bAp6XxOIkrw2VFEyA+93zEj2x6fWr3RTNsYez3Xjy1QhXoqeaZQQckolvc3huTfsT8eV2QVQIDAQAB";

	// 服务器异步通知页面路径  需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-sandbox.dl.alipaydev.com/gateway.do";
	
	// 支付宝网关
	public static String log_path = "";

重新运行,测试结束。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ckplayer如何设置键盘的方向左和方向右是快退或快进多少秒?

默认是20秒,那怎么按照自定义的配置呢? 打开文件:“.\ckplayer\js\ckplayer.js” 然后在下面的函数中修改就可以了: 下面的代码我已经修改为了按一次方向左键为快退3秒,按一次方向右键为快进5秒。 /** fastBack* 功能&…

第03章_运算符与流程控制

第03章_运算符与流程控制 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题脉络 1. 运算符(Operator) 运算符是一种特殊的符号,用以表示数据的运算、赋…

DevOps搭建(十五)-kubernetes部署项目详细步骤

1、k8s简介 k8s官网地址 https://kubernetes.io/zh-cn/docs/home/ 2、安装kuboard 详细步骤可参考官网 https://kuboard.cn/install/install-k8s.html 2.1、环境准备 至少 2 台 2核4G 的服务器。 选择v1.19,因为高版本的已经把docker给舍弃掉了。 https://k…

Vue3插件开发教程:步步指导如何编写Vue3插件

关注⬆️⬆️⬆️⬆️ 专栏后期更新更多前端内容 文章目录 Vue3 插件插件注册形式插件主要的场景使用插件Vue3 插件 插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。 插件注册形式 一个插件可以是一个拥有 install() 方法的对象,也可以直接是一个安装函数本身。 i…

Transformer从菜鸟到新手(三)

引言 这是Transformer的第三篇文章,上篇文章中我们了解了多头注意力和位置编码,本文我们继续了解Transformer中剩下的其他组件。 下篇文章会介绍完整的训练过程。 层归一化 层归一化想要解决一个问题,这个问题在Batch Normalization的论文…

【JaveWeb教程】(1)Web前端基础:HTML+CSS入门不再难:一篇文章教你轻松搞定HTML与CSS!

目录 1. 前端开发介绍2. HTML & CSS2.1 HTML快速入门2.1.1 操作2.1.2 总结 2.2 开发工具2.3 基础标签 & 样式2.3.1 新浪新闻-标题实现2.3.1.1 标题排版2.3.1.1.1 分析2.3.1.1.2 标签2.3.1.1.2 实现 2.3.1.2 标题样式2.3.1.2.1 CSS引入方式2.3.1.2.2 颜色表示2.3.1.2.3 …

书生·浦语大模型趣味 Demo笔记及作业

文章目录 笔记作业基础作业:进阶作业: 笔记 书生浦语大模型InternLM-Chat-7B 智能对话 Demo:https://blog.csdn.net/m0_49289284/article/details/135412067书生浦语大模型Lagent 智能体工具调用 Demo:https://blog.csdn.net/m0_…

大模型日报-20240108

M(2)UGen:利用 LLM 理解和生成音乐 https://github.com/shansongliu/M2UGen M (2) UGen 模型是一种音乐理解和生成模型,能够从文本、图像、视频和音频中进行音乐问答和音乐生成,以及音乐编辑。该模型利用编码器,如用于音乐理解的…

代码随想录day60:贪心算法|84.柱状图中最大的矩形

84. Largest Rectangle in Histogram 进行优化,如果我们想获得left就给他left即可,我们只需要在求宽度的时候用到left,而没必要修改原数组。 所以给栈插入一个虚拟索引-1 思考过程: left应该为多少呢? 首先确定left是什么&#…

吴飞教授 人工智能 模型与算法 启发式搜索课件发散分析

一、文章介绍 本文是针对吴飞教授在MOOC课程 :《人工智能:模型与算法》 2.1节 启发式搜索的课前发散 在课程2.1节 启发式搜索章节中,吴飞教授以如何计算城市地图两点之间最短路径为例,重点讲授了贪婪最佳优先搜索和A*搜索算法&a…

Materialise Mimics各版本安装指南

Materialise Mimics下载链接 https://pan.baidu.com/s/1GYnAuXfbgk_n-OXLNSOt6w?pwd0531 1.鼠标右击【Materialise Mimics21】压缩包(win11及以上系统需先点击“显示更多选项”)【解压到 Materialise Mimics21】。 2.打开解压后的文件夹,鼠…

网页设计与制作web前端设计html+css+js成品。电脑网站制作代开发。vscodeDrea 【企业公司宣传网站(HTML静态网页项目实战)附源码】

网页设计与制作web前端设计htmlcssjs成品。电脑网站制作代开发。vscodeDrea 【企业公司宣传网站(HTML静态网页项目实战)附源码】 https://www.bilibili.com/video/BV1Hp4y1o7RY/?share_sourcecopy_web&vd_sourced43766e8ddfffd1f1a1165a3e72d7605

大学物理-实验篇——用拉伸法测定金属丝的杨氏(弹性)模量(胡克定律、杨氏模量、平面反射镜、三角函数、螺旋测微器)

目录 预备知识 力学:胡克定律(Hookes law) 材料力学:杨氏模量 光学:平面反射镜 数学:三角函数 螺旋测微器 实验目的 实验仪器 实验原理 1.拉伸法测杨氏弹性模量 2.光杠杆放大法测量微小伸长量 …

Mac M1 Parallels CentOS7.9 Install Parallels Tools

一、挂载parallels-tools安装包 mkdir /media/cdrom/ mount /dev/cdrom /media/cdrom/ mount: /dev/sr0 写保护,将以只读方式挂载二、GCC升级 yum install -y centos-release-scl yum install -y devtoolset-8-gcc*# 切换当前会话中gcc版本为8 scl enable devtool…

HarmonyOS应用开发学习笔记 UIAbility组件与UI的数据同步 EventHub、globalThis

1、 HarmoryOS Ability页面的生命周期 2、 Component自定义组件 3、HarmonyOS 应用开发学习笔记 ets组件生命周期 4、HarmonyOS 应用开发学习笔记 ets组件样式定义 Styles装饰器:定义组件重用样式 Extend装饰器:定义扩展组件样式 5、HarmonyOS 应用开发…

重磅!图扑软件获评国家级专精特新“小巨人”企业

2023 年 7 月,工业和信息化部审核并公布了第五批国家级专精特新“小巨人”企业,图扑软件成功入选,荣膺国家级专精特新“小巨人”企业称号。 此次荣获国家级专精特新“小巨人”企业称号,不仅是对图扑软件在可视化和数字孪生领域专业…

ARCGIS PRO SDK Geoprocessing

调用原型:Dim gpResult AS IGPResult await Geoprocessing.ExecuteToolAsync(调用工具名称, GPValue数组, environment, null, null, executeFlags) 一、调用工具名称:地理处理工具名称。如面转线:management.PolygonToLine,而非…

实例:NodeJS 操作 Kafka

本人是C#出身的程序员,c#很简单就能实现,有需要的可以加我私聊。但是就目前流行的开发语言,尤其是面向web方向应用的,我感觉就是Nodejs最简单了。下面介绍: 本文将会介绍在windows环境下启动Kafka,并通过n…

java contains区分大小写吗?String的contains方法区分大小写

文章目录 一、contains区分大小写二、重写contains方法,实现忽略大小写 一、contains区分大小写 Java中的contains方法默认是区分大小写的,如果要忽略大小写,可以使用String类的equalsIgnoreCase()方法来代替。 Java中的contains方法默认是…

STM32CubeMX教程20 SPI - W25Q128驱动

目录 1、准备材料 2、实验目标 3、实验流程 3.0、前提知识 3.1、CubeMX相关配置 3.1.1、时钟树配置 3.1.2、外设参数配置 3.1.3、外设中断配置 3.2、生成代码 3.2.1、外设初始化调用流程 3.2.2、外设中断调用流程 3.2.3、添加其他必要代码 4、常用函数 5、烧录验…