PHP实现微信公众号授权获取用户信息

class WxAuthModel extends BaseModel
{
    var $appId = APPID;
    var $appSecret = APPSECRET;


    /*微信x小程序,获取微信openid
     *前端的回调url:填写成你的请求地址,然后微信会自己在这个回调url后加一个code,获取通过url传过来的code来换取access_token
    */
    public function get_access_token($code){
        $token_url = "https://api.weixin.qq.com/sns/jscode2session?appid=".$this->appId."&secret=".$this->appSecret."&js_code=".$code."&grant_type=authorization_code";
        $token_info = $this->http_request($token_url);
        return json_decode($token_info, true);
    }


    //HTTP请求(支持HTTP/HTTPS,支持GET/POST)
    private function http_request($url, $data = null)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, TRUE);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        $output = curl_exec($curl);
        curl_close($curl);
        file_put_contents('/tmp/heka_weixin.' . date("Ymd") . '.log', date('Y-m-d H:i:s') . "\t" . $output . "\n", FILE_APPEND); //记录微信请求日志
        return $output;
    }


}

posted @   米饭!大米饭  阅读(3118)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2017-09-21 PHP不使用第三个变量,如何实现两个变量值互换(变量值自定)
2017-09-21 数学中求余数问题
点击右上角即可分享
微信分享提示