【微信小程序】通过js_code获取session_key,openid

<?php
namespace app\miniapp\controller;

use think\App;
use think\Controller;

const REQUEST_IS_NO_POST = ['errMsg' => ['info' => 'REQUEST_IS_NO_POST']];
const REQUEST_IS_NO_CODE = ['errMsg' => ['info' => 'REQUEST_IS_NO_CODE']];
const APPID= 'wxa87da27f03d47b89';
const SECRET = 'a17449d4cce8efb35506cf8a1d44da99';
const GRANTTYPE = 'authorization_code';

class User extends Controller
{
    private $js_code; //登陆许可凭证
    private $openid;  //唯一标识
    private $session_key;  //会话密钥

//    用户登陆
    public function login()
    {
        if(request()->isPost())
        {
            $this->js_code = input('post.code');
            if($this->js_code != '')
            {
                $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.APPID.'&secret='.SECRET.'&js_code='.$this->js_code.'&grant_type='.GRANTTYPE;
                $html = file_get_contents($url);
                $obj = json_decode($html);
                if(isset($obj->errcode)){
                    // 获取用户信息失败
                    return json($obj);
                }else{
                    // 获取用户信息成功
                    $this->openid = $obj->openid;
                    $this->session_key = $obj->session_key;
                    return json($obj);
                }
            }else
            {
                return json(REQUEST_IS_NO_CODE);
            }
        }
        return json(REQUEST_IS_NO_POST);
    }
}

推荐阅读更多精彩内容

  • 自从学习英语以来,我一直被单词深深困惑着,因为自己背单词的能力和方法真的不行。 大学那会儿,一方面没有勤奋的同学们...
    宫崎虫师阅读 2,023评论 25 77
  • 别了 那些未曾谋面的爱人 我擦掉了浓妆 甩掉了高跟鞋 收起了妩媚的大卷 在那个倾盆大雨的午后 素面朝天 只为遇见那...
    暗殇紫凝雨阅读 36评论 0 0
  • 姑娘,我开始厌恶语言长的 短的 有声的 无声的 句子在这忽冷忽热的十一月晨霜打结了老旧的蛛网我开始爱上恒温的沉默 ...
    故事树阅读 27评论 0 1
  • 你我的话更少了 天更冷 雨更多 我被世人唾弃 头里的魔鬼又开始吞噬我的骨头 脖子也开始生锈 鼻子嗡嗡作响 我的感...
    眠山阅读 51评论 0 0