目录
沙箱环境测试支付宝支付
沙箱环境 是用来测试的,非正式环境。
支付宝开放平台:https://open.alipay.com/
登录到支付宝的开放平台–进入控制台–开发工具选择【沙箱】
分析图
只有验签成功才会进入到支付宝的支付界面(验签部分就是密钥的加密解密过程)
下载安装密钥:
安装:
生成密钥:
1、打开就是这个界面,无需修改,直接点击【生成密钥】
2、生成的密钥
打开文件配置里面有密钥的文件
沙箱环境配置
3、因为支付宝需要公钥进行解密,所以需要把公钥设置到支付的沙箱环境中。
把生成的应用公钥复制后(参考上图),拷贝到沙箱环境中
4、点击保存后
解释支付宝自动生成的公钥的作用
这个自动生成的支付宝公钥,是支付宝回调用的,通过密文传到客户端,客户端用来解密用的
解释支付宝自动生成公钥的分析图
支付宝SDK配置
下载SDK&DEMO
通过如图找到对应的下载位置
支付宝SDK导入
这个demo就是支付宝SDK(软件开发工具包),导入后需要解决爆红问题。
1、这里原本有三个爆红的,我先删除掉,然后再把这个lib找出来添加进去
结果:有一部分爆红的修复了。
2、添加tomcat
3、目前文件夹还是灰色状态,还不算是java项目,需要添加web
修改1
修改2
改了之后多了个小蓝点,成功
点击编译后,还有点问题
点击右键,选中 Remove BOM 就可以
因为这个AlipayConfig文件默认的编码是 utf-8 + BOM ,我们把bom删除就可以了。
或者打开这个文件,修改这个文件的编码,修改问utf-8
支付宝SDK配置
APPID,应用私钥(如图,在生成密钥的工具里面,也存在C盘那里)
支付宝公钥
启动netapp,把公网复制下载
(注意:时间过长或者重启netapp,这个网址都会改变,所以代码里面的网址也要对应修改)
这两行代码是支付宝回调数据给客户端用的。
现在这个是正式环境的网关,我们需要改成沙箱环境的网关。
配置完成,总的如图
配置tomcat
访问
http://localhost:9001/
访问后出现这个测试页面
端口占用
如果出现端口占用,可以用这个删除,打开window+cmd
问题:
出现这个页面,但是点击付款后,
一直出现的这个失败页面
解决方法:
1、旧版沙箱配置-成功
上面的都是新的沙箱配置,现在尝试用旧的沙箱配置。
旧的沙箱配置注意3个点:
1、APPID 2、密钥用默认或者自定义,尝试后都可以成功,3、支付宝网关
这三点在切换新旧沙箱测试的时候要注意。
点击付款后一直失败,尝试用旧版沙箱,然后APPID要改,密钥用系统的,支付宝网关也要改,旧版和新版的不一样。
旧版沙箱自定义密钥
appid和支付宝网关都一样,就是这个自定义密钥流程再说一遍。
1、用这个从支付宝开放平台现在的自动生成密钥工具,【生成密钥】(生成的密钥有应用公钥和应用私钥两种,不知道这两种密钥是否匹配的话可以用【密钥匹配】进行匹配)
2、这个【应用公钥】拿到旧版的沙箱里面,用这个【应用公钥】生成【支付宝公钥】
就可以成功出现支付页面了
2、新版沙箱配置-失败
新版的无论是系统默认的密钥还是自定义密钥都失败
测试:
1、点击付款
2、模拟登录买家的账号和支付密码
3、确认付款
4、付款成功
5、支付宝回调的代码也成功执行。
测试步骤总结:
1、打开【支付宝开放平台】–登录–控制台–找到沙箱–然后里面就有沙箱的数据
2、打开netapp,获取提供的能进行内网穿透的网址,这个网址有时效性,要注意更新,更新方式就是重新打开netapp,把新的网址复制到idea的代码里面
3、运行代码,代码是从支付宝开放平台下载的【电脑网站支付DEMO】
4、密钥的一些配置如上解释,注意用旧版的沙箱进行配置,新版的一直不成功
5、支付的时候登录买家的账号和支付密码(由沙箱提供)
总结分析图:
付款->支付页面流程分析:
从点击【付款】后,到进入到【支付宝支付页面】期间的流程分析。
支付的操作流程分析:
同步回调和异步回调。
同步回调,可能出现的问题就是在回调之前把浏览器关闭,造成回调失败
同步回调和异步回调的区别分析:
1、同步回调用来做数据展示、异步回调用来做业务处理
2、异步回调的通知,如果收不到用户反馈的success,那么就会重复发起通知
3、异步回调比同步回调更快,业务上面也会更安全。