ajax json destoon,destoon框架中的微信自动登陆
1.必须配置回调函数(在微信开发者管理中)
2.用户授权并获取code
在域名(前面配置的回调域名)根目录下,新建一个文件,命名为oauth.php(名字随便你取,下面的redirect_uri做相应修改即可)
url: https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3baef8c48cce7fb3&redirect_uri=http%3a%2f%2fh5.tybxkj.cc%2foauth.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect
3.使用code换取access_token
利用get请求函数访问url
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx3baef8c48cce7fb3&secret=4ca91b29cf3370b2ad311565344b598a&code=$coded&grant_type=authorization_code
4.通过access_token、openid获取用户信息
url: https://api.weixin.qq.com/sns/userinfo?access_token=$acctke&openid=$appid
5.通过单击菜单带参数(state)判断用户跳转链接
查询数据库中有无注册记录
$pdcz = $db->get_one("select * from destoon_member where destoon_member.oppid=‘$appid‘");
有则直接登陆
$names = $pdcz[‘username‘];
$pasmd = $pdcz[‘password‘].$pdcz[‘passsalt‘];
$do = new member;
$user = $do->login($names,$pasmd,86300*30,true); //调用框架内部登陆
// 重定向
if($user){
header("Location: http://h5.tybxkj.cc/mobile/news/");
}
无则注册并登陆
$do = new member;
$data[‘regid‘] = ‘5‘;
$data[‘company‘] = null;
$data[‘username‘] = $nameu;
$data[‘password‘] = $pass;
$data[‘cpassword‘] = $pass;
$data[‘passport‘] = $nameu;
$data[‘truename‘] = $truenme;
$data[‘groupid‘] = ‘5‘;
$data[‘catids‘] = ‘111‘;
$data[‘catid‘] = ‘2‘;
$data[‘banner‘] = ‘11‘;
$data[‘thumb‘] =‘111‘ ;
$data[‘introduce‘] = ‘22‘;
$data[‘content‘] = ‘333‘;
$data[‘edittime‘] = 0;
$data[‘inviter‘] = ‘1111‘;
$data[‘oppid‘] = $appid;
$data[‘wxhead‘] = $imgtx;
$user = $do->add($data); //注册方法
if($user){
$goa = $do->login($data[‘username‘],$data[‘password‘],86300*30,true);
if($goa){
header("Location: http://h5.tybxkj.cc/mobile/news/"); //重定向
}
}
6.参考函数
//get请求
function curl_get_https($url){
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
$tmpInfo = curl_exec($curl); //返回api的json对象
//关闭URL请求
curl_close($curl);
return $tmpInfo; //返回json对象
}
代码部分
require ‘common.inc.php‘;
$module ="member";
require DT_ROOT.‘/module/‘.$module.‘/common.inc.php‘;
require DT_ROOT.‘/include/post.func.php‘;
require DT_ROOT.‘/module/‘.$module.‘/member.class.php‘;
$coded=$_GET[‘code‘];
$statea=intval($_GET[‘state‘]); //获取到code和state参数
$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx3baef8c48cce7fb3&secret=4ca91b29cf3370b2ad311565344b598a&code=$coded&grant_type=authorization_code";
$json = curl_get_https($url); //获取access_token和apenid
$arre = json_decode($json,true);
$acctke = $arre[‘access_token‘];
$appid = $arre[‘openid‘]; //opid
$urlto = "https://api.weixin.qq.com/sns/userinfo?access_token=$acctke&openid=$appid"; //获取用户信息
$jsonto = curl_get_https($urlto);
$arreto = json_decode($jsonto,true);
$truenme = $arreto[‘nickname‘]; // 用户昵称
$imgtx = $arreto[‘headimgurl‘]; // 头像
if ($statea===1){
$pdcza = $db->get_one("select * from destoon_member where destoon_member.oppid=‘$appid‘");
if($pdcza){
$namesa = $pdcza[‘username‘];
$pasmda = $pdcza[‘password‘].$pdcza[‘passsalt‘];
$do = new member;
$user = $do->login($namesa,$pasmda,86300*30, true);
// 重定向
header("Location: http://h5.tybxkj.cc/mobile/news/");
}else{
$datac = inParaMeter($appid,$truenme,$imgtx);
$do = new member;
$usera = $do->add($datac);
$goaa = $do->login($datac[‘username‘],$datac[‘password‘],86300*30,true);
header("Location: http://h5.tybxkj.cc/mobile/news/");
}
}
if ($statea===2){
$pdczb = $db->get_one("select * from destoon_member where destoon_member.oppid=‘$appid‘");
if($pdczb){
$namesb = $pdczb[‘username‘];
$pasdfb = $pdczb[‘password‘].$pdczb[‘passsalt‘];
$do = new member;
$user = $do->login($namesb,$pasdfb,86300*30,true);
// 重定向
header("Location: http://h5.tybxkj.cc/mobile/member/map.php");
}else{
$datac = inParaMeter($appid,$truenme,$imgtx);
$do = new member;
$userb = $do->add($datac);
$goab = $do->login($datac[‘username‘],$datac[‘password‘],86300*30,true);
header("Location: http://h5.tybxkj.cc/mobile/member/map.php");
}
}
if ($statea===3){
$pdczc = $db->get_one("select * from destoon_member where destoon_member.oppid=‘$appid‘");
if($pdczc){
$namesc = $pdczc[‘username‘];
$pasdfc = $pdczc[‘password‘].$pdczc[‘passsalt‘];
$do = new member;
$user = $do->login($namesc,$pasdfc,86300*30,true);
// 重定向
header("Location: http://h5.tybxkj.cc/mobile/company/");
}else{
$datac = inParaMeter($appid,$truenme,$imgtx);
$do = new member;
$userc = $do->add($datac);
$goac = $do->login($datac[‘username‘],$datac[‘password‘],86300*30,true);
header("Location: http://h5.tybxkj.cc/mobile/company/");
}
}
//传入参数
function inParaMeter($appid,$truenme,$imgtx){
$wxxas = mt_rand(10000,999999);
$nameu = ‘wx‘.$wxxas; // 随机用户名
$randpas = mt_rand(10000,999999);
$randeps = mt_rand(10000,999999);
$passwordmdf = $randpas.$randeps; // 密码
$do = new member;
$datac = array();
$datac[‘regid‘] = ‘5‘;
$datac[‘company‘] = null;
$datac[‘username‘] = $nameu;
$datac[‘password‘] = $passwordmdf;
$datac[‘cpassword‘] = $passwordmdf;
$datac[‘passport‘] = $nameu;
$datac[‘truename‘] = $truenme;
$datac[‘groupid‘] = ‘5‘;
$datac[‘catids‘] = ‘111‘;
$datac[‘catid‘] = ‘2‘;
$datac[‘banner‘] = ‘11‘;
$datac[‘thumb‘] =‘111‘ ;
$datac[‘introduce‘] = ‘22‘;
$datac[‘content‘] = ‘333‘;
$datac[‘edittime‘] = 0;
$datac[‘inviter‘] = ‘1111‘;
$datac[‘oppid‘] = $appid;
$datac[‘wxhead‘] = $imgtx;
return $datac;
}
//get请求
function curl_get_https($url){
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
$tmpInfo = curl_exec($curl); //返回api的json对象
//关闭URL请求
curl_close($curl);
return $tmpInfo; //返回json对象
}
?>
原文:https://www.cnblogs.com/coderj/p/9437739.html
ajax json destoon,destoon框架中的微信自动登陆相关推荐
- ajax校验的优点,django框架中ajax的使用及避开CSRF 验证的方式详解
本文实例讲述了django框架中ajax的使用及避开CSRF 验证的方式.分享给大家供大家参考,具体如下: ajax(Asynchronous Javascript And Xml) 异步javasc ...
- php 接收curl json数据格式,curl发送 JSON格式POST数据的接收,以及在yii2框架中的实现原理【精细剖析】...
1.通过curl发送json格式的数据,譬如代码: function http_post_json($url, $jsonStr) { $ch = curl_init(); curl_setopt($ ...
- 在ASP.NET AJAX 1.0框架中访问Web服务
一. 简介 如今,微软最新推出的AJAX框架为ASP.NET AJAX 1.0(下载地址为[url]http://ajax.asp.net/downloads/default.aspx[/ur ...
- php ci post 请求,CI框架中判断post,ajax,get请求的方法
这篇文章主要介绍了关于CI框架中判断post,ajax,get请求的方法 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 CI框架当中并没有提供,类似tp框架中IS_POST,IS_A ...
- jsp怎么接受ajax请求参数,通过ajax发送JSON并通过JSP中的请求获取参数
我需要通过ajax(使用Jquery)发送JSON对象,并通过JSP(服务器端)中的请求对象获取所有参数.通过ajax发送JSON并通过JSP中的请求获取参数 我的JS代码: var request ...
- ci如何使用中$.ajax 中的 url 如何使用php的代码,CI框架中使用ajax操作数据库有关问题...
CI框架中使用ajax操作数据库问题 本帖最后由 A9925 于 2014-11-24 16:11:05 编辑 前台: //调用方法用ajax操作add_dbdata.php var xmlHttp ...
- TP框架中ajax post请求时提示404
ajax post请求时提示404错误 TP框架中ajax post请求时提示404 找了半天是 控制器中方法有错误! 下次再遇到去控制器方法中找一步一步找,肯定能找到,我是单词拼错了! 转载于:ht ...
- ajax+php+jq+面向对象,php+jquery+ajax+json的一个最简单实例
html页面: $(function(){ $("#send").click(function(){ var cont = $("input").seriali ...
- C#开发微信门户及应用(10)--在管理系统中同步微信用户分组信息
在前面几篇文章中,逐步从原有微信的API封装的基础上过渡到微信应用平台管理系统里面,逐步介绍管理系统中的微信数据的界面设计,以及相关的处理操作过程的逻辑和代码,希望从更高一个层次,向大家介绍微信的应用 ...
- mpvue 微信小程序api_第三方框架与原生微信小程序开发框架性能之比较 | Q荐读...
作者 | 崔红保编辑 | 王莹 自 2017年1月9日微信小程序诞生以来,历经 2 年多的迭代升级,已有数百万小程序上线,成为继 Web.iOS.Android 之后,第四大主流开发技术. 与之相随, ...
最新文章
- RNA-seq分析流程
- dual orcal 虚拟表
- Python入门100题 | 第042题
- php学历低,学历低学起php来难不难
- ci php做记录删除,PHP CI APC 使用记录
- python sklearn: 模型(如 SVM,PCA等)的保存与加载调用
- event.srcElement 与event.target
- LeetCode10 Regular Expression Matching
- iconv字符编码转换
- 如何用安卓手机做代理服务器
- 预充电电路工作原理_课堂 | 为什么锂电池在充电过程中首先要进行预充电
- Jetson开发实战记录(三):Jetson Xavier NX具体开发(Ubuntu18.04系统)
- pytorch detach用法
- 51单片机计数器c语言编程,求一个 89C51 简易计算器的c语言程序 只要加减乘除就行!...
- 11款惊艳的HTML5粒子动画特效
- 《Python深度学习》3.4电影评论分类:二分类问题
- Oracle11g下载安装教程
- java百元买百兔 穷举法_JAVA--算法与数据结构- 逢7过百钱白鸡不死神兔【1/100】...
- 简单几步:图解——VS2012发布网站详细步骤
- 未来的趋势—电子签约流行