文章针对订阅号和服务号
01.开发环境
- Visual Studio
- IIS
- natapp 做内外网映射
02.订阅号和服务号区别
- 推送频率:服务号每月 4 条。订阅号每天 1 条
- 功能:服务号开放更多高级功能。订阅号功能相对有限
- 接收消息:服务号显示在微信对话框中。订阅号显示在文件夹中
03.使用 Senparc.Weixin SDK
Nuget 搜索Senparc.Weixin.MP添加引用
001.网页授权–2018 年 3 月 28 日 14:17:03
网页授权解决的问题是:获取用户 OpenID 或者获取用户信息。(不使用 OAuth 带来的问题是,无法保证应用服务器先收到 点击事件 还是 先打开网页)
授权前,需要设置授权回调域名。具体位置:“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”
授权方式有两种:
- snsapi_base 用来获取进入页面的用户的 openid。 静默授权。
- snsapi_userinfo 用来获取用户的基本信息。需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
微信菜单设置格式:
1 | https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf5b65d2df8d129d4&redirect_uri=http%3a%2f%2fwww.a9u5kn.natappfree.cc%2fsmd%2fweixin%2fOAuth2%2fIndex%3freturnUrl%3d%2fUserInfo%2fIndex&response_type=code&scope=snsapi_base&state=none#wechat_redirect |
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 公众号的唯一标识 |
redirect_uri | 是 | 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理 |
response_type | 是 | 默认 code |
scope | 是 | 作用域。snsapi_base 或者 snsapi_userinfo |
state | 否 | 重定向后会带上 state 参数。可以填写 0-9 A-Z a-z 任意值 |
#wechat_redirect | 是 | 无论直接打开还是做页面 302 重定向时候,必须带此参数 |
示例:
1 | ... |
99.遇到的问题
- a.js 文件缓存问题。这个问题可以在引用的时候加个参数,修改 js 文件同时修改参数值
- b.未能解析此远程名称‘api.weixin.qq.com’。说明服务器无法 ping 通此此地址,无法上外网。