摘要:微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息在此之前,想要获取消息信息只能在用户和公众号交互时根据获取用户信息而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息微信网页授权时通过完成的,整
微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信息;而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息
微信网页授权时通过OAuth2.0完成的,整个过程分为三步:
用户授权,获取code;
根据code获取access_token【可通过refresh_token刷新获取较长有效期】
通过access_token和openid获取用户信息
对微信网页授权过程做了简单封装:
/**
微信授权相关接口*/
class Wechat {
//高级功能-》开发者模式-》获取
private $app_id = "xxx";
private $app_secret = "xxxxxxx";
/**
获取微信授权链接
@param string $redirect_uri 跳转地址
@param mixed $state 参数*/
public function get_authorize_url($redirect_uri = "", $state = "") {
$redirect_uri = urlencode($redirect_uri);
return "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->app_id}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_userinfo&state={$state}#wechat_redirect";
}
/**
获取授权token
@param string $code 通过get_authorize_url获取到的code*/
public function get_access_token($app_id = "", $app_secret = "", $code = "") {
$token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$this->app_id}&secret={$this->app_secret}&code={$code}&grant_type=authorization_code";
$token_data = $this->http($token_url);
if($token_data[0] == 200)
{
return json_decode($token_data[1], TRUE);
}
return FALSE;
}
/**
获取授权后的微信用户信息
@param string $access_token
@param string $open_id*/
public function get_user_info($access_token = "", $open_id = "") {
if($access_token && $open_id)
{
$info_url = "https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$open_id}&lang=zh_CN";
$info_data = $this->http($info_url);
if($info_data[0] == 200)
{
return json_decode($info_data[1], TRUE);
}
}
return FALSE;
}
public function http($url, $method, $postfields = null, $headers = array(), $debug = false) {
$ci = curl_init();
/ Curl settings /
curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ci, CURLOPT_TIMEOUT, 30);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
switch ($method) {
case "POST":
curl_setopt($ci, CURLOPT_POST, true); if (!empty($postfields)) { curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields); $this->postdata = $postfields; } break;
}
curl_setopt($ci, CURLOPT_URL, $url);
curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ci, CURLINFO_HEADER_OUT, true);
$response = curl_exec($ci);
$http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
if ($debug) {
echo "=====post data======rn";
var_dump($postfields);
echo "=====info=====" . "rn";
print_r(curl_getinfo($ci));
echo "=====$response=====" . "rn";
print_r($response);
}
curl_close($ci);
return array($http_code, $response);
}
}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/22831.html
摘要:自制,即插即用微信网页授权模块,修改配置文件即可使用,开发测试版本仓库欢迎交流和关注。因为它需要在文件中缓存和。 自制,即插即用微信网页授权模块,修改配置文件即可使用,开发测试版本CodeIgniter 3.0.6 Github仓库: CodeIgniter-Weixin_Library欢迎交流和关注。 README.md CodeIgniter-Weixin_Library 即插即...
摘要:微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息在此之前,想要获取消息信息只能在用户和公众号交互时根据获取用户信息而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息微信网页授权时通过完成的,整 微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取...
摘要:本文是浅析微信支付系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处。浅析微信支付前篇大纲微信支付是集成在微信客户端的支付功能,用户可以通过手机完成快速的支付流程。目前微信支付支持手机系统有苹果安卓和。 本文是【浅析微信支付】系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处。 上篇文章讲了本系列的大纲,没有看过的朋友们可以看一下。 浅析微信支...
摘要:开发微信支付需要认证服务号并且已经开通微信支付,获得微信支付商,设置了的。我看到了一个作者写的源码,还不错,我简单进行优化了,只有多行代码就可以实现公众号支付。要注意,订单标题不能为中文,否则会提示参数错误什么的。 开发微信支付需要认证服务号并且已经开通微信支付,获得微信支付商ID,设置apikey了的。 官方给了公众号支付的php源码SDK但是这个SDK文件非常多,源码乱七八糟的,真...
摘要:自建网站对接微信公众号微信公众号技术平常我们有些写各种网站个人博客系统物流管理系统通信录管理系统校园二手网站我们都知道只需要租用一个服务器再配置一个备案好的域名就可以在浏览器上进行访问了不知大家不知大家有没有想过将你搭的网站对接微信公众 title: 自建网站对接微信公众号date: 2018-04-12 15:25tags: 微信公众号, PHP codeigniter cat...
阅读 1881·2021-11-25 09:43
阅读 3175·2021-11-15 11:38
阅读 2715·2019-08-30 13:04
阅读 492·2019-08-29 11:07
阅读 1506·2019-08-26 18:37
阅读 2740·2019-08-26 14:07
阅读 592·2019-08-26 13:52
阅读 2287·2019-08-26 12:09