微信开发之分清公众平台和开放平台、公众号全局凭证和网页授权凭证

虽然公司自己的网站和给客户开发的项目中都涉及到了微信开发,自己也写了关于微信开发的两篇文章,但感觉自己对微信开发中的一些概念还是容易混淆,今天浏览了下微信公众平台、微信开放平台的后台和相关文档,算是弄清楚了下面这些东西,至于其他还没弄清楚的,以后想到了再说。

1,微信公众平台(https://mp.weixin.qq.com)和微信开放平台(https://open.weixin.qq.com)

“微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台”,登录公众平台账号后,可以看到它有一个不错的交互界面。可以提供给公司的运营人员使用,用来发布消息和提供服务。

微信公众平台的技术文档地址为:https://mp.weixin.qq.com/wiki,接口域名为:

通用域名(api.weixin.qq.com),使用该域名将访问官方指定就近的接入点;

上海域名(sh.api.weixin.qq.com),使用该域名将访问上海的接入点;

深圳域名(sz.api.weixin.qq.com),使用该域名将访问深圳的接入点;

香港域名(hk.api.weixin.qq.com),使用该域名将访问香港的接入点。

文档对接口的说明:“开发者可以根据自己的服务器部署情况,选择最佳的接入点(延时更低,稳定性更高)。除此之外,可以将其他接入点用作容灾用途,当网络链路发生故障时,可以考虑选择备用接入点来接入。”

参照技术文档中的“入门指引”和各个章节,使用相应的接口也可以自己开发程序实现向微信发布消息等业务功能。

微信开放平台:是为开发者(程序员)提供的一个平台,在这里你可以将你的公众平台下的公众号(订阅号、服务号)绑定到你的开放平台账号下,从而可以基于订阅号、服务号做更多的开发。公众号中的订阅号接口权限是有限的,比如它无法获得网页授权的权限,也就无法通过网页授权获取用户的基本信息(比如openID、unionID等)。

另外,更多的开发场景可能是这样:公司A拥有1个订阅号用来发送资讯,1个服务号用来为用户提供一些服务(比如查询资料等),还有1个pc端的网站。那么当用户使用这些订阅号、服务号和网站时,公司A的开发人员如何识别用户身份(确认用户身份的唯一性)。微信公众平台的技术文档“开始开发”--“接入指南”已经对此进行了说明:

“由于开发者经常有需在多个平台(移动应用、网站、公众帐号)之间共通用户帐号,统一帐号体系的需求,微信开放平台(open.weixin.qq.com)提供了UnionID机制。开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个应用(移动应用、网站应用和公众帐号,公众帐号只有在被绑定到微信开放平台帐号下后,才会获取UnionID),可通过获取用户基本信息中的UnionID来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的UnionID是唯一的。换句话说,同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的。详情请在微信开放平台的资源中心-移动应用开发-微信登录-授权关系接口调用指引-获取用户个人信息(UnionID机制)中查看。”

2,公众号全局凭证(全局唯一调用凭证)access_token和网页开发中的网页授权access_token

两者不是一个东西,但在调用接口时很容易混淆。简单来说,网页授权token只在微信授权网页登录时会用到,其他业务一般不会用到,而公众号全局凭证的应用范围则比较广。

公众号的全局凭证access_token获取方法:使用公众号的AppID和AppSecret调用获取access_token的接口,AppID和AppSecret可以在可在微信公众平台官网-开发页中获得,接口调用地址和请求方式如下:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

参数说明:

1 参数说明
2
3 参数           是否必须     说明
4 grant_type      是       获取access_token填写client_credential
5 appid           是       第三方用户(公众号)唯一凭证
6 secret          是       第三方用户(公众号)唯一凭证密钥,即appsecret

返回数据说明:

1 正常情况下,微信会返回下述JSON数据包给公众号:
2 {"access_token":"ACCESS_TOKEN","expires_in":7200}
3
4 参数    说明
5 access_token    获取到的凭证
6 expires_in    凭证有效时间,单位:秒
7
8 错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):
9 {"errcode":40013,"errmsg":"invalid appid"}

网页开发主要实现的一个业务逻辑就是为用户提供微信扫码登录网站功能(或用户使用手机在微信浏览器中打开网站登录),那么这里就涉及到了微信授权给第三方(网页开发者)获取用户基本信息的问题。

