微信公众号开发

1.微信公众平台

详解参考如下链接:
https://www.cnblogs.com/liuhongfeng/p/4846260.html

1.1注册账号

https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN
注册个人订阅号账号

服务号是企业注册的,订阅号是个人注册的。

1.2开发文档

https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html
微信公众平台提供开发的微信接口(开发->开发者工具->开发者文档)

在这里插入图片描述

1.3公众测试平台

提供给本地开发测试的账号
在这里插入图片描述

关注测试微信公众号,填写自己服务器地址和token
这里url对应controller里面mappering的地址
1、token是第三方平台(微盟,微商户,口袋通等)绑定到微信公众号的验证口令,token可以有商家自由设置,也能是第三方平台自动生成。

2、微信开放第三方API接口,申请地址:http://mp.weixin.qq.com/cgi-bin/callbackprofile?t=wxm-callbackapi&type=info&lang=zh_CN 如果你的微信接口页面没有做好,提交保存的时候,会提示:验证Token失败。这个错误是因为,你的接口页面还没有反馈正确的信息给微信接口。

3、token使用在微信公众平台-基本配置-服务器配置中,只有商城URL和token配套且和第三方平台上的URL和token一直,才能将微信公众号绑定到第三方平台。
通过appID和appsecret可以获取到access_token,为后续signature签名做准备
获取access_token
access_token需保持长期有效
可参看:
https://www.cnblogs.com/hrhguanli/p/5067688.html

1.3.1在开发者中心页下面–开发工具里,点击进入“在线接口调试工具”。

在这里插入图片描述

1.3.2填写好第一步记下的appid和appsecret,然后点击最下端的检查问题。
1.3.3其中红色框里的就是想要的access_token

1.4应用配置

在应用中配置测试公众号提供的appId、secret、token,token与上面配置的保持一致,此处token是自己定义的
应用配置好后,启动应用,提交测试账号接口配置信息,配置正确的话,前端显示配置成功。
接口配置信息的配置可以理解为微信端操作的触发器,微信端会把每次操作通过URL发送到后端Controller告知用户做了哪些操作

1.5后端处理

接收微信的消息接口,先验证签名,如果签名正确,返回echostr
在这里插入图片描述

微信测试账号上的消息会进入下面的请求中
在这里插入图片描述

2.微信网页授权

2.1OAuth简介

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。
  我们这里主要模拟在微信公众号中使用OAuth2.0进行授权,获取用户的基本信息的过程。详细的开发文档可查看微信的官方文档。

2.2配置回调函数

我们在微信客户端访问第三方网页(即我们自己的网页)的时候,我们可以通过微信网页授权机制,我们不仅要有前面获取到的appid和appsecret还需要有当用户授权之后,回调的域名设置,即用户授权后,页面会跳转到哪里。具体的配置如下:
在这里插入图片描述
在这里插入图片描述
注意:

1、这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头;
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权

2.3微信授权登录并获取用户基本信息

微信授权使用的是OAuth2.0授权的方式。主要有以下简略步骤:

第一步:用户同意授权,获取code

第二步:通过code换取网页授权access_token

第三步:刷新access_token(如果需要)

第四步:拉取用户信息(需scope为 snsapi_userinfo)

详细的步骤如下:

1.用户关注微信公众账号。

2.微信公众账号提供用户请求授权页面URL。

3.用户点击授权页面URL,将向服务器发起请求

4.服务器询问用户是否同意授权给微信公众账号(scope为snsapi_base时无此步骤)

5.用户同意(scope为snsapi_base时无此步骤)

6.服务器将CODE通过回调传给微信公众账号

7.微信公众账号获得CODE

8.微信公众账号通过CODE向服务器请求Access Token

9.服务器返回Access Token和OpenID给微信公众账号

10.微信公众账号通过Access Token向服务器请求用户信息(scope为snsapi_base时无此步骤)

11.服务器将用户信息回送给微信公众账号(scope为snsapi_base时无此步骤)
  微信开发平台登录参考以下链接:
  https://www.cnblogs.com/0201zcr/p/5131602.html
https://blog.csdn.net/hxker/article/details/50260669
https://www.jianshu.com/p/4f5697b973ad
https://cloud.tencent.com/developer/article/1447723

2.4应用场景

参考链接:
https://blog.csdn.net/u010882234/article/details/65442847

详解参考以下链接:
https://blog.csdn.net/lswnew/article/details/84103658

