什么是WEB Hook?有哪些实现方式?
豆豆 2020-07-09 09:16:00 1277人已围观
一、什么是Web Hook?
Webhook是一个API概念,简单来说就是一种反向API机制,类似于消息推送,并且变得越来越流行。我这里有一张图为大家解释清楚Web Hook的实际应用场景,拿支付宝的支付场景为例:

仔细看清楚上面时序图中的第6、7、8 三步。
二、如何使用webhook?
接着上面第一章节来说,常规的项目一般是使用第6小步,例如:客户需要请求支付宝的数据,那么就需要主动发起一个GET/POST 的请求,在请求处理后同步返回信息;但是有些业务场景是无法立即获得反馈的,那么怎么办?很简单让对方留下一个联系方式,等我有消息了我主动联系您,这就是上面图片中的第7小步,让对方留一个notifyUrl地址,在支付宝得到准确信息后,支付宝通过这个地址来通知商户。那如果第6、7都失败了怎么办?那就再给他们留一个补救的入口(第8小步)让客户走常规的方式主动来请求信息。这种组合起来就是一个完整的闭环,正常和异常情况都有考虑。
三、主要应用场景
web hook通常应用于异步编程中,如:高安全的支付、微信登录(OAuth)、资源同步、资源创建与更新、耗时较长。
四、安全问题
由于webhook会向公网上的hook url发送数据,这就意味着某些不好心的人可能会找到这个url,从而进行发送错误的数据,但是我们可以通过以下一些技术手段来解决这个问题:
增加token机制,增加auth认证,只接收对应服务端domain或IP请求,数据签名等,例如支付宝和微信支付行业就是使用数据签名来实现的,如下图:

第五、附录
1、支付宝支付接口文档:https://opendocs.alipay.com/open/270/105899
2、微信支付接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1

备付金存管银行是指可以为支付机构办理客户备付金的跨行收付业务,并负责对支付机构存放在所有备付金银行的客户备付金信息进行归集、核对与监督的备付金银行。(支付机构客
最近有一套生产系统的数据库CPU老是偏高,发现闲时也在40%-60%左右,感觉很不正常,决定优化一下,在这
首先需要知道什么叫一元购? 就是你支付一元后获得一个购物资格,有的叫抽