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

2024-01-08 08:40:02

目录

一、安装支付宝支付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 = "";

重新运行,测试结束。

文章来源:https://blog.csdn.net/m0_62946761/article/details/133013491
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。