`
erdangjiade66
  • 浏览: 10601 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

几行php代码实现微信自动注册登陆 (微信PC扫码授权登陆注册)

PHP 
阅读更多

最近做的一个商城项目中,要用到发货和收货人地址的功能,上面要求要用微信PC扫码授权登陆;自己试着用研究了好久写了一个,但是发现有好多兼容问题,具体实现步骤如下.微信PC扫码授权登陆 php简单示例代码
首先须要申请,必须企业,个体工商户,媒体等
申请地址 https://open.weixin.qq.com/
演示参考下这个:http://t.cn/ROuy90K
1、首先到微信开放平台申请https://open.weixin.qq.com/ 获取到appid和APPSECRET,前台显示页面如下

 

前台完整代码如下:

<!DOCTYPE html> 
<html> 
    <head> 
        <meta http-equiv="content-type" content="text/html;charset=utf-8"> 
    </head> 
    <body> 
        <span id="login_container"></span> 
        <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script> 
        <script> 
            var obj = new WxLogin({ 
              id: "login_container", 
              appid: "wxed782be999f86e0e", 
              scope: "snsapi_login", 
              redirect_uri: encodeURIComponent("http://" + window.location.host + "/login.php"), 
              state: Math.ceil(Math.random()*1000), 
              style: "black", 
              href: ""}); 
        </script> 
    </body> 
</html>

 

2、服务器端完整代码如下:

 

/* 
    require_once('weixin.class.php'); 
    $weixin = new class_weixin(); 
*/ 
 
define('APPID',        "wx19ba77624e083e08"); 
define('APPSECRET',    "c1a56a5c4247dd44c320c9719c5ceb90"); 
 
class class_weixin 
{ 
    var $appid = APPID; 
    var $appsecret = APPSECRET; 
 
    //构造函数,获取Access Token 
    public function __construct($appid = NULL, $appsecret = NULL) 
    { 
        if($appid && $appsecret){ 
            $this->appid = $appid; 
            $this->appsecret = $appsecret; 
        } 
 
        //扫码登录不需要该Access Token, 语义理解需要 
        //1. 本地写入  
        $res = file_get_contents('access_token.json'); 
        $result = json_decode($res, true); 
        $this->expires_time = $result["expires_time"]; 
        $this->access_token = $result["access_token"]; 
 
        if (time() > ($this->expires_time + 3600)){ 
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->appsecret; 
            $res = $this->http_request($url); 
            $result = json_decode($res, true); 
            $this->access_token = $result["access_token"]; 
            $this->expires_time = time(); 
            file_put_contents('access_token.json', '{"access_token": "'.$this->access_token.'", "expires_time": '.$this->expires_time.'}'); 
        } 
    } 
 
    /* 
    *  PART1 网站应用 
    */ 
 
    /* 
    header("Content-type: text/html; charset=utf-8"); 
    require_once('wxopen.class.php'); 
    $weixin = new class_weixin(); 
    if (!isset($_GET["code"])){ 
        $redirect_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
        $jumpurl = $weixin->qrconnect($redirect_url, "snsapi_login", "123"); 
        Header("Location: $jumpurl"); 
    }else{ 
        $oauth2_info = $weixin->oauth2_access_token($_GET["code"]); 
        $userinfo = $weixin->oauth2_get_user_info($oauth2_info['access_token'], $oauth2_info['openid']); 
        var_dump($userinfo); 
    } 
    */ 
    //生成扫码登录的URL 
    public function qrconnect($redirect_url, $scope, $state = NULL) 
    { 
        $url = "https://open.weixin.qq.com/connect/qrconnect?appid=".$this->appid."&redirect_uri=".urlencode($redirect_url)."&response_type=code&scope=".$scope."&state=".$state."#wechat_redirect"; 
        return $url; 
    } 
 
    //生成OAuth2的Access Token 
    public function oauth2_access_token($code) 
    { 
        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$this->appid."&secret=".$this->appsecret."&code=".$code."&grant_type=authorization_code"; 
        $res = $this->http_request($url); 
        return json_decode($res, true); 
    } 
 
    //获取用户基本信息(OAuth2 授权的 Access Token 获取 未关注用户,Access Token为临时获取) 
    public function oauth2_get_user_info($access_token, $openid) 
    { 
        $url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN"; 
        $res = $this->http_request($url); 
        return json_decode($res, true); 
    }

 

 

 

 

 

 

  • 大小: 100.6 KB
分享到:
评论

相关推荐

    PHP微信开放平台扫码登录源码

    2. **注册应用**:在使用PHP实现微信扫码登录前,你需要在微信开放平台注册一个应用,并获取到AppID和AppSecret。这些是你的应用与微信服务器进行通信的关键身份标识。 3. **获取授权链接**:用户在你的网站上点击...

    PHP原生代码实现微信扫码关注公众号并同时登录.zip

    PHP原生代码实现微信扫码关注公众号并同时登录,适用于PC段进行扫描登陆。 大家可以下载使用。PHP原生代码实现微信扫码关注公众号并同时登录,适用于PC段进行扫描登陆。 大家可以下载使用。

    PHP实现微信扫码关注公众号并授权登录的源代码

    PHP微信扫码关注公众号并授权登录源码 PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间。 PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像、openid和省市等信息源码。 第...

    Python版实现微信公众号扫码登陆

    主要介绍了Python版实现微信公众号扫码登陆,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    【ASP.NET编程知识】.NET微信开发之PC 端微信扫码注册和登录功能实现.docx

    【ASP.NET编程知识】.NET微信开发之PC 端微信扫码注册和登录功能实现.docx

    微信扫码登录资料_Go-Pay_GoPayuser_微信扫码登录资料_微信登录_

    在Java环境下实现微信扫码登录,我们需要以下几个步骤: 1. **注册应用**:首先,你需要在微信开放平台注册一个应用,并获取到AppID和AppSecret,这是后续所有操作的基础。 2. **生成二维码**:在用户请求登录时,...

    PHP原生代码实现微信扫码关注公众号并同时登录

    PHP微信扫码登录看起来简单,但做起来有点复杂,微信接口的坑有点多,稍不注意,就费很多时间。PHP判断是否首次关注公众号,获取微信用户头像、openid和省市等信息

    ASP网页调用微信扫码登录方法

    这个教程将专注于介绍如何在ASP(Active Server Pages)网页中实现微信扫码登录的功能,这对于提升用户体验和增强用户粘性有着显著作用。以下是实现这一功能的关键知识点: 1. **微信开放平台**: 微信开放平台...

    Python-flask-微信网页授权实现扫码登录.zip

    通过以上知识点的掌握和实际操作,你可以构建一个能够实现微信扫码登录的Flask应用。在开发过程中,理解OAuth2.0授权机制和微信API的使用至关重要,同时,Flask框架的灵活性和易用性使得这个任务变得相对简单。不断...

    springboot实现web端微信扫码登录项目(基于微信开放平台)

    3. **OAuth 2.0协议**:微信扫码登录是基于OAuth 2.0协议的。OAuth 2.0是一种授权框架,允许第三方应用在用户授权的情况下访问其存储在另一服务提供商上的特定资源。 4. **微信SDK(Software Development Kit)**:...

    Python-weixinlogin微信网页授权实现扫码登录

    本文将深入探讨如何使用Python来实现微信网页授权的扫码登录功能。这个过程涉及到的主要知识点包括OAuth2.0授权框架、微信开放平台API以及Python的请求库。 微信网页授权是微信提供的一种服务,允许第三方网站通过...

    C#语言实现网页微信扫码登录.zip

    在本文中,我们将深入探讨如何使用C#语言实现网页微信扫码登录的功能。微信扫码登录是一种安全、便捷的用户身份验证方式,它允许用户通过微信应用扫描二维码来授权登录网站,而无需输入用户名和密码。这一过程涉及到...

    微信授权登录源码 微信公众号关注授权登录源码 扫码关注微信公众号授权登录源码

    PHP微信扫码关注公众号并授权登录源码 PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间。 PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像、openid和省市等信息源码。 第一...

    第三方实现微信登录(微信授权登录和微信网页扫码登录)

    1. **生成二维码**:在网页端,当用户选择微信扫码登录时,应用需要向微信API请求一个带有时效性的二维码链接。这个链接会包含AppID、随机字符串和回调URL。 2. **扫描验证**:用户通过微信客户端扫描二维码,微信...

    asp微信公众号授权登陆程序源码

    【程序老媛出品,必属精品,亲测校正,质量保证】 资源名:asp微信公众号授权登陆...源码说明: 基于asp编写的微信公众号授权登陆程序 包含完整的代码和注释 非常适合借鉴学习 适合人群:新手及有一定经验的开发人员

    易语言微信扫码登录器

    《易语言微信扫码登录器》是一款使用易语言编程开发的工具,主要功能是帮助用户通过扫码的方式便捷地登录微信。易语言,作为一款中文编程语言,以其简洁的语法和易于理解的特点,使得初学者也能快速上手编程。这款...

    基于Winfrom的企业微信扫码登录案例

    而在这个“基于Winfrom的企业微信扫码登录案例”中,我们将探讨如何利用C#编程语言集成企业微信的扫码登录功能,为用户提供安全、便捷的身份验证方式。 首先,企业微信扫码登录的核心在于调用其提供的API接口。企业...

    易语言版本-微信扫码登录

    易语言 微信 扫码 登录 源码

    PHP微信扫码关注公众号并授权登录.zip

    PHP微信扫码关注公众号并授权登录,网站使用公众号授权登录,上传资料中已经数据库和代码全部生成,未删减

    PHP扫码关注微信公众号

    PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注...

Global site tag (gtag.js) - Google Analytics