关于java调用第三方接口的求解

比如java调用第三方支付宝的,我从网上看到的时候,客户端请求支付宝
然后支付宝封装参数给银行,银行付款然后通过支付宝,支付宝再通知客户。
但是我看到这个程序里面有个地方说到了异步,还有回调,对于这2个东西不太理解,
有没有做过的朋友给解释下。
如果不是异步的话 我能理解,客户-支付-银行,然后客户只要等待银行返回的数据就可以了,
但是这里出现了一个异步。。。。

应该说支付是否成功,都是支付宝返给你的. 支付宝分前台和后台通知你交易是否成功,

前台就是客户支付的时候 等待支付宝的返回是否成功,

后台就是:你在请求支付的时候 会把这个后台地址传给支付宝,他会请求你这个地址,如果支付宝告诉你交易成功,你就处理自己的业务逻辑,比如更新订单状态
你输出一个success,支付宝就知道成功了,如果没有输出success, 支付宝会3秒 5秒 1分钟 20分等等 会一直请求你的服务器 直到success 可能24小时后就不再请求了

支付宝有封装好的方法,直接按着文档使用 也可以

支付宝虽然两条线通知你交易是否成功,但是你在处理自己业务逻辑的时候 要在支付宝后台通知你成功的时候处理, 这属于支付宝请求你的服务器, 无感知的, 你说的异步回调 应该说的是这里

调用第三方接口,不需要你做什么。只需要将数据按照支付宝留给你的数据格式进行封装即可,支付宝处理完这些数据后应该会返回两个状态。一个是是否成功。一个是结果数据。你可以设置一个异步方式去动态监听这个结果。结果返回后立马进行局部刷新。从而显示支付结果

必然是异步,也就是你发请求给支付宝。这个就结束了。
你的程序该干嘛继续干嘛。
当支付宝收到钱,它调用你的服务器(你事先准备好一个地址,这个地址叫做回调)。
支付宝会立刻通知你,如果没有成功,会间隔一小段时间重复通知你。
如果不是异步,就惨了,一旦你或者支付宝卡住了,或者处理时间长,或者网络有断线,那么要么所有的业务全部卡住(同步要求之前的调用拿到返回值才能继续执行),要么不能保持可靠性(超时多少,就放弃,继续执行,那么可能出现明明付钱了,只是网络延迟问题,平台楞说没收到钱)。
这两者都是没法接受的。
所以只能异步了。说起来几个名词,其实调用起来没有什么难度。你写写就知道了。