开发工具:
文件大小: 221kb
下载次数: 0
上传时间: 2019-08-10
详细说明:NULL
博文链接:https://zzc1684.iteye.com/blog/2210478我对各科微信公众号进行了解,发现多数账号采用的都是普通的view类型的菜单链接方式,通过它们链接到自己的微网站上,但也有
些做的好的,如省立中山图书馆,就能通过重定间的方式,提供一个绑定图书馆用户和微信 Openid的入口,绑定后,用户就可以
查看借阅的书籍,然后可以通过一键续借功能实现图书的快速续借功能
对于这种重定向类型的Ur1菜单事件,微信的说明如下
如果用户在微信中(web微信除外)访问公众号的第三方网页,公众号开父者可以通过此接口获取当前用户基木信息(包括昵称、性
别、城市、国家)。利用用户信息,可以实现体验优化、用户来源统讣、帐号绑定、用户身份鉴杖等功能。请注意,“获取用户基本
信息接口是在用户和公众号产生消息交互时,才能根据用户 OpenID获取用户基本信息,而网页授权的方式获取用户基本信息,则无
需消息交互,只是用户进入到公众号的网页,就可弹出请求用户授权的界面,用户授权后,就可获得其基本信息、(此过程甚至不需
要用户已经关注公众号。)”
50的1方仅传递用opnl
重定向类型菜单
Scope为 nsapi_ userinfo的链接方式
用户授权后可以获取昵称,位置,图像等信息
2、重定向类型菜单的URL
上面说了,重定向类型的菜单分为了两科,其实他们也仅仅是参数 Scope类型的不同,其他部分也还是一样的。
为了展示,我们在假设用户单击菜单的时候,切换到http://www.iqidi.com/testwx.ashx这个页面,并带过来当前用户的Openid等
参数信息
对于 scope= nsapi base方式的链接如下:
https://open.weixin.gg.com/connect/oauth2/authorize?appid=vx3d81fc2886d86526&redirecturi=http%3a%2f%2fwww.iqidi.com
%2Ftestwx. ashx&response type=code&scope=snsapi base&state=123*wechat redirect
而对于 scope- nsapi userinfo方式的链接如下
https
open.weixin.qg.com/connect/oauth2/authorize?appid=wx3d81fc2886d86526&redirecturi=http%3a%2f%2fwww.iqidi.com
%2Ftestwx. ashx&response type=code&scopesnsapi userinfo&state=123#wechat redirect
不过他们给手机客户端的体验是不同的,第一种可以平滑切换,但是第二种会弹岀一个对话框供用户确认才能继续。
命0中国联通学
22:30
常74%
返回
应用登录
广州爱奇迪
该帐号服务由广州爱奇迪软件
科技有限公司提供
广州雯磅迪件
该应用公众号将获取以下授权:
回同意使用基本资料登录此应用
取消
允许
为了演示上面两种获取数据的不同,我把他们传过来的code的值,用户换取 Openid后进行用户信息的解析,他们两者的结果都是
样了。具休测试界面如下所示
0中国联通
22:31
874%■
返回
code:022b62fb586e3b8c836c5647e7fc2224
openid:oSiLnt6t39223qvUtB9ddmgiE2cs
nickname:伍华聪sex:1
Lacation:中国广东广州zhcN
Headurl:http://wx.qlogo.cn/mmopen/bx4o
eUAFGHKuds0832x006ohYWMyaWFLGILibLbibo
fIibSekaXR5LSaEFltofRxiaYmNZzK7W2WuL 8
fYBVicia7GYD3k4oRz6zhf/0
subscribe:已订開,2014-5-1623:37:23
其中 TestWX.ashx的页面后台代码如下所小:
///
/// TestWX的摘要说明
summarv
public class testwx: IhtTphandler
string appid="";//换成你的信息
string appsecret=";//换成你的信息
publicvoidProcessrequest(httpcontExtcontext
context Response. ContentType ="Lext/ plain
string content=〃〃
if (context Request -null & context Request Url!=null)
NameValue Collection list=HiLpUtility ParseQueryString(context Request Url Query
foreach (string key in list. AllKeys)
content +- string. Format(10): 1 \r\n, key, list [key ])
string code context Request Query String[ code??
if (!string Is NullOrEmpty(code))
I BasicApi api new BasicApi(
try
AppConfig config- new AppConfig(
appId= config. AppConfigget(" Appl");//从配置中获取微信程序ID
appsecret= config. AppConfigget(" Appsecret");//从配置中获取微信程序秘钥
Access TokenResult result= api. GetAccessToken (appid, appsecret, code)
if (result
content + string Format("openid: O\\n", result. openid)
string token api GetAccess Token(appId, appSecret)
IUserApi userApi new UserApi o
User Json userDetail= userApi GetUserDetail(token, result. openid)
if (user Detail != null
content + string Format(nickname: 10 sex: 1r\n", userDetail nickname
userDetail, sex
content + string Format( Location: 0))2)3\r\n", userDetail country
userDetail. province, userDetail. city, userDetail language
content + string Format(HeadUrl: 10) r\n", userDetail headimgurl)
content + string Format("subscribe: 10, 1\r\n",(userDetail subscribe ==1)?EiLa
未订阅", userDetail. subscribe time. GetDateTime())
catchi j
context Response. Write(content)
在上面的代码中,我主要分为几步,一个是打印当前用户重定向过来的链接的参数信息,代码如下。
Namevalue Collection list Httputility. Parsequery striNG(context. Request Url. Query)
foreach (string key in list. AllKeys
content+= string. Format( 01: 1 \r\n, key, list [key])
然后获取到Code参数后,通过APⅠ接口,获取 AccessTokenresult的数据,这里面有用户的 Openid
AccessTokenResult result api GetAccess Token (appId, appSecret, code
当正常调用后,我们把用户标识的ω pen ID进一步进行解析,调用API获取用户的详细信息,具体代码如下所示
User Json userDetail= userApi GetlserDetail(token, result. openid)
当我们把用户的相关信息获取到了,就可以做各种用户信息的展示了,如下代码所示。
if (userDetail ! null)
content + string Format(nickname: 10) sex: 1\r\n", userDetail nickname
userDetail. sex)
content + string Format("Location:0[\r\n", userDetail country
userDetail.province, userDetail. city, userDetail. language)
content + string Format("HeadUrl: 0 r\n, userDetail headimgur1
content + string Format(" subscribe: 101, 1\r\n",(userDetail subscribe ==1)?dil
宋订阅", userDetail. subscribe time. GetDatetime();
3、重定向链接菜单的用途
这种菜单就是需要指定域名,在微信后台中进行设置,重定向的链接必须属于这个域名之中,否则不会转到你希望的链接。
这个方式,让我们的微信应用程序后台可以获得用户的标识、用户详细信息等,我们就可以用来绑定和用户相关的业务信息了,如上
面提到的图书馆借阅信息,送水客户的信息,客户的积分信息,或者可以和后台账号进行关联实现更加复杂的应用等。用户的身份信
息如此重要,如果结合到我们的CRM系统、业务管理系统,就可以发挥用户信息应用的作用了。
以上就是我对这个类型菜单链接的应用了解,具休还需要进一步深化其应用,希望和大家共同探讨这方面的应用场景。
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.