2.5微信开放平台登录与微信公众平台授权登录区别

其实目前总共就四种登录方式:

扫码登录(一般用于 PC 网页)
跳转 APP 授权登录(第三方 APP 使用)
微信内置浏览器内登录(一般用于移动端网站)
微信小程序内微信登录(小程序内部)

名义上来说,这四种都是属于微信开放平台的能力
见文档: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list

实际情况是第三种登录一直属于 “公众号登录” ,所以实际的配置、文档都是在 微信公众平台 的 。
而小程序一直是从属于 “公众号” 体系的,所以也是在 微信公众平台 的。

只有 Unionid,涉及到多方绑定的问题,统一归属在了 微信开放平台

开放平台,不需要你有服务号,主要用于 PC 网站使用微信账号登录,登录方式是让用户掏出手机拿微信扫一扫。

公众号网页授权登录,必须要有服务号,并且一般用于微信内打开的页面,很多所谓的 H5,就都是这种。

两种方式都能得到 openid,即使是同一个微信号,在不同的服务号或者不同的开放平台或者同一个开放平台下面的不同网站 openid 都是不一样的。

当你把服务号绑定到开放平台之后,网页授权返回的数据会多一个 unionid,同一个微信账号在同一个开放平台账号下的 unionid 是一致的。

一号店用的是开放平台方式登录,表现形式就是跳转到 https://open.weixin.qq.com/connect/qrconnect 显示一个二维码,让你用微信扫一扫。
开发平台授权登录接口:
https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

2.6授权登录操作

2.6.1绑定回调域名(不带http,例如baidu.com)
2.6.2回调地址url解码(http://www.baidu.com/login ->http%3a%2f%2fwww.baidu.com%2flogin)
解码地址:http://tool.chinaz.com/tools/urlencode.aspx
2.6.3回调里面回去用户openid,对用户进行关联
2.6.4关联数据库中的用户,没有回到注册页面
2.6.4已有,跳过登录页面

3.微信模板消息

接口文档
https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html#5

参考链接:
https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html#5

4.微信生成二维码

接口文档:
https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html

1获取access_token(填写自己的appid和secert):
接口调用请求说明

https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
返回说明

正常情况下,微信会返回下述JSON数据包给公众号:

{“access_token”:“ACCESS_TOKEN”,“expires_in”:7200}

2.创建二维码ticket
临时二维码请求说明

http请求方式: POST
URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
POST数据格式:json
POST数据例子:{“expire_seconds”: 604800, “action_name”: “QR_SCENE”, “action_info”: {“scene”: {“scene_id”: 123}}}

或者也可以使用以下POST数据创建字符串形式的二维码参数:
{“expire_seconds”: 604800, “action_name”: “QR_STR_SCENE”, “action_info”: {“scene”: {“scene_str”: “test”}}}

返回说明

正确的Json返回结果:

{“ticket”:“gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm
3sUw==”,“expire_seconds”:60,“url”:“http://weixin.qq.com/q/kZgfwMTm72WWPkovabbI”}

3.通过ticket换取二维码

获取二维码ticket后,开发者可用ticket换取二维码图片。请注意,本接口无须登录态即可调用。

请求说明

HTTP GET请求(请使用https协议)https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET
提醒:TICKET记得进行UrlEncode
返回说明

ticket正确情况下,http 返回码是200,是一张图片,可以直接展示或者下载。

HTTP头(示例)如下:
Accept-Ranges:bytes
Cache-control:max-age=604800
Connection:keep-alive
Content-Length:28026
Content-Type:image/jpg
Date:Wed, 16 Oct 2013 06:37:10 GMT
Expires:Wed, 23 Oct 2013 14:37:10 +0800
Server:nginx/1.4.1

4.扫码,在后台对扫码的SCAN事件进行相应处理
参考:https://www.jianshu.com/p/0d70a5861bc7
https://blog.csdn.net/ycb1689/article/details/87452042
https://blog.csdn.net/qq_23543983/article/details/80228558

扫码登录:
https://www.cnblogs.com/cmyxn/p/7803117.html
https://www.cnblogs.com/cmyxn/p/7814120.html

5.微信分享

后续完善…

微信小程序:
http://www.wxapp-union.com/special/solution.html

开放平台系列文章:
https://blog.csdn.net/qq_34190023/article/details/82017767
https://www.cnblogs.com/liuhongfeng/p/4846260.html
https://www.cnblogs.com/0201zcr/p/5133062.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值