沙箱内万物基于重定向
重定向,顾名思义,就是重新指定方向,也就是说沙箱能够做到让沙箱内软件操作的文件、注册表等路径重定向到其他位置(沙箱指定位置),这样软件本来想操作的资源就不会被访问或者操作,保证资源的安全性。
这也就是使用沙箱跑一些不明软件的原因,万一软件被恶意修改过,存在病毒,想破坏系统关键文件,也就不可能了。
重定向我们还有个高级的词叫做“虚拟化”,也可以称作'隔离',说到底沙箱就是为程序提供一个虚拟化环境,也就是隔离环境,并保证程序所有操作都在这个隔离环境内。
支付宝开放平台官网:https://open.alipay.com/
1.搜索进入支付宝开放平台
2.登录,进入控制台
3.进入沙箱
【其中有用的几个信息:APPID、支付宝网关地址、应用公钥】
4.进入支付宝开发助手下载所需的工具(度娘搜索就有)下载工具

安装完后打开工具---------在这里提前复制一下 “ 应用公钥 ”

5.然后打开沙箱应用按照顺序操作

6.进入文档中心下载demo在应用沙箱页面中有许多产品列表

下载好后由于是eclipse文件所以不能直接在idea运行,首先先创建一个web项目然后将下列的文件复制到项目中去
【idea创建web项目:https://blog.csdn.net/m0_70083523/article/details/127396262?spm=1001.2014.3001.5502】

下载的文件是这样的:我们只需要复制文件到IDEA中就好【注意:idea中建立的web项目有一个index.jsp,先删除了避免复制跳过,下面文件也有index,jsp】

IDEA完整的项目目录如图:

7.进行项目的修改与配置
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.11version>
<scope>testscope>
dependency>
<dependency>
<groupId>com.alipay.sdkgroupId>
<artifactId>alipay-sdk-javaartifactId>
<version>3.4.49.ALLversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>5.3.22version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>servlet-apiartifactId>
<version>2.5version>
<scope>providedscope>
dependency>
<dependency>
<groupId>org.apache.httpcomponentsgroupId>
<artifactId>httpclientartifactId>
<version>4.5.9version>
dependency>
<dependency>
<groupId>commons-logginggroupId>
<artifactId>commons-loggingartifactId>
<version>1.1.3version>
dependency>
<dependency>
<groupId>javax.servlet.jspgroupId>
<artifactId>jsp-apiartifactId>
<version>2.2version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>servlet-apiartifactId>
<version>2.5version>
dependency>
dependencies>

注意这几个地方的内容要改:
1.应用ID就是你的支付宝ID-----沙箱应用里面的ID
2.商户私钥就是下载的那个软件生成的--
3.支付宝公钥是开发平台---"查看"处
4.剩下两个地方的地址修改【第三步】需要一项技术叫做“内网穿透”,这个有文档教程【https://blog.csdn.net/m0_70083523/article/details/127202792】5.支付宝网关【第四步】
要修改的地址
// 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = "要修改的地址/notify_url.jsp";
// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String return_url = "要修改的地址/return_url.jsp";
支付宝沙箱环境里面找到 // 支付宝网关
public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";
【以上操作和代码就完成了,整个任务就剩测试】
8.Tomcat服务器运行▶第一次运行可能会出错,看下控制台可能会有utf-8或者别的字符的原因的话就是去修改一下编码【IDEA右下角】


9.进入环境▶先将它换成GBK,运行,在换回utf-8,运行【不知原因】。等待服务器运行跳转进入沙箱环境

▶进入付款页面之后----登录

▶可以进入沙箱找到沙箱账号

▶【有商家也有买家,咱们登录买家就行,账号复制上去输入支付密码就行了,过会支付成功你刷新账号页面就能看到商家余额和买家余额都变了。】
▶ 1 . 代码环境出错------按照上面操作一般不会出错,就记得编码那个地方得改一下再改回来。
▶ 2 . 环境没问题,点击付款后没有登录页面,出现

报上述错误需要我们去找客服了,有文档说在…………下方评论自己的APPID,那个方法我用不了,那个界面就静态,响应不了(可能宝在维护吧)
所以我就直接问了客服【官方页面右下角】-----开始提问,发送用的支付宝的什么产品和报错,他会为你解答操作(很快的被回复了~~)
