微信公众号开发(二)--扫码绑定微信账号

简书地址:https://www.jianshu.com/p/b2884a226247

当业务系统产生消息需要通过微信推送给指定的用户时,首页需要将业务系统类的用户和微信账号建立一个关系。这里采用的是微信网页授权接口,获得微信用户授权后,获取微信用户的账号信息,并与业务系统的用户进行绑定。

微信网页授权流程主要有4步:

1、引导用户进入授权页面同意授权,获取code。

2、通过code换取网页授权access_token(与基础支持中的access_token不同)。

3、如果需要,开发者可以刷新网页授权access_token,避免过期。

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)。

微信网页授权的接口在微信的官方帮助文档微信网页授权中有详细的说明,就不再详述,本文主要说明在开发过程中对一些问题的处理和注意项。

  1. 在第一步“引导用户进入授权页面同意授权,获取code”的过程中,获取用户授权需要引导用户在手机微信上打开链接https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect。一般情况下,业务系统的用户都是通过pc浏览器访问业务系统,于是在此步,我们将上述链接生成二维码图片(QrCode.Net),用户使用微信扫描二维码,然后就打开了链接。
  2. redirect_uri(授权后重定向的回调链接地址)中,我们生成了一个随机的用户token放在回调的url中,在微信授权成功后重定向回来时,通过识别url中的用户token,进而识别出是哪个用户。
  3. 在用户查看二维码的同时,我们从用户pc浏览器使用singalr在pc浏览器与服务器之间建立了一个websock通道,在获取用户信息后,通过此通道告诉还在pc浏览器上的用户微信扫码成功或失败。
  4. 考虑到安全性问题,用户的token以及前台二维码的时效性均做了时间限制,超时后用户需要刷新重新生成二维码。
  5. 在微信网页授权接口中获取到的用户微信账号信息并未标明该微信用户是否关注了我们的微信公众号,此时需要根据获取到的用户id调用另外的获取用户基本信息(UnionID机制)来获取用户信息,此接口返回的用户信息中有subscribe字段,该字段为1时,说明用户已关注我们的微信公众号。
  6. 如果用户未关注微信公众号,则在用户使用微信扫码时,将公众号的二维码返回给用户微信浏览器,用户可以长按二维码识别后关注公众号。注意:此步骤在网上有其他人实现点击按钮进入微信公众号主页进而关注公众号的功能,此方式在微信中,如果用户首次关注微信公众号,按钮不能正常显示,所以使用二维码替代了按钮。

原文地址:https://www.cnblogs.com/yanziwen/p/9221984.html

时间: 2024-10-17 09:46:01

微信公众号开发(二)--扫码绑定微信账号的相关文章

微信公众号开发C#系列-1、微信公众平台注册

微信公众号简介 微信公众号分为服务号.订阅号.企业号,订阅号可以个人申请,服务号和企业号要有企业资质才可以. 我们所说的微信公众号开发主要指的是公众号的账号类型,公众号的账号类型分为订阅号.服务号.企业微信.小程序四种.关于他们之间的具体区别,官方是这样解释的 服务号:主要偏向于服务交互(功能类似12315,114,银行,提供绑定信息,服务交互),每月可群发4条消息:服务号适用人群:媒体.企业.政府或其他组织. 订阅号:主要偏向于为用户传达资讯,(功能类似报纸杂志,为用户提供新闻信息或娱乐趣事)

Java微信公众平台开发之扫码支付模式二

官方文档点击查看 准备工作:已通过微信认证的公众号,域名可以不通过ICP备案借鉴了很多大神的文章,在此先谢过了大体过程:根据固定金额和商品的ID先生成订单,再生成二维码,客户扫一扫付款模式二支付的流程如下图,可以说是最简单的支付方式了 业务流程说明:(1)商户后台系统根据用户选购的商品生成订单.(2)用户确认支付后调用微信支付[统一下单API]生成预支付交易:(3)微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url.(4)商户后台系统根据返回的code_url生成

微信公众号开发中的用户账号绑定

