【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试
【支付宝对接 (一) 】支付宝手机网页支付官方Demo配合沙箱测试
一、准备工作:
本次支付测试以手机网页支付作为案列,你需要打开准备的网址包括:
支付宝支付API文档: https://opendocs.alipay.com/apis
支付宝开放平台文档Demo以及讲解: https://opendocs.alipay.com/open/203/105910
支付宝沙箱环境: https://openhome.alipay.com/platform/appDaily.htm?tab=info
二、开发工作:
1、登录沙箱环境,配置获取AppId与支付宝公钥
点击RSA2获取密匙
这里选择公钥,这里生成秘钥有两种方式,一种是支付宝的生成器,还有一种是OpenSSL,我们选择第一种即可
然后点击Windows的进行下载,打开点击生成**即可
点击保存设置之后就会给你对应的支付宝公钥
2、登录支付宝开放平台文档Demo(准备工作第二个网址)选择SDK&Demo下载对应开发版本
导入Idea是这样的
进入AlipayConfig文件,配置你刚才生成的APPID,支付宝公钥,生成器里面生成的应用私钥
这里需要注意的是同步验签的地址访问路径一定要和Tomcat启动的配置访问路径一致(下面会讲解配置Tomcat启动服务)否则支付成功验签跳转的时候会访问到404!!!
支付宝沙箱环境网关: https://openapi.alipaydev.com/gateway.do
三、支付宝支付Demo会遇到的坑
问题一、配置Tomcat 9.0.37启动支付宝Demo并解决报错非法字符: '\ufeff问题
接上面的步骤,配置完成后需要配置Tomcat启动,没有的去下载
下载地址:https://tomcat.apache.org/
点击Download下载,选择windows-64下载解压到本地就可以了
用idea打开支付宝Demo的时候会出现这个在你的右下角,你默认选择配置就可以了
配置成web项目
配置Tomcat启动
这里可以下拉更改默认启动成功访问的浏览器
点击右下角的fix
这是选择配置启动模块,当你选择from modules 后会自动弹出你之前在进来时idea自动提示你配置的configure,这个不用管,直接点Ok就可以了,直接一路Ok配置下去
一路点击Ok保存后再选择下拉选择 Edit Configurations 打开配置看看:
替换Tomcat默认访问路径,保持与同步验签的访问路径一致,这样才能访问到文件路径下的return_url.jsp文件,里面是写好的验签代码。
再点击Deployment切换:
修改 Application context 与Server的路径保持一致,点击Ok保存。
现在配置好了Tomcat,可以启动了,然后第一次启动可能会报这个错误: Error:(1, 1) java: 非法字符: ‘\ufeff’ 是说 AlipayConfig这个文件格式编码问题
解决方法是,先点右下角UTF-8转为GBK,后选择Convert,然后再点GBK转UTF-8转回来就可以了,eclipse好像不需要
问题二、配置好Tomcat后启动打印日志乱码问题
解决办法:
选择help->edit custom vm options
在最后一行加入:
-Dfile.encoding=UTF-8
然后重启Idea
启动成功:
自动跳转访问
四、支付测试
选择第一个手机网站2.0支付,继续浏览器支付
选择右下角支付宝账户支付
这个是填买家账户,你填沙箱环境的账户和密码即可
选择沙箱买家账号和登录密码,这个余额你想充多少就充多少,终于可以体验一把土豪的感觉了
选择确认付款,输入密码
支付成功,点击完成会自动跳转到你配置的同步验签的地址,不点击的话,等待几秒他也会自动跳转。
先返回你的沙箱页面,刷新就可以看到你的商家余额有钱了,这里支付宝会收取0.6%的手续费是和真实环境一样的,所以我刚才支付了100而实际收到的是99.4
再回到你支付的页面,支付宝同步验签会把你刚才的交易参数给你拼在地址后面,就像这样
返回的参数包括了,你交易的订单号,买家付款金额等
这里看到验证失败的问题不必惊慌,因为沙箱环境的不稳定性是会存在这个问题的,这个时候你可以通过访问订单查询接口去查看订单是否支付成功
订单号和支付宝交易号是拼在你刚才验签的地址后面的,找到输入订单号或支付宝交易号任一一个即可查询,查询返回的结果会打印输出在你代码的控制台
订单号: out_trade_no
支付宝交易号 : trade_no
拼接的验签信息较长,建议先复制下来
我打印了两次,第一次通过订单号,第二次是通过支付宝交易号,返回的信息都是Success,说明是支付成功了的。
这里给出关于支付宝同步验签通知的详细文档地址和支付返回值:
支付宝同步验签通知的详细文档地址:
https://opensupport.alipay.com/support/helpcenter/193/201602494660?ant_source=zsearch
更多详细返回值请参考:
https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay
到这里基本的支付宝手机网页支付就走通了,网页支付和手机网页支付请求支付流程是差不多的,只是调用的封装不一样,你测试完了之后通过对应文档也可以试试网页支付,也祝你们能一次成功!
上一篇: Laravel下的控制器写法