AccessToken.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Titan 名字就是密码
  5. * Date: 2019/12/12
  6. * Time: 12:18
  7. */
  8. namespace app\index\controller;
  9. use think\Controller;
  10. use think\Request;
  11. class AccessToken extends Controller
  12. {
  13. public $appId = "wx3636f10fcd0790ff";
  14. public $appSecret = "550375e8a99321ab8be36c2978bc9dea";
  15. public function getAccessToken()
  16. {
  17. $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appId}&secret={$this->appSecret}";
  18. $token = cache("token");
  19. if(!$token){
  20. $data = $this->curl_get($url);
  21. $token = $data->access_token;
  22. cache("token",$token,7000);
  23. return $token;
  24. }else{
  25. return $token;
  26. }
  27. }
  28. public function getOpenid($code)
  29. {
  30. $url = "https://api.weixin.qq.com/sns/jscode2session?appid=$this->appId&secret=$this->appSecret&js_code=$code&grant_type=authorization_code";
  31. $result = $this->curl_get($url);
  32. return $result->openid;
  33. }
  34. public function curl_get($url)
  35. {
  36. $ch = curl_init();//初始化curl
  37. curl_setopt($ch, CURLOPT_URL,$url); //要访问的地址
  38. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  39. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//跳过证书验证
  40. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
  41. $data = json_decode(curl_exec($ch));
  42. if(curl_errno($ch)){
  43. var_dump(curl_error($ch)); //若错误打印错误信息
  44. }
  45. curl_close($ch);//关闭curl
  46. return $data;
  47. }
  48. }