网页授权access_token获得方法:先让用户同意授权获取code,然后通过code换取网页授权access_token,具体可参考:微信公众平台技术文档--网页开发--微信网页授权一节或我之前写的这篇文章:网站实现微信登录之回调函数中登录逻辑的处理--基于yii2开发的描述,获取access_token后才能够继续调用其他接口进行其他操作。

参考:

微信公众平台技术文档

微信开放平台技术文档



时间: 2024-08-25 03:59:19

微信开发之分清公众平台和开放平台、公众号全局凭证和网页授权凭证的相关文章

微信公众平台和开放平台的区别

由于业务的需要,我们需要需要微信的相关信息,有时需要基于微信平台开发网站,有时需要在PC上微信登录. 实际开发的时候,面对两个平台,初学者比较茫然,不知道什么时候用哪个平台. 我分享一下我的见解: 微信公众平台: 许多公司在做网站的时候,先做PC版,再做手机版. 但是手机版网站还是需要手机浏览器输入网址或者扫二维码进入,不是很方便. 那自然想到的是开发APP,但是公司要考虑成本,APP成本太高. 使用微信公众平台就是很好的办法. 1.可以利用微信提供的管理平台或者微信提供的接口进行开发,直接拥有

***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权

本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言.本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息,而无需模拟登录. 在本文中,特别要注意的是有两个不同的Access Token,他们产生的方式不一样,一种是使用AppID和AppSecret获取的access_token,一种是OAuth2.0授权中产生的access_token,方倍工作室分别称为全局Access Token和授权Access

微信公众平台开发(71)OAuth2.0网页授权

微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure

(转)微信公众平台开发 OAuth2.0网页授权

微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure

Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息

转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静下心来坚持一开始的选择,继续我们的微信系列文章的后续更新,也希望在自己有时间的时候能把更多的内容呈现给大家,前面一系列的文章讲述了很多微信开发相关的基础知识点 [微信系列文章],那么从这一篇开始将讲述微信较深一层次或者说在产品应用中时刻会用到的一些技术点,那么下面就让我们进入正题吧,这一篇我要讲述的

微信(公众,商户,开放)平台的区别

一.微信开放平台 https://open.weixin.qq.com/ 主要面对移动应用/网站应用开发者,为其提供微信登录.分享.支付等相关权限和服务. 微信开放平台还提供了数据统计功能,用于开发者统计接入应用的登录.分享等数据情况. 接入步骤 比如APP需要使用微信登录.分享和微信支付功能,首先注册微信开发平台-开发者账号,按照流程在微信开放平台创建APP, 审核通过后,即可获得的初级权限,微信开放平台开发资源   (包含一些接入流程,说明等,需要登陆) 二.微信公众平台 https://m

[微信开发] - 使用普通扫码登录获取用户信息,非开放平台版本

微信平台扫码登录时,因为开放平台的openid与原系统不一致,所以使用了原公众平台二维码扫码后获取用户openid,继而转链接形式. 油腻腻的大猪蹄进行测试 oysIt005E1TDKTKIdc8TmR6VTViA < 使用开放平台的登录二维码扫码获取的openid o4mIl1jXCq4b2MkQ0tTZTzKzl2XY < 微信平台获取的openid o4mIl1jXCq4b2MkQ0tTZTzKzl2XY < 扫码临时二维码获取的openid 大致流程: 用户点击微信登录->

Java微信公众平台开发之OAuth2.0网页授权

根据官方文档点击查看在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的"开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息"的配置选项中,修改授权回调域名.请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头,也不需要加具体的项目名,在域名空间的根目录放一个txt文件才能验证通过一.两种scope授权方式 以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静

微信公众号开发简单的网页授权登陆获取用户基本信息

由于业务需要,近期在做微信公众号开发,其中一个模块是微信用户点击个人中心访问可以得到次微信用户的头像昵称国家省份等基本信息. 但由于业务需求,这块功能暂时用不上了,但这功能的实现毕竟是自己花费几天时间搞出来的,觉得以后会用的上,暂且记录一下实现过程. 首先:获取用户信息的过程属于微信网页授权登陆,再做这一块之前请先阅读微信开发文档以熟悉基本的开发过程: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 微信开发文档