00:00
大家好,这里是z news团队,今天我们想要和大家分享的是z news如何协助开发者实现微信支付通知回调至本地local hosts的环境。假设你现在在开发一个微信支付的功能,有一个运行在你本地local hosts9001的后端服务。在我们实现微信支付这样的功能时,通常我们会向微信服务器发送一个HB请求,微信支付会要求我们在请求中去传递一些必要的信息,如微信APPID或者你的商户ID,又或者订单号以及金额等信息。当微信支付收到请求并确认请求体中无异常以后,会响应给我们一个支付二维码,此时我们可以将这个支付二维码返回给前端进行渲染。在此阶段中,前端会提供一个二维码供用户扫描。当用户通过二维码支付成功以后,微信支付官方会首先得到支付成功的通知,然后微信会尝试通过我们在请求中配置的notify URL对我们进行回调通知。在开发时态中,我们希望微信支付的这类支付通知可以直达我们locals的本地。
01:09
从而做到快速验证、提高开发效率的诉求。那么Notify URL能否通知到我们本地呢?很遗憾是不行的。通过微信开发这个文档,我们可以看到一些针对notify URL的传递规范,微信支付明确不允许填写NOTEHOT12、7.0.0.1这类本地开发时态的内网IP,甚至强制要求HTPS。那么此时情况就变得非常清晰了,微信支付官方要求notify URL必须是携带域名的HTPS地址。这种要求在生产环境或者测试环境来说是非常轻松的,然而在本地开发环境对于开发者来说却还是有一些麻烦。解决这个问题的方式有很多,那么z news web hook端点也会是一个非常好的帮手。我们再回到刚刚的场景,简单来聊一聊z news是如何协助开发者去弥补微信支付回调这类小麻烦的。既然微信支付官方需要回调是一个HTPS地址,那么开发者可以在z newsx平台上零成本构建一个公网可访问的HTPS安全域名,同时开发者可以将该域名通过notify URL传递给微信官方,该域名会解析到离你最近的z news官方边缘节点服务器上,同时启动在你本地安装好的z news客户端去连接到该边缘节点。当用户扫码成功以后,微信支付会将成功的支付通知通过notify URL传递给z news官方边缘节点,Ser newss边缘节点会通过你主动建立的这条连接将对应的微信回调推送给你本地服务,至此整个流程完成闭环。OK, 那大概。
02:50
它流程清楚以后,我们再来看看在Z平台上如何迅速去构建这样一个微信web hook的端点。
03:00
通过ZS平台,你可以在域名管理界面创建一个永久有效的HPS域名,并默认开启43端口。ZS免费提供对应资源来到映射管理界面,打开创建映射面板,将映射的公网域名选择刚刚创建好的域名,同时将内网地址输入对应的后端服务地址。来到我们的本地开发环境中,我们这里有一个基于购原写的微信支付DEMO程序,会在执行时自动向微信官方申请一个支付二维码,我们重点关注它的notify URL字段。此时,我们可以将我们在。6用户平台中创建的云端映射复制到该notify URL中来,同时填上我们预先设定好的接口地址。此时,我们尝试去启动该APP。在等待一段时间后,我们会得到微信官方推送过来的一个支付地址,我们将该支付地址拿到二维码生成网站中去,生成一个支付二维码。
04:04
我们可以尝试扫描该支付二维码,当我们扫描完成并在手机端完成支付以后,我们会发现微信支付的通知已经成功推到了我们本地开发时态。整个微信支付的流程在本地打通以后,我们可以非常方便的调试以及编写和微信支付上下文相关的所有模块代码,不会因为收不到微信的回调通知而阻塞后续流程的开发以及调试。那今天的交流到这儿也就大概结束了,也希望此次分享能够给开发者们多一些启发,或者多一种选择。最后我们是z news, 我们永远相信连接的力量。
我来说两句