最近由于工作需要,接触了微信公众号的开发.业务上要求绑定微信用户和系统用户,以便用户在一次绑定后能够通过系统用户的身份去使用一些功能.我关注的招行信用卡公众号实现了这个功能,所以估计还是可行的,在网上搜索了一下,发现这个问题没什么好的答案,很多都说取不到微信用户名实现不了,甚至有说实现了这个功能的应该是与微信有内部合作的. 搜索无果,遂自己动手实验,后发现其实完全可以的,看来实践才是检验真理的唯一标准,方案上也很简单,我分几点来说. 用OpenID绑定即可 微信接口中虽然没给用户的微信账号,但给

跳转到微信公众号主页二维码界面链接,微信跳转链接接口!

想要跳转到微信公众号的主页或者关注页面首先先知道对应链接 1.微信进入公众号查看消息记录,复制链接,这个页面是个关注页面,具体链接如下: https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzAxNDAzMzk3MA==&scene=124#wechat_redirect 2.公众号后台下载公众号二维码,百度搜索反解析二维码链接,如下: http://weixin.qq.com/r/5EheRnzEFSFqrTgl9x32

微信公众号的二维码怎么生成?

关注公众号二维码微信扫码直接关注公众号,被动回复信息,支持文本.图片.图文.小程序等等 带参数二维码一种是临时二维码,有效期30天,基本上不限制数量.主要用活动营销.粉丝推广.限时优惠另一种是永久二维码,是无过期时间的,目前最多生成10万个,主要用于粉丝统计.粉丝裂变.长期活动营销.广告长期监控 1.进入登录页面,输入自己的账号和密码,后台选择功能管理,进入初始页面 2.高级功能选择渠道二维码生成+创建渠道二维码 填写渠道名称(二维码用途描述)统计对象:新关注+已关注的粉丝 仅新关注的粉丝自动分

2.微信公众号开发:简单封装基本微信基本操作类

<?php /** * 微信公众平台操作类 */ class WeChat { private $_appid; private $_appsecret; //微信公众平台请求开发者的服务器需要token private $_token; //标识qrcodeticket的类型,是永久还是临时 const QRCODE_TYPE_TEMP = 1; const QRCODE_TYPE_TEMP_STR = 2; const QRCODE_TYPE_LIMIT = 3; const QRCODE_

生成微信公众号关注二维码

接口分析: 请求方式 : GET 请求url    : http://open.weixin.qq.com/qr/code/ 请求参数:username = {微信号(如下图所示)} 用例: <img src="http://open.weixin.qq.com/qr/code/?username=weixinyidu"/> 显示结果: 版权声明:本文为博主原创文章,未经博主允许不得转载.

PHP微信公众号开发常用功能

最近学习了关于微信公众号开发的相关知识,为了帮助自己更好的理解,在此重新再梳理一遍 更多关于微信公众号开发的功能可以参考微信公众平台的开发技术文档 完成开发者配置 第一步,需要在微信公众平台配置我们的服务器  在接口的文件需要写入以下代码以完成验证: class Wxapi { public function __construct() { $this->index(); } public function index() { $echostr = isset($_GET['echostr'])

VopSdk一个高逼格微信公众号开发SDK:自动化生产(装逼模式开启)

VopSdk一个高逼格微信公众号开发SDK(源码下载) VopSdk一个高逼格微信公众号开发SDK:自动化生产(装逼模式开启) 针对第一版,我们搞了第二版本,老规矩先定个目标. 一 我们的目标 a.移除PayExcute,统一执行入口,目前只保留一个入口Excute b.序列化特性统一,目前只用设置xml特性即可(反序列化时xml和json都可以直接用) c.支持文件上传,目前只有多客服管理上传头像接口用到过 d.使用T4模板自动生产所有Request.Response.以及所有测试Test(装

.NET微信公众号开发-2.0创建自定义菜单

一.前言 开发之前,我们需要阅读官方的接口说明文档,不得不吐槽一下,微信的这个官方文档真的很烂,但是,为了开发我们需要的功能,我们也不得不去看这些文档. 接口文档地址:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html 看了这些个文档,基本意思明白了,就是我们把我们要创建的菜单创建好,post到微信的服务器上面,微信服务器然后给我们一些状态码,从而判断我们的菜单是否创建成功,只是在发送json数据以前我们要做