微信开发4——PHP实现PC扫码授权登陆获取用户信息

首先须要申请,必须企业,个体工商户,媒体等,微信开放平台申请地址 https://open.weixin.qq.com/,要交300多的费用才能开通

1,编写入口:微信开放平台的扫码登陆开放的接口可以自动生成PC扫码页面,你得到了官方通过审核的appid和appsecret后,先构造一个扫码网址入口(这里以"一号店"的扫码登陆页面为例子)

https://open.weixin.qq.com/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https%3A%2F%2Fpassport.yhd.com%2Fwechat%2Fcallback.do&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect

访问后

扫码后手机端效果

 

入口代码如下:

<?php
//-------配置
$AppID = 'wxbdc5610cc59c1631';
$AppSecret = 'd4624c36333337afxxxxxxxxxxxxxx';
$callback  =  'https://passport.yhd.com/wechat/callback.php'; //回调地址
//微信登录 login.php
session_start();
//-------生成唯一随机串防CSRF攻击
$state  = md5(uniqid(rand(),TRUE));
$_SESSION["wx_state"]    =   $state; //存到SESSION
$callback = urlencode($callback);
$wxurl = "https://open.weixin.qq.com/connect/qrconnect?appid=".$AppID."&redirect_uri={$callback}&response_type=code&scope=snsapi_login&state={$state}#wechat_redirect";
header("Location: $wxurl");
?>

回调文件callback.php

<?php
//验证CSRF攻击
if($_GET['state']!=$_SESSION["wx_state"]){exit("5001");
}
$AppID = 'wx33333333334d4';
$AppSecret = 'd4624c363333330547af5443d';
$url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$AppID.'&secret='.$AppSecret.'&code='.$_GET['code'].'&grant_type=authorization_code';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$json =  curl_exec($ch);
curl_close($ch);
$arr=json_decode($json,1);
//得到 access_token 与 openid
print_r($arr);    
$url='https://api.weixin.qq.com/sns/userinfo?access_token='.$arr['access_token'].'&openid='.$arr['openid'].'&lang=zh_CN';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$json =  curl_exec($ch);
curl_close($ch);
$arr=json_decode($json,1);
得到 用户资料
print_r($arr);   
?>

PC端最终效果如下:

 

如有问题,请咨询我的qq:1290851757,备注:csdn博客问问题的

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理和体系结构----软考(到处copy)

计算机组成原理和体系结构数据的表示n进制转十进制十进制转n进制 使用短除法二进制转八进制和十六进制原码、反码、补码以及移码浮点数运算计算机结构计算机体系结构分类 - FlynnCISC 和 RISC流水线流水线计算流水线时间计算流水线吞吐率计算流水线的加速比计算流水线的效率计算…

一个笔试题

题目&#xff1a;输入一个数N&#xff0c;计算1、2、3、...、N这N个数进行排列组合&#xff0c;使得这个数列任意两个相邻数之和为素数&#xff0c;求结果T&#xff0c;T为这样的数列的个数&#xff1b; private static final Map<Integer, Boolean> SUSHU new HashMap&…

Ubuntu16.04安装Hadoop+Spark+pyspark大数据python开发环境

一&#xff0c;安装jdk1.8.0.144 下载地址&#xff1a;www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html Ubuntu配置jdk运行环境 export HADOOP_HOME/usr/local/hadoop export CLASSPATH$($HADOOP_HOME/bin/hadoop classpath):$CLASSPA…

C# 分割字符串方法

单个字符分割 string s"abcdeabcdeabcde"; string[] sArrays.Split(c); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab deab deab de 多个字符分割 string s"abcdeabcdeabcde string[] sArray1s.Split(new char[3]{c,d,e})…

使用IntelliJ IDEA和Maven管理搭建+Web+Tomcat开发环境

使用IntelliJ IDEA和Maven管理搭建WebTomcat开发环境 使用IntelliJ IDEA和Maven管理搭建WebTomcat开发环境 前言&#xff1a;原来一直使用Eclipse&#xff0c;换工作后使用IDEA&#xff0c;初识IDEA发现&#xff0c;哇&#xff0c;它的快捷键可真多啊&#xff0c;但是一路用下…

SpringBoot部署项目到Linux上传文件路径问题

SpringBoot部署项目到Linux上传文件路径问题 使用项目相对路径上传到话会上传到linux服务器到/tmp 临时文件目录中&#xff0c;但是问题是还会报异常 Caused by: java.io.FileNotFoundException: /tmp/tomcat.8223985333111777969.80/work/Tomcat/localhost/ROOT/file:/projec…

Android权限Uri.parse总结

