2020 微信开发、微信支付之获取openID(PHP版本)

获取openID 步骤:

第一步 请求微信服务器获取code

第二步 代上code 去请求微信服务器获取openID

  • 注意:具体秘钥需要自己填写真实的秘钥,在微信中打开测试!

index.php 文件代码

<?php

session_start();

include './Base.php';

class WeiXinPay extends Base
{
    /*
     * 获取用户openID 当前登录微信用户的openID
     *
     */
    public function __construct()
    {

    }
}

$obi = new WeiXinPay();
$obi->getOpenId();
 

base.php 文件代码

<?php
header("Content-type: text/html; charset=utf-8");
/**
 * Created by PhpStorm.
 * User: lsh
 * Date: 2099/3/25
 * Time: 16:08
 */

class Base
{
    //商户id
    const KEY ='kkkkksdio87923';

    //获取code 的微信服务器地址
    const CODEURL = "https://open.weixin.qq.com/connect/oauth2/authorize?";
    //你自己的APPID
    const APPID = 'ssdfqwxx';

    //获取openid 的微信服务器地址
    const OPENIDURL = 'https://api.weixin.qq.com/sns/oauth2/access_token?';

    //开发者秘钥
    const SECRET = 'b8sdjfi28379923834';

    //支付秘钥


     //获取openid
    public function getOpenId()
    {
        //如果已经获取到用户的openId就存储在session中
        if(isset($_SESSION['openid']))
        {
            return $_SESSION['openid'];
        }
        else
        {
            //1.用户访问微信服务器地址 先获取到微信get方式传递过来的code
            //2.根据code获取到openID
            if(! isset($_GET['code']))
            {
                //没有获取到微信返回来的code ,让用户再次访问微信服务器地址

                //redirect_uri 解释
                //跳转地址:你发起请求微信服务器获取code ,
                //微信服务器返回来给你的code的接收地址(通常就是发起支付的页面地址)

                //组装跳转地址
                $redirect_uri = self::CODEURL .'appid='.self::APPID.'&redirect_uri='.$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'&response_type=code&scope='.self::SCOPE.'&state=STATE#wechat_redirect';

//                echo $redirect_uri;

                //跳转 让用过去获取code
                header("location:{$redirect_uri}");
            }
            else
            {
                //调用接口获取openId
                $openidurl = self::OPENIDURL.'appid='.self::APPID.'&secret='.self::SECRET.'&code='.$_GET['code'].'&grant_type=authorization_code';

                //请求获取用户的openID
                $data = file_get_contents($openidurl);
                $arr = json_decode($data,true);
                //获取到的openid保存到session 中
                $_SESSION['openid'] = $arr['openid'];

                return $_SESSION;
            }
        }

    }
    
}
 
发布了33 篇原创文章 · 获赞 12 · 访问量 3347

猜你喜欢

转载自blog.csdn.net/IT_BULL/article/details/104176176