(注:openID同一用户同一应用唯一,UnionID同一用户不同应用唯一。不同应用指微信开放平台下的不同用户。)
1、 申请测试号(获得appID、appsecret)
2、 填写服务器配置并验证。
服务端编写接口,参数为(signature,timestamp,nonce,echostr),并原样返回echostr
验证之后,可开通更多公众平台接口功能。
3、 网页授权获取用户基本信息。
3.1、在接口权限表配置授权页面回调域名或ip
3.2、服务端编写接口,该接口为回调页面的[redirect_uri],即确认授权之后页面将跳转至 [redirect_uri]?code=CODE&state=STATE。服务端接收参数CODE值。
3.3、微信用户访问下面链接,授权。
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=[redirect_uri]&response_type=code&scope=SCOPE&state=123#wechat_redirect
(scope=snsapi_base,默认授权,直接跳转;scope= snsapi_userinfo,授权再跳转)
3.3、获取code后,请求以下链接,即可返回openID等数据(如下图)。
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
(3、方法二:接收事件推送(事件:关注、取关、扫码、报位置、自定义菜单事件),这些事件触发的时候,会把一个xml数据包(如下图)发送到步骤2配的URL上,在服务端解析即可。
我的代码中用到dom4j解析xml。事件推送以及Token验证共用那个URL。
其中FromUserName即为openID。)
4、获得openID