Android权限Uri.parse的详细资料刚整理了份Android权限Uri.parse的资料1&#xff0c;调web浏览器Uri myBlogUri Uri.parse("http://xxxxx.com");returnIt new Intent(Intent.ACTION_VIEW, myBlogUri);2&#xff0c;地图Uri mapUri Uri.parse("geo:38.899533,…

一起玩Docker之1——Ubuntu配置安装Docker运行环境并安装(Ubuntu、Centos)镜像

Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱机制&am…

SpringBoot执行器端点Actuator Endpoint

比较常用的Endpoint URL作用/actuator/health健康检查/actuator/beans查看容器中所有的Bean/actuator/mapping查看Web的URL映射/actuator/env查看环境信息 默认/actuator/health和/actuator/info是可以通过Web访问&#xff0c;其他的需要解禁 在配置文件中可以设置可以访问哪…

EOF标准输入

Linux中&#xff0c;在新的一行的开头&#xff0c;输入Ctrl-d&#xff0c;就代表EOF&#xff08;如果在一行的中间按下Ctrl-d&#xff0c;表示输出“标准输入”的缓存区&#xff0c;这时需要按两次&#xff09;。另外Ctrl-z表示中断进程&#xff0c;在后台挂起&#xff0c;用fg…

玩玩机器学习3——TensorFlow基础之Session基本运算、占位符和变量的使用

通过TensorFlow的矩阵和常量的"加减乘除"运算&#xff0c;讲一下Session、变量以及占位符的使用 目录 Session创建会话与运算 变量的使用 占位符的使用 Session创建会话与运算 #session的使用&#xff0c;介绍两种启动Session的方式&#xff0c;进行矩阵乘法运算…

域内禁止不明东西连接DHCP

今天在Windows论坛看到一大牛版主分享的经验&#xff0c;赶紧挺好&#xff0c;就赶紧记下来。 http://bbs.51cto.com/thread-967999-1.html 再补充一点点 域内查看其他pc的 MAC 地址 同一网段的 直接 ping一下 对方 ip地址 然后 arp -a 一下 不通网段的 可以先在 dhc…

SpringBoot中mybatis配置多数据源

首先需要创建多个数据库 简单的user表 CREATE TABLE user (id int NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,age int DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT2 DEFAULT CHARSETutf8;导入项目依赖 <dependencies><dependency&g…

玩玩机器学习4——TensorFlow基础之激活函数

激活函数&#xff08;activation function&#xff09;运行时激活神经网络中某一部分神经元&#xff0c;将激活信息向后传入下一层的神经网络。神经网络之所以能解决非线性问题&#xff08;如语音、图像识别&#xff09;&#xff0c;本质上就是激活函数加入了非线性因素&#x…

centos更改MySQL数据库目录位置

http://barrelfish.blog.163.com/blog/static/130650826201010204911893/ MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步&#xff1a;1、home目录下建立data目录cd /homemkdir data2、把MySQL服务进程停掉&#xff1a; mysqladm…

玩玩机器学习5——构造单层神经网络解决非线性函数(三次函数)的曲线拟合

使用TensorFlow构造了一个隐藏层和输出层的神经网络&#xff0c;做非线性曲线的拟合 import tensorflow as tf import matplotlib.pyplot as plt import numpy as npnp.random.seed(1) x np.linspace(-1, 1, 100)[:, np.newaxis] #创建一个新维度 noise np.random.normal(0,…

分享:假如浏览器和搜索引擎不再支持外部链接跳转,优化何去何从呢?

分享&#xff1a;假如浏览器和搜索引擎不再支持外部链接跳转&#xff0c;优化何去何从呢&#xff1f; 当我们的浏览器和搜索引擎不再支持外部链接跳转&#xff0c;我们的优化何去何从呢&#xff1f; 其实这是一个假设。 如果真有那么一天。 那么&#xff0c;搜索引擎也许只要…

HTML网页使用CDN的jquery.qrcode.min.js生成页面二维码(直接可以复制使用)

HTML页面代码 <!DOCTYPE html> <html> <head><title></title><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><meta name"generator" content"pandoc" /><meta n…

Shiro 整合 SpringBoot

Shiro 整合 SpringBoot shiro主要有三大功能模块 Subject&#xff1a;主体&#xff0c;一般指用户。 SecurityManager&#xff1a;安全管理器&#xff0c;管理所有Subject&#xff0c;可以配合内部安全组件。(类似于SpringMVC中的DispatcherServlet) Realms&#xff1a;用于…

centos安装php7编译

centos7下安装php7 php7 centos7 安装PHP7 首先安装一些必须的依赖&#xff0c;这里就不阐述了&#xff0c;后面文章再细说 yum install -y \ gcc-c autoconf \ yum -y install postgresql-devel\ libjpeg libjpeg-devel libpng \ libpng-devel freetype freetype-devel \ li…