微信授权登陆
2018-10-19 06:16:03来源:博客园 阅读 ()
1.微信授权登陆会传一个code值到后台,通过code取得微信用户信息
use think\Loader; //使用thinkPHP的Loader类
Loader::import('Curl.Curl'); //引入Curl文件
//目录结构
public function login(){
$Curl = new \Curl(); //自己封装的发送请求的方法
$code = input('code','');//小程序传来的code值
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.get_wx_config('appid').'&secret='.get_wx_config('secret').'&js_code='.$code.'&grant_type=authorization_code&connect_redirect=1';
$info = $Curl::send($url,'get');
$json = (array)json_decode($info);
return $json;
}
/**
* Curl 类详解
*/
class Curl {
private static $url = ''; // 访问的url
private static $oriUrl = ''; // referer url
private static $data = array(); // 可能发出的数据 post,put
private static $method; // 访问方式,默认是GET请求
public static function send($url, $method = 'get', $data = array()) {
if (!$url) exit('url can not be null');
self::$url = $url;//请求的URL
self::$method = $method;//请求方式post or get
$urlArr = parse_url($url);
self::$oriUrl = $urlArr['scheme'] .'://'. $urlArr['host'];
self::$data = $data;//参数 数组格式
if ( !in_array(
self::$method,
array('get', 'post', 'put', 'delete')
)
) {
exit('error request method type!');
}
$func = self::$method . 'Request';
return self::$func(self::$url);
}
private static function doRequest($is_post = 0) {
$ch = curl_init();//初始化curl
curl_setopt($ch, CURLOPT_URL, self::$url);//抓取指定网页
// 来源一定要设置成来自本站
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
if($is_post == 1) curl_setopt($ch, CURLOPT_POST, $is_post);//post提交方式
if (!empty(self::$data)) {
self::$data = self::dealPostData(self::$data);
curl_setopt($ch, CURLOPT_POSTFIELDS, self::$data);
}
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
$data = curl_exec($ch);//运行curl
curl_close($ch);
return $data;
}
/** * 发起get请求 */
public static function getRequest() {
return self::doRequest(0);
}
/** * 发起post请求 */
public static function postRequest() {
return self::doRequest(1);
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:PHP面试题
- 微信公众平台开发之配置与请求 2019-09-23
- 简单网页密码登陆php代码的方法 2019-08-09
- 微信支付:chooseWXPay:fail, the permission value is offl 2019-07-24
- 微信支付和微信支付通知基于sdk的说明 2019-07-24
- 微信支付H5支付开发文档 2019-07-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash