【问题标题】:Detect if WeChat QR code is scanned检测微信二维码是否被扫描
【发布时间】:2017-05-08 10:18:41
【问题描述】:

我正在尝试构建一个呈现微信二维码的应用程序,它将被微信移动应用程序扫描以进行支付。当然,身份验证、证券和验证是在应用程序上实现的,所以不是每个人都能做到扫描。但我真正想要实现的是,一旦扫描了二维码,带有二维码的选项卡就会自动关闭或者至少触发javascript中的某些内容。有可能吗?

注意:

二维码是来自 API 返回的渲染图像

【问题讨论】:

  • 您正在构建什么样的“应用程序”?是 React Native 应用,还是使用微信 JSSDK?原生 HTML5 不支持二维码扫描。
  • 实际上是一个支付应用程序。基本上,如果页面中的二维码被扫描,我想要在javascript中触发一些东西。二维码图像来自一个API,我需要的只是通过img 标签呈现它。所以当扫描代码时,我会做一个重定向。这可能吗?
  • 如何扫描 HTML/JavaScript 中的 QR 图像?是基于微信的JS-SDK吗?正如你提到的 JavaScript,我猜它不是原生 iOS/Android 应用程序。
  • 一般情况下,第三方支付接口会提供回调方法,当支付完成时,会调用你的代码。
  • 是的,回调将在您的服务器端调用,然后您可以使用@deceze 提到的各种“推送”技术将消息通知给浏览器。综上所述,逻辑是:生成二维码并注册回调->用户扫描二维码->回调触发->推送消息到浏览器。

标签: javascript html wechat


【解决方案1】:

这是第三次支付整合中的经典问题。我猜你的情况是WeChat Payment

逻辑是:

  1. 调用API开始下单并获取二维码图片。请注意,在 API 中,您可以注册一个属于您服务器的回调 URL (notify_url)。
  2. 用户扫描二维码图片进行支付。
  3. 微信服务器收到扫描操作,尝试做支付工作,调用你的notify_url
  4. 在您的服务器中,接收到支付成功/失败信息,并将此信息推送到客户端。
  5. 客户端接收支付成功/失败信息并进行 UI 工作。

关于如何将信息从服务器推送到客户端,有多种方式:

  • WebSocket
  • 服务器发送事件
  • 彗星
  • 使用setInterval重复的ajax请求

【讨论】:

  • 非常感谢您的回答和分享知识的努力!
猜你喜欢
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-15
相关资源
最近更新 更多