tp5根据code获取微信openid;session_key;

首先配置问题;

首先配置域名和appid(使用的是谁的appid就要在微信公众平台中配置 )

 

 

这两个配置一下就行了;

 

Tp代码:

//https://ht.likeball.top/index/index/codes
public function codes()
{
    $code = input('code');//用户的登录凭证code(使用wx.login({})可获取到)这个是前端传过来
    $appid = 'wx899****'; //微信公众平台看
    $secret = 'ddb******';//微信公众平台看
    $url = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";
    $weixin = file_get_contents($url);
    $jsondecode = json_decode($weixin);
    $array = get_object_vars($jsondecode);
    echo json_encode($array);
}

 

小程序中js代码;

    wx.login({
      success:function(res){
        let code = res.code
        console.log(code)
        wx.request({
          url: 'https://ht.likeball.top/index/index/codes',
          data:{
             code : code
          },
          success: function (res) {
            console.log(res.data)
          }
        })
      }
    })

 

这样前端就可以获取到信息了;

清除缓存的情况下session_key是会发生变化的,但是openid是不会发生变化的。

### ThinkPHP5微信小程序获取用户头像和昵称的实现 在ThinkPHP5框架下,为了使微信小程序能够成功获取用户的头像和昵称信息,需遵循特定流程来处理登录逻辑以及解码来自微信服务器返回的数据。 当接收到前端发送的小程序登录凭证code时,在后端通过`httpCurl()`函数向微信接口发起请求换取session_keyopenid[^1]。此过程对于后续操作至关重要,因为这些参数用于验证并获取用户详情。 一旦获得了合法的session_key,就可以利用它去解析由客户端传来的加密数据(encryptedData),其中包含了用户公开的信息如头像URL及昵称等字段。具体来说,这涉及到调用微信提供的解密算法完成对敏感资料的安全读取。 下面是一个简化版的代码片段展示如何接收并处理从前端传递过来的相关参数: ```php public function getUserInfo() { // 假设已经完成了codesession_key的转换,并保存于变量$sessionKey中 $iv = input('post.iv'); // 初始化向量IV $data = input('post.encryptedData'); // 加密后的用户数据 try { // 使用官方提供的工具类进行AES-CBC解密 $pc = new \WXBizDataCrypt($appid, $sessionKey); $errCode = $pc->decryptData($data , $iv, $result ); if ($errCode == 0) { // 解析JSON字符串为关联数组 $userInfo = json_decode($result,true); echo "Avatar URL:".$userInfo['avatarUrl']."\n"; echo "Nickname:".$userInfo['nickName']; } else { throw new Exception("Decryption failed"); } } catch (Exception $e){ return show(0,'Error:'.$e->getMessage()); } } ``` 上述示例假设开发者已经在项目里引入了必要的依赖项并且配置好了相应的环境设置。实际应用时还需要考虑异常情况下的错误提示优化等问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值