微信静默获取用户openid(PHP)

业务需求

因为需要在用户没有关注公众号的情况下获取用户openid,又不需要用户关注,所以需要静默获取一下用户的openid。前提是你需要在微信内打开。

相关代码

以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面):

public function jump()
    {
        $appid = '你的APPID';
        $secret = '你的secret';
        $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:http://www.baidu.com');
        }
    }

    /**
     * 获取用户openid,保存名片用
     * @return [type] [description]
     */
    public function get_openid()
    {
        $state = '';
        $appid = '你的APPID';
        $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);
    }

我的理解

首先用户访问你的业务逻辑页面时候,你先跳转到get_openid方法中,获取code,获取完code微信会跳转到你传的redirect_rui,当跳转到jump方法后,再用接收的code去获取用户的openid,然后就是通过你获取的openid去操作一些业务逻辑,处理完之后再跳转到你的业务页面。(微信官方文档


uni微信h5静默授权是指在用户进入uni微信H5页面时,通过微信授权接口获取用户openid,并且不弹出授权页面让用户手动授权的一种授权方式。 实现uni微信H5静默授权获取openid的步骤如下: 1. 首先,在uni-app中引入微信JSSDK,通过在index.html中引入微信JS SDK库文件,或者通过npm安装并在main.js中引入微信JSSDK。 2. 在uni微信H5页面中编写获取openid的逻辑。可以在页面加载完成后,通过微信JSSDK提供的接口wx.config进行微信JS SDK的配置。在配置完成后,可以通过调用wx.ready函数,在ready回调函数中进行获取openid的操作。 3. 使用uni.request或uni.get请求后端接口,将微信提供的code发送至后端。 4. 后端接口需要通过微信的网页授权接口,调用接口获取access_token和openid。接口调用成功后,可以把openid返回给前端。 5. 前端接收到openid后,可以进行后续的业务逻辑处理,例如用户登录、数据统计等。 需要注意的是,uni微信H5静默授权获取openid需要满足一定的条件,包括要求用户微信客户端中已经授权过且未取消授权,页面的域名需要与微信公众平台的配置一致等。 总结起来,通过微信JSSDK的配置和调用微信的网页授权接口,可以实现uni微信H5静默授权获取openid的功能。这使得开发者能够更加便捷地获取用户openid,并基于openid实现个性化的功能和服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值