帝国论坛帝国网站管理系统交流区模板/标签/插件共享交流[求助]简单的获取公众号openid的方法,100元可以吗 【本版专题贴子】  
主题:[求助]简单的获取公众号openid的方法,100元可以吗 [加入收藏夹]   

nydalu
用户头衔:进士

精华贴   :0
发贴数   :839
经验值   :4065
注册时间:2008-07-08
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[求助]简单的获取公众号openid的方法,100元可以吗
我想让用户打开帝国CMS动态信息页面时静默获取微信用户的OPENID,我的想法是在信息页模板的顶端加上PHP代码,这段代码用来获取OPENID,并且仍然显示当前页面。但是不会弄。在网上找到了这个,测试好像不行,请求修改,或者是写个更简洁的方式来获取呢。

public function jump()
    {
        $appid = 'wx830638e91b';
        $secret = 'c73d92a82e42';
        $code = $_GET['code'];//获取code
        $state = $_GET['state']; //获取参数
        $weixin =  file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code");//通过code换取网页授权access_token
        $jsondecode = json_decode($weixin); //对JSON格式的字符串进行编码
        $array = get_object_vars($jsondecode);//转换成数组
        $openid = $array['openid'];//输出openid

        if ($openid) {
            //你的业务逻辑跳转
            header('Location:/e/action/ShowInfo.php?classid=1&id=1001');
        }
    }
    public function get_openid()
    {
        $state = '';
        $appid = 'wx833ee0350638e91b';
        $redirect_uri = urlencode('url');//对url处理,此url为访问上面jump方法的url
        $url = "https://open.weixin.qq.com/connect/oauth2/authorize?
    appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=$state#wechat_redirect";
        header('Location:' . $url);
    }


===============

看起来这一段也比较简洁,但作者是用在小程序上的,不知道网页端怎么样?

getOpenid();
function getOpenid() {
    $code = $_GET['code'];//小程序传来的code值
    $appid = 'wx4b55bb240aec2ee3';//小程序的appid
    $appSecret = '1f6f68884c1add6293cfa9b86e1f6bfd';// 小程序的$appSecret
    $wxUrl = 'https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code';
    $getUrl = sprintf($wxUrl, $appid, $appSecret, $code);//把appid,appsecret,code拼接到url里
    $result = curl_get($getUrl);//请求拼接好的url
    $wxResult = json_decode($result, true);
    if (empty($wxResult)) {
        echo '获取openid时异常,微信内部错误';
    } else {
        $loginFail = array_key_exists('errcode', $wxResult);
        if ($loginFail) {//请求失败
            var_dump($wxResult);
        } else {//请求成功
            $openid = $wxResult['openid'];
            echo "获取openid成功成功:" . $openid;
        }
    }
}

[该贴被修改 2 次,最后修改时间 2023-05-05 22:08:50 ]


我爱帝国 感谢王猛
2023-05-05 19:27:49 已设置保密 顶部 回复 引用 报告 编辑 删除

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :851
经验值   :3279
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

加我,我给你处理!微信登陆和微信支持多做很多了



要上就上安心站长 www.axzz.cn q:365182575
2023-05-06 09:35:44 已设置保密 顶部 回复 引用 报告 编辑 删除

shuangrong168
用户头衔:进士

精华贴   :1
发贴数   :1287
经验值   :4931
注册时间:2009-02-25
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

先根据appid和密钥获取code,然后根据code再获取openid



[建站][仿站] [域名][空间] QQ:287785998
2023-05-19 08:47:51 已设置保密 顶部 回复 引用 报告 编辑 删除

luoto
用户头衔:探花

精华贴   :0
发贴数   :5772
经验值   :17400
注册时间:2008-11-08
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

帮顶




2023-05-28 07:23:53 已设置保密 顶部 回复 引用 报告 编辑 删除

chqqweb
用户头衔:秀才

精华贴   :0
发贴数   :14
经验值   :433
注册时间:2009-12-27
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

<?php
// 你的 AppID 和 AppSecret
$appId = 'your_app_id';
$appSecret = 'your_app_secret';

// 获取 code
if (!isset($_GET['code'])) {
    // 生成授权 URL
    $redirectUri = urlencode('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
    $authUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appId}&redirect_uri={$redirectUri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
   
    // 跳转到授权页面
    header('Location: ' . $authUrl);
    exit;
}

$code = $_GET['code'];

// 使用 code 获取 access_token 和 openid
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appId}&secret={$appSecret}&code={$code}&grant_type=authorization_code";
$response = file_get_contents($url);
$result = json_decode($response, true);

if (isset($result['openid'])) {
    $openId = $result['openid'];
    echo "用户的 OpenID 是:{$openId}";
} else {
    echo "获取 OpenID 失败";
}
?>



https://www.botou.net
2023-05-29 08:07:35 已设置保密 顶部 回复 引用 报告 编辑 删除

worldcms
用户头衔:进士

精华贴   :0
发贴数   :828
经验值   :3573
注册时间:2017-05-12
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]





2023-05-29 09:51:36 已设置保密 顶部 回复 引用 报告 编辑 删除

点到为止
用户头衔:探花

精华贴   :0
发贴数   :6537
经验值   :20508
注册时间:2008-01-07
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

帮顶




2023-07-22 06:14:23 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1