2016-12-26 14:30:19 u014783753 阅读数 948
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15950 人正在学习 去看看 传智


最近在做一个微信公众号的项目,和微信交互,获取用户基本信息是基本需求。获取用户基本信息有很多途径,现在我们讨论的是“网页授权获取用户基本信息”这种方式。

文章需要参考微信开发者文档:点击打开链接

另,会把部分java实现代码贴出来供参考。

微信公众平台通过OAUTH认证获取用户信息,这个过程大体分为以下几个步骤:

1、根据appid以及回调url获取code(时效==5min);

2、根据code获取access_token(时效in(1天、7天、30天、90天));

3、根据access_token获取用户基本信息;

具体例子如下:

1、根据appid和回调url获取code。

     假如微信公众平台配置的业务回调url为:"https://myreturn.com.cn"、appid为:"fdsaadeicekandead";

    再结合文章前边连接给出的文档,那么我们需要请求的url为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=fdsaadeicekandead&redirect_uri=https%3A%2F%2FmySite/myreturn&response_type=code&scope=snsapi_base&state=123#wechat_redirect

   发起请求的代码

@RequestMapping("/loginWx/")
	public ModelAndView initWxLogin() {
		try {
			String url = "
https://open.weixin.qq.com/connect/oauth2/authorize?appid=fdsaadeicekandead&redirect_uri=https%3A%2F%2FmySite/myreturn&response_type=code&scope=snsapi_base&state=123#wechat_redirect";
ModelAndView modelAndView = new ModelAndView(url);return modelAndView;} catch (UnsupportedEncodingException e) {e.printStackTrace();return new ModelAndView("error");}}



2、根据code获取access_token的代码如下:

@RequestMapping(value="/myreturn")
	public ModelAndView myreturn(String code, String state){
		if (null != code) {
			try {
                            HttpUriRequest httpUriRequest = RequestBuilder.post()
				.setUri("https://api.weixin.qq.com/sns/oauth2/access_token")
				.addParameter("appid", appid)
				.addParameter("secret", secret).addParameter("code", code).addParameter("grant_type", "authorization_code").build();
				Token token = httpClient.execute(httpUriRequest , responseHandler,HttpClientContext.create());				
			} catch (Exception e) {
				e.printStackTrace();
			}
		
			return new ModelAndView("跳转的url");
		
		}
	}
Toke类参照给出的连接定义即可;


3、根据access_token获取用户的基本信息:

HttpUriRequest httpUriRequest = RequestBuilder.post()
				.setUri(BASE_URI+"/sns/userinfo")
/*				.setUri(BASE_URI+"/cgi-bin/user/info")
*/				.addParameter(getATPN(),access_token)
				.addParameter("openid",openid)
				.addParameter("lang","zh_CN")
				.build();
User user = httpClient.execute(httpUriRequest , responseHandler,HttpClientContext.create());

User参照给出的链接指出的用户信息定义即可;




2018-12-20 11:32:37 weixin_44185377 阅读数 1838
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15950 人正在学习 去看看 传智

微信开发者工具调试微信网页授权,点击‘登录’按钮无效

问题描述

h5页面需要获取微信用户信息,参考 微信开发者文档,一步步走到用开发者工具调试页面,却发现点击登录按钮没有反应!如下
微信授权页面
看日志信息
在这里插入图片描述
好吧,说这个图片路径是http,而应该是https,可是这是微信自己的页面啊,怎么改???
然鹅不是这个原因,偶然发现点击按钮上边缘是有效的,点击之后重定向页面,跟文档描述的一模一样。为什么点击上边缘有效,而点击按钮无效?如果你也是这样,那么请打开电脑设置—字体大小–看看是不是125%???
现在,把字体设置成100%,重新打开微信开发者工具,再去调试上面的页面,你会惊喜地发现,点按钮可以了。

原因

电脑设置的字体大小(非100%)的时候,会影响微信开发者工具dom节点事件绑定的位置,根据表现来看,并不影响渲染。

