Demo访问地址:http://wechat.magicodes.net/app/AppDemo/WeChatOAuthTest?tenantId=1

关于公众号如何获取用户信息,请参考此文档:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

WeChatOAuthTest演示了如何通过特性“WeChatOAuth”通过微信网页授权获取用户基本信息。

1.配置权限

在开始之前,需要在开发者中心修改【网页授权获取用户基本信息】,在弹出的界面输入自己的根域名。比如:wechat.magicodes.net

如下图所示:

2 编写业务代码

设置好了之后,我们开始编写业务代码:

//注意继承自:AppBaseController
public class AppDemoController : AppBaseController
{
// GET: App/AppDemo/WeChatOAuthTest
[WeChatOAuth]
public ActionResult WeChatOAuthTest()
{
return View(WeiChatUser);
}
}

请注意以下内容:

  • AppBaseController:封装了租户Id获取逻辑(支持get参数和Route参数)以及微信控制器的处理。
  • WeChatOAuth:网页授权获取用户基本信息特性。使用此特性后,可以通过WeiChatApplicationContext.Current.WeiChatUser获取到用户信息,也可以通过AppBaseController的WeiChatUser获取。总之,使用该特性后,开发者无需关心公众号复杂的授权并获取信息的逻辑,而且一次获取后,框架会自动缓存用户信息,以优化性能以及提高页面的加载速度。
  • WeiChatUser:微信粉丝对象,取自AppBaseController,等同于WeiChatApplicationContext.Current.WeiChatUser。

关于WeiChatUser对象的定义如下:

接下来,我们需要编写页面代码了。Views比较简单,关键代码如下所示:

@using Magicodes.WeiChat.Unity;
@model Magicodes.WeiChat.Data.Models.WeiChat_User
@{
ViewBag.Title = "WeChatOAuth测试";
}
<div class="aui-content">
<ul class="aui-list-view">
<li class="aui-list-view-cell aui-img">
<img class="aui-img-object aui-pull-left" src="@Model.HeadImgUrl">
<div class="aui-img-body">
@Model.NickName
<p>
<span class="aui-label aui-label-default">@Model.Remark</span><br />
<span class="aui-label aui-label-primary">@Model.City</span><br />
<span class="aui-label aui-label-success">OPENID:@Model.OpenId</span><br />
<span class="aui-label aui-label-success">@(Model.Sex.GetEnumMemberDisplayName())</span><br />
<span><a href="#">查看详细说明</a></span>
</p>
</div>
</li>
</ul>
</div>
@…省略若干代码@

3 配置自定义菜单

代码写完了,我们需要查看相关效果。这时候,先得配置好菜单,如下所示:

4 效果图

效果图如下所示:

至此,整个Demo完成。

我们重新温习一下。主要步骤如下:

1) 配置【授权回调页面域名】

2) 继承AppBaseController,添加特性WeChatOAuth。

3) 通过WeiChatUser获取用户信息

4) 配置自定义菜单

5) 用手机(电脑)微信打开页面,查看效果

Magicodes.WeiChat——WeChatOAuthTest(网页授权获取用户基本信息)的更多相关文章

  1. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  2. 微信网页授权获取用户基本信息--PHP

    现在就说说怎么通过网页授权获取用户基本信息(国家,省,市,昵称)等. 必要条件: 1)公众号认证 2)有网页授权获取用户基本信息的权限接口 注意:最近有朋友说:在公众平台申请的测试号,会出现无法取到用 ...

  3. 微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  4. 【微信公众号开发】【8】网页授权获取用户基本信息(OAuth 2.0)

    前言: 1,在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名. 请注意,这 ...

  5. 微信网页授权+获取用户基本信息+强制关注+JSSDK分享参数

    网页授权+获取用户基本信息+强制关注+JSSDK分享参数 //支付宝红包口令列表 public function view(){ $openid = ""; Vendor('Wei ...

  6. 微信公众平台--网页授权获取用户基本信息(snsapi_userinfo方式)

    关于snsapi_userinfo网页授权的说明 以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的.但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注, ...

  7. 微信公众平台--网页授权获取用户基本信息(snsapi_base方式)

    关于snsapi_base网页授权的说明 以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的.用户感知的就是直接进入了回调 ...

  8. 微信 网页授权获取用户基本信息(OAuth 2.0)

    // 相关设置 $APPID = ""; $AppSecret = ""; $html = ""; // 拼接 URL // 跳转该连接 获 ...

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

    转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...

随机推荐

  1. 自定义UITableViewCell

    随着日常的使用,系统提供的cell已经不能满足开发的需要,因为系统提供的是单一的,所以 这就引来了自定义cell的出现,可以根据 自己的需要来布局各个控件所处的位置.不同位置显示不同的控件. 创建一个 ...

  2. vi 使用

      1)命令 gf  ,可以从光标指定的文件位置打开对应文件 :bd回来 2)http://www.cnblogs.com/wangkangluo1/archive/2012/04/12/244495 ...

  3. ecshop的弊病和需要修改的地方,持续更新

    ecshop的session机制是基于cookie的,用数据库进行缓存,当浏览器关闭cookie,sessions表会爆表,所以需要改进. 在cls_template.php中 $_echash值是固 ...

  4. 关于 NPOI 报 Invalid column index (256). Allowable column range for BIFF8 is (0..255) or ('A'..'IV') 错误的解决办法

    当看到这个错误的时候,网上搜索可以会有些说列数有限制之类的说法,这个说法是相对于 Office 2003 的,在 Office 2007 之前,最多只可以创建  列:在 Office 2007 之后, ...

  5. 循序渐进Python3(七) -- 2-- 面向对象进阶

    面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实 ...

  6. [2015hdu多校联赛补题]hdu5348 MZL's endless loop

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5348 题意:给你一个无向图,要你将无向图的边变成有向边,使得得到的图,出度和入度差的绝对值小于等于1, ...

  7. Spring----->projects----->Spring Boot

    1.概述:(about Spring Boot) Spring boot是在spring framework的基础上搭建起来的一个基本项目,该项目中已经集成了spring框架下的若干模块以及sprin ...

  8. [原创]Matlab获取当前时间信息

    本文主要介绍下Matlab中如何获取当前时间的一些方法. 基本变量date.now.clock date 按照日期字符串返回当前系统时间 now 按照连续的日期数值返回当前系统时间 clock按照日期 ...

  9. Selenium2+python自动化24-js处理富文本(带iframe)

    前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的 ...

  10. 连接Oracle的帮助类

    package util; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedState ...