欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

程序员文章站 2024-03-22 23:00:46
...

【支付宝对接 (一) 】支付宝手机网页支付官方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获取密匙

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

这里选择公钥,这里生成秘钥有两种方式,一种是支付宝的生成器,还有一种是OpenSSL,我们选择第一种即可

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

然后点击Windows的进行下载,打开点击生成**即可

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试
【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试
点击保存设置之后就会给你对应的支付宝公钥

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

2、登录支付宝开放平台文档Demo(准备工作第二个网址)选择SDK&Demo下载对应开发版本

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

导入Idea是这样的
【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

进入AlipayConfig文件,配置你刚才生成的APPID,支付宝公钥,生成器里面生成的应用私钥
【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

这里需要注意的是同步验签的地址访问路径一定要和Tomcat启动的配置访问路径一致(下面会讲解配置Tomcat启动服务)否则支付成功验签跳转的时候会访问到404!!!

支付宝沙箱环境网关: https://openapi.alipaydev.com/gateway.do

三、支付宝支付Demo会遇到的坑

问题一、配置Tomcat 9.0.37启动支付宝Demo并解决报错非法字符: '\ufeff问题

接上面的步骤,配置完成后需要配置Tomcat启动,没有的去下载

下载地址:https://tomcat.apache.org/

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

点击Download下载,选择windows-64下载解压到本地就可以了

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

用idea打开支付宝Demo的时候会出现这个在你的右下角,你默认选择配置就可以了

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

配置成web项目

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

配置Tomcat启动

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

这里可以下拉更改默认启动成功访问的浏览器

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

点击右下角的fix

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

这是选择配置启动模块,当你选择from modules 后会自动弹出你之前在进来时idea自动提示你配置的configure,这个不用管,直接点Ok就可以了,直接一路Ok配置下去

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

一路点击Ok保存后再选择下拉选择 Edit Configurations 打开配置看看:

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

替换Tomcat默认访问路径,保持与同步验签的访问路径一致,这样才能访问到文件路径下的return_url.jsp文件,里面是写好的验签代码。

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

再点击Deployment切换:

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

修改 Application context 与Server的路径保持一致,点击Ok保存。

现在配置好了Tomcat,可以启动了,然后第一次启动可能会报这个错误: Error:(1, 1) java: 非法字符: ‘\ufeff’ 是说 AlipayConfig这个文件格式编码问题

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

解决方法是,先点右下角UTF-8转为GBK,后选择Convert,然后再点GBK转UTF-8转回来就可以了,eclipse好像不需要

问题二、配置好Tomcat后启动打印日志乱码问题

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

解决办法:

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

选择help->edit custom vm options

在最后一行加入:

-Dfile.encoding=UTF-8

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

然后重启Idea

启动成功:

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

自动跳转访问

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

四、支付测试

选择第一个手机网站2.0支付,继续浏览器支付

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

选择右下角支付宝账户支付

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

这个是填买家账户,你填沙箱环境的账户和密码即可

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

选择沙箱买家账号和登录密码,这个余额你想充多少就充多少,终于可以体验一把土豪的感觉了

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

选择确认付款,输入密码

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

支付成功,点击完成会自动跳转到你配置的同步验签的地址,不点击的话,等待几秒他也会自动跳转。

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

先返回你的沙箱页面,刷新就可以看到你的商家余额有钱了,这里支付宝会收取0.6%的手续费是和真实环境一样的,所以我刚才支付了100而实际收到的是99.4

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

再回到你支付的页面,支付宝同步验签会把你刚才的交易参数给你拼在地址后面,就像这样

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

返回的参数包括了,你交易的订单号,买家付款金额等

这里看到验证失败的问题不必惊慌,因为沙箱环境的不稳定性是会存在这个问题的,这个时候你可以通过访问订单查询接口去查看订单是否支付成功

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

订单号和支付宝交易号是拼在你刚才验签的地址后面的,找到输入订单号或支付宝交易号任一一个即可查询,查询返回的结果会打印输出在你代码的控制台

订单号: out_trade_no

支付宝交易号 : trade_no

拼接的验签信息较长,建议先复制下来

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

我打印了两次,第一次通过订单号,第二次是通过支付宝交易号,返回的信息都是Success,说明是支付成功了的。

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

这里给出关于支付宝同步验签通知的详细文档地址和支付返回值:

支付宝同步验签通知的详细文档地址:

https://opensupport.alipay.com/support/helpcenter/193/201602494660?ant_source=zsearch

【支付宝对接 (一)】支付宝手机网页支付官方Demo配合沙箱测试

更多详细返回值请参考:

https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay

到这里基本的支付宝手机网页支付就走通了,网页支付和手机网页支付请求支付流程是差不多的,只是调用的封装不一样,你测试完了之后通过对应文档也可以试试网页支付,也祝你们能一次成功!

上一篇: Laravel下的控制器写法

下一篇: