微信公众号获取用户openid(PHP版,snsapi_base模式)

微信公众号获取用户openid的接口有2个:snsapi_base、snsapi_userinfo

详情见微信公众号开发文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

本文介绍用PHP方式调用snsapi_base接口获取微信用户的openid(注意:此接口只能获取到用户的openid,如果要获取用户的昵称、头像的信息需要用snsapi_userinfo接口)

操作步骤:

第一步:先让用户关注你的微信公众号(解释:不关注公众号获得openid也没啥用)

第二步:让用户访问snsapi_base接口网址

(1)用户访问接口的方式1:发接口网址给用户,让用户在微信客户端打开网址;(此方法不方便)

(2)用户访问接口的方式2:让用户打开微信扫一扫,扫描二维码直接跳转网址打开;(可以用第三方类库QrCode将url转成二维码图片,此方法方便)

接口网址:

​https://open.weixin.qq.com/connect/oauth2/authorize?appid=填你的APPID&redirect_uri=填你的回调网址&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect

回调网址要将url编码后再填进去。

不会url编码怎么办?

可以用在线url网址编解码工具,比如:https://www.bejson.com/enc/urlencode/

微信开发文档中说到:

跳转回调redirect_uri,应当使用https链接来确保授权code的安全性。

但是在实际应用中,用http协议的网址也是可以正常回调的!


当用户访问接口链接后,微信会在你的回调网址后面添加上参数:
redirect_uri/?code=CODE&state=STATE

参数中的CODE是获取openid的关键!

第三步:在回调网址中获取微信用户的openid

假设回调文件名为 get_wx_openid.php

那么在此文件中,编写如下代码即可获取到openid:

<?php
    $wxCode = $_GET['code'];	
    if($wxCode != null)
    {
        try
        {
            $getOpenIdUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=填你的APPID&secret=填你的APPSecret密钥&code=" . $wxCode . "&grant_type=authorization_code";
            $json = file_get_contents($getOpenIdUrl);
            $jsonObj = json_decode($json);
            $openId = $jsonObj->openid; 
        }
        catch(Exception $err)
        {
        } 
    }
?>

上述代码中,利用code去微信access_token接口获取openid信息,获取到的json内容如下:

只要提取json中的openid字段即可!

获取到openid之后,就可以给用户发送模板消息了!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清缓

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值