生成微信二维码

Generating WeChat QR Codes

我正在做一个登录页面,我想使用微信作为登录选项,并且我有一个微信公众号。根据我对文档的理解,它应该是下一个 link 会生成一个 QR 码进行扫描,并且在用户授权后重定向到其他地方...:

https://open.weixin.qq.com/connect/qrconnect?appid=wx8bxxx21bxxxx0fxxx&redirect_uri=https://myhostname/oauth2.php&response_type=code&scope=snsapi_login&state=101#wechat_redirect

但是 link 不起作用。我不知道我是否遗漏了什么,或者网站 https://myhostname/oauth2.php 必须事先调用微信授权... ???

有人用过微信这个东西吗?

提前致谢!

后来我发现你必须有一个微信开放平台账号,在这个账号上注册你的网络应用,等待批准,然后给它登录权限才能使用二维码功能

您需要在重定向 url 中将 OAuth2.0 网络授权域 设置为您的 子域,例如: wechat.myredirectdomain.com.

这个设置隐藏在微信公众号开发设置面板中,有些在API列表之间,确保你设置正确。

如果您正在研究如何在网页上扫描公众号二维码后登录网页。 有两种方法可以解决这个问题。

扫一扫服务公众号

您可以生成带参数注入的二维码。然后在您扫描后,您的后端会触发一个事件。 捕获事件并提取参数,然后以您想要的方式进行身份验证。

基本工作流程:

  1. 应用程序前端请求您的后端进行会话。
  2. 应用后台调用微信api生成二维码,任意参数注入
  3. 应用前端显示二维码。
  4. 用户扫描服务账号二维码
  5. 如果用户没有订阅,则订阅公众号。
  6. 后端接收扫描事件,提取信息并对用户进行身份验证。

扫一扫订阅公众号

在订阅中获得较少的编程支持,但您仍然可以通过设计一个随机代码来实现。

基本工作流程:

  1. 应用程序前端请求您的后端进行会话。
  2. 应用后台生成随机码。
  3. app前端随机显示公众号二维码
  4. 用户扫描订阅公众号二维码
  5. 如果用户没有订阅,则订阅公众号。
  6. 用户在公众号留言中输入随机码UI.
  7. 后端接收代码并验证用户。
  8. 如果需要,请使用 openid 在您的数据库中附加用户信息。

使用开放平台以智能方式完成。

如果你为一个公众号做这个,没问题。假设您想将其重复用于多个官方帐户。 也许可以使用开放平台的方式,这样你就可以只有 1 个后端来处理多个帐户。 微信提供一个开放平台,这里是get start doc。 注册一个开放平台需要支付300元的验证费,比较麻烦的是,你需要注册一个公司才有资格支付。 所以也许使用第三方开放平台会是更好的选择。比如Dagui Qrcode Tool

关键要点

  • 服务公众号登录使用参数二维码
  • 订阅公众号使用随机码账号二维码登录
  • 使用开放平台进行扩展
  • 认证灵活,关键是事件交换流程。

更多微信开发相关的秘技,可以参考这个article