目录
项目集成支付宝支付(沙箱环境)
支付应该有一个单独的服务,现在测试就先把支付的代码放在秒杀功能这边
代码:
前端:
1、点击【立即秒杀】后触动的方法。
后端:
1、controller
1、创建一个controller,写立即支付的方法
2、拷贝支付代码
2、从支付宝的demo【alipay.trade.page.pay.jsp是支付页面的代码】中拷贝需要的代码。
3、导入依赖
3、导入支付宝支付的依赖
4、gitee 配置 alipayConfig
过时间后,需要把这个notify_url和return_url的netapp路径更换才可以。
可以把alipayConfig的一些配置给先弄出来,然后放到gitee里面
在gitee上面创建yml配置文件
要想这个seckill-server能拉取到gitee上面的这个 alipay-server 配置文件,需要在 bootstrap.yml 这样写。
5、拷贝配置文件
5、把demo中的AlipayConfig文件拷贝过来,进行修改为自己的配置文件。
这部分代码没动
6、实现单例
需要用到这个对象,在整个系统中有一个这个对象就够用了,不用重复创建,后续用的话都只用这个对象就可以了,所以弄成单例就可以了。
写一个bean方法,把这个对象交给spring容器管理,因为spring容器默认是单例的,就可以了。
做法:
写一个配置类,写一个方法,贴上bean注解,然后返回值就是要用的这个对象。
服务启动的时候就会走这个类
7、修改支付方法
修改的地方
就是把订单的数据查询出来,进行拼接,通过如图方法弄成一个form表单,再通过response输出到浏览器。
测试:
报错:
解决:
这个报错是:基本配置放在gitee里面,然后通过拉取获得,但是同样的公私钥,不知道为什么就会出错,这边先不把配置放在gitee上面,直接写死在类里面,就能成功跳转到支付宝页面。
写死在类里面:
集成异步回调:
需求:
在异步回调的时候走我们写的那个回调方法,跳转到指定页面
代码:
1、修改异步回调地址,在回调的时候走我们写的那个回调方法
2、回调方法
业务逻辑
mapper
测试结果:
是成功修改了支付时间和状态。
这里体现了异步回调执行比同步回调快
集成同步回调:
需求:
在同步回调的时候走我们写的那个回调方法,重定向到指定页面
代码:
这里体现了异步回调执行比同步回调快
问题:
在跳转到指定页面的时候一直失败,但是不用深究,可能是网关或者路径出错,或者需要携带的参数少了。暂时不理,知道业务逻辑就行。