• 微信公众号开发获取openID以及用户详细信息,超详细步骤,亲测开发

        好久没有发过博文了,恰好这两天做了一个关于微信公众号开发的东东,拿出来和大家分享一下。

        需要做一套微信签到、抽奖系统,我要在后台存储微信用户的相关信息,openIDNickname之类的信息。在开发前有一点准备工作,先去授权权限,在权限表里进行设置,如图:

        


    填写这个网站地址的时候一定要注意填写域名路径,没有http头,就是你的域名而已,在该域名下的所有页面都可访问到,被授权。

    好了初期的准备工作做好了,下来填写公众测试号的一些信息。

    填写你的接口信息:

    这里的url须填写你的接口地址,(在我下面的代码里调用valid()方法),在代码里设置一个token,和此处你填写的token保持一致。不然你会发现总是设置失败。

    接下来就是源码,直接上代码吧:

    <?php
    define("TOKEN", "shiva");
    class Wechatsign extends Back_Controller{
        private $appId;
        private $appSecret;
        public function  __construct($appId, $appSecret){
           $this->appId = '你自己的APPID';  
           $this->appSecret= '你自己的APPSECRET';  
           
        }
        
        public function getBaseInfo(){
            //1.获取到code        
            $redirect_uri=urlencode("http://你的域名/Wechatsign/getUserOpenId");//这里的地址需要http://
            $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->appId."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";
            header('location:'.$url);
        }
    
        public function getUserOpenId(){
            //2.获取到网页授权的access_token        
            $code = $_GET['code'];
            $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$this->appId."&secret=".$this->appSecret."&code=".$code."&grant_type=authorization_code ";
            //3.拉取用户的openid
            $res = $this->http_curl($url);
            echo $res;//打印即可看到用户的openid
            $data = json_decode($res,true);
            if(!empty($data['access_token']) && !empty($data['openid'])){
                $url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$data['access_token']."&openid=".$data['openid']."&lang=zh_CN"; 
                $userInfo = $this->http_curl($url);
                echo $userInfo;
            }
        }
        
        public function valid(){
            $echoStr = $_GET["echostr"];
            //valid signature , option
            if($this->checkSignature()){
                echo $echoStr;
                exit;        
            }
        }
        
        
        private function checkSignature(){
            $signature = $_GET["signature"];
            $timestamp = $_GET["timestamp"];
            $nonce = $_GET["nonce"];     
            $token = TOKEN;
            $tmpArr = array($token, $timestamp, $nonce);
            sort($tmpArr);
            $tmpStr = implode( $tmpArr );
            $tmpStr = sha1( $tmpStr );
            if( $tmpStr == $signature ){
                return true;
            }else{
                return false;
            }
    
        }
        
        
        public function http_curl($url){
            $curl = curl_init();
            //设置抓取的url
            curl_setopt($curl, CURLOPT_URL, $url);
            //设置头文件的信息作为数据流输出
            curl_setopt($curl, CURLOPT_HEADER, 0);
            //设置获取的信息以文件流的形式返回,而不是直接输出。
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            //执行命令
            $data = curl_exec($curl);
            //关闭URL请求
            curl_close($curl);
            //显示获得的数据
            return $data;
        }
        
    }
    
    代码很简单,不复杂,应该能看懂(如果看不懂去看一下微信的开发者文档)。有一点很重要,如果你要获取用户的基本信息比如性别、昵称,头像,地址之类的信息的话,你要注意我getBaseInfo()方法里的url中有一个参数scope他的值一定是snsapi_userinfo,别直接拿微信开发文档里的url过来用,他给的值是snsapi_base。需要你注意改一下,我已经改好了,但还是写出来让大家了解一下。

    ok,将http://你的域名/接口,这个地址复制到草料二维码,生成二维码后扫一扫,你就能看到结果信息了,按我的绝对没问题哦。如果有用的话,就点个赞吧。

    予人玫瑰,手有余香

    展开全文
  • 个人微信开发api文档 2019-07-14 15:15:09
    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口 微信开发sdk服务端调用接口 1、基础消息类型 1、客户端发送的心跳包 HeartBeatReq = 1001; 2、消息接收确认回复(接收或拒绝接收) MsgReceivedAck = ...
  • 个人微信开发API协议 2019-09-23 15:05:30
    安卓微信的api,个人微信开发API协议,微信 ipad sdk,微信ipad协议,微信web版接口api,微信网页版接口,微信电脑版sdk,微信开发sdk,微信开发API,微信协议,微信接口文档sdk,替代微信ipad协议的api接口,网页...
  • Unity仿微信开发 2020-07-01 11:05:49
    使用Unity仿微信开发IM即时通讯软件,探索IM开发技术、数据库设计、通用网络模块、音视频通讯等。 功能介绍: 1.支持Unity编辑器、PC、Mac、Android、IOS、UWP平台 2.实现文字、表情、图片、视频、语音、文件发送...
  • 获取通讯录员工的信息并保存到数据库,获取部分已经明白。 获取到的是个JSONObject,json是小白,怎么将JSONObject解析出来并将结果存储到数据库?最好有代码和注释,小白求教!
  • 上一篇《微信开发学习总结(一)—微信开发环境搭建》我们已经完成了微信开发的准备工作,准备工作完成之后,就要开始步入正题了。 一、微信公众平台的基本原理  在开始做之前,先简单介绍了微信公众平台的基本...
  • C#微信开发 2017-12-24 10:35:37
    C#开发微信门户及应用教程   作者:伍华聪   C#开发微信门户及应用(1)--开始使用微信接口 6 1、微信账号 6 2、微信菜单定义 7 3、接入微信的链接处理 8 4、使用开发方式创建菜单 14 5、我创建的菜单案例 17 C#...
  • 个人微信开发API 2019-05-30 00:30:59
    微信开发SDK,微信二次开发sdk,个人微信开发API 微信开发SDK接口API列表 1、基础消息类型 1、客户端发送的心跳包 HeartBeatReq = 1001; 2、消息接收确认回复(接收或拒绝接收) MsgReceivedAck = 1002; 3、错误单独...
  • 微信开发SDK 2019-05-29 14:38:33
    微信开发SDK,微信二次开发sdk,个人微信开发API 微信开发SDK接口API列表 1、基础消息类型 1、客户端发送的心跳包 HeartBeatReq = 1001; 2、消息接收确认回复(接收或拒绝接收) MsgReceivedAck = 1002; 3、错误单独...
  • 近年来,随着微信业务的突飞猛进,微信可谓是开创了中国即时通讯业的又一先河。想必大家都听说过微信二次开发,那么什么是微信二次开发呢?如何进行微信二次开发呢?下面就由艺形艺意工作室创始人黎想将从3W角度为...
  • 最近几天干啥都不来劲,昨晚偶然了解到Python里的itchat包,它已经完成了wechat的个人账号API接口,使个人爬取微信好友列表数据更加方便。鉴于自己很早之前就想知道诸如自己微信好友性别比例都来自哪个城市之类的...
  • 说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家...在这里可以通过微信渠道将品牌推广给上亿的微信用户,减少宣传成本,提高品牌知名度,打造更具影响力的品牌形象。 3. 公众平台 微信公众平...
  • 目录   (一)微信公众号开发之...(五)微信公众号开发之网页中及时获取当前用户Openid及注意事项   (六)微信公众号开发之扫码支付   (七)微信公众号开发之公众号支付   (八)微信公众号开发之先...
  • 微信公众号主要有以下几个步骤 微信公众号的通讯机制 微信公众号简介 1.注册微信公众号 2.注册测试公众号 3.搭建微信本地调试环境 1)下载客户端natapp: 2)安装natapp: 4.微信公众号接入(校验签名) 第1步中...
  • 微信小程序开发记录(一)微信小程序开发记录获取微信登录凭证code小程序前端的示例代码到微信服务器换取微信用户身份id小程序后端的示例代码 微信小程序开发记录 遇到的项目是微信小程序后台,登陆是后台自己的账号...
  • 参考腾讯提供的企业微信api,得知企业微信在同步通讯录时需要先将部门和人员按照规定格式上传,然后再根据上传后返回的media_id执行部门或者人员的覆盖操作。 话不多说,直接上菜。 同步程序 public string ...
  • 微信公众平台开发问答 2016-01-16 11:31:17
    微信公众平台开发问答是一个微信知识问答区,专注于提供微信应用及开发技术知识的整理、归类和检索。   主题:新手常见问题 问:我是新手,没有开发基础,应该如何学习微信公众平台的开发?答:先学习PHP和Mysql...
1 2 3 4 5 ... 20
收藏数 27,341
精华内容 10,936