补充一下

过程中call_me_small_pure的博客 给了很大帮助,感谢!

2017-01-16 15:56:07 qq_25032257 阅读数 111
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15950 人正在学习 去看看 传智

        在开发微信时,都有这么一个问题,如何获取当前用户的信息,比如头像、昵称、性别等等。当获取到这些时,我们可以就可以将用户信息存储到数据库,完成用户的注册。那么在微信客户端如何获取用户信息呢?在微信开发者文档中https://mp.weixin.qq.com/wiki/1/8a5ce6257f1d3b2afb20f83e72b72ce9.html可以看到,获取用户信息需要两个条件,1是access_token,2是openid,'access_token'如何获取在文档中有详细介绍,主要是openid如何获取。

      openid获取有两种方式:一是在微信公众号收到消息的xml数据中的FromUserName,另一种是通过网页授权方式获取。

获取用户信息只有在认证的订阅号和认证的服务号上被授权,才能获取到用户信息,如果不是这两种方式。对不起,不能获取用户信息。

2014-10-24 11:24:26 zzc1684 阅读数 42
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15950 人正在学习 去看看 传智

在关注者与公众号产生消息交互后,微信公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同 公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。

获取用户基本信息

开发者可通过OpenID来获取用户基本信息。请使用https协议。

接口调用请求说明

http请求方式: GET
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

参数说明

参数 是否必须 说明
access_token 调用接口凭证
openid 普通用户的标识,对当前公众号唯一
lang 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

返回说明

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

{
    "subscribe": 1, 
    "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
    "nickname": "Band", 
    "sex": 1, 
    "language": "zh_CN", 
    "city": "广州", 
    "province": "广东", 
    "country": "中国", 
    "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", 
   "subscribe_time": 1382694957
}

参数说明

参数 说明
subscribe 用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
openid 用户的标识,对当前公众号唯一
nickname 用户的昵称
sex 用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
city 用户所在城市
country 用户所在国家
province 用户所在省份
language 用户的语言,简体中文为zh_CN
headimgurl 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空
subscribe_time 用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间

错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

{"errcode":40013,"errmsg":"invalid appid"}
2019-12-26 11:39:31 wangwengrui40 阅读数 56
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15950 人正在学习 去看看 传智

学习微信开发的第一步就是获取用户信息。那么我们用C#怎么开发呢?

根据开发者文档获取用户信息分为4步: 获取code(授权标识)--->通过code掉微信接口获取OpenId(微信公众号每个用户的唯一标识)-->获取accessToken(调接口标识)---》通过OpenId、accessToken 掉接口获取 用户信息

下面介绍获取code的原理(注意是原理,你可以更具这个原理,写一个页面获取也可以,写一个接口获取)

获取code

获取code原理

把你要获取code的地址,封装成下面的连接,让用户点击

https://open.weixin.qq.com/connect/oauth2/authorize?appid=你自己公众的appId&redirect_uri=你获取code的地址&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

用户点击授权后会自动跳到你的地址,并带上code参数

你获取code的地址?code

演示:

我写了个 获取参数地址的页面

<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <script>
   window.onload = function(){ 
    
	var url = document.location.toString();//获取url地址
    var urlParmStr = url.slice(url.indexOf('?')+1);//获取问号后所有的字符串
    var arr = urlParmStr.split('&');//通过&符号将字符串分割转成数组
    var code = arr[0].split("=")[1];//获取数组中第一个参数
	document.getElementById("code").innerHTML=code;
  } 

  </script>
</head>

<body>
<p id="code"> </P>
</body>

写好后发布,并到公众号-->功能设置,把网页授权给你的域名(必须是域名,它要求下载的文件放到,)

如果没有域名可以用花生壳进行映射一个域名

最后引导用户点击这个加了微信前缀的连接就可以,得到code了。

微信开发对接

阅读数 2030

没有更多推荐了,返回首页