大家好,又见面了,我是你们的朋友全栈君。下面以风控为例,业务是调用第三方接口获取支付宝报告
天机支付宝获取流程:
1 本质:中转站:前台把参数传给我,我接受参数后传给天机,天机在传给支付宝,最后获取数据,在这个过程中
我们和天机都充当的是中转站的角色。
2 流程:a 前台传客户的基本信息参数
b 后台接受参数,传给天机,天机返回淘宝的认证地址链接,后台把链接返回给前台;
c 前台打开链接,进入认证页面,进行认证,天机通过后台写的回调函数向后台返回认证结果,后台把结果返回给前台;
d 当天机返回的结果是认证成功,就再次调用天机获取认证链接的接口,这其中要做参数转换,虽然调的接口一样,但参数不同,这一步的主要作用是抓取报告,这其中后台的回调函数天机依然在调;
e 当天机返回的状态为抓取成功时,就开始调获取报告的接口,进行报告的获取;
3 难点:一个完整的流程分几步完成,而且要依据状态提示操作,造成如下问题:
(1)一个客户没有进行完,另一个客户进来了,造成数据混淆;
(2)前端 后端 天机这三方如何协调一致;
解决:对于第一个问题:a 在控制层添加如下注解:@Scope(“prototype”),改注解的作用是每发一次请求就是一个新的controller,互不干扰;
b 把诸如状态等需要共享的数据建表存储,然后查表;
对于第二个问题:从前端发第一次请求获取认证链接地址的时候,就给前端返回一个该客户的唯一标识,然后下面的每一次请求都需要传这个唯一标识进行区别;
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137458.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...