心理咨询网
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. /**
  3. * @copyright (C)2016-2099 Hnaoyun Inc.
  4. * @author XingMeng
  5. * @email hnxsh@foxmail.com
  6. * @date 2019年05月27日
  7. * 微信网页授权
  8. */
  9. namespace core\weixin;
  10. use core\basic\Config;
  11. class WxAccessToken
  12. {
  13. // 获取全局access_token
  14. public static function get()
  15. {
  16. if (! self::check()) {
  17. $appid = Config::get('weixin_appid');
  18. $secret = Config::get('weixin_secret');
  19. $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $secret;
  20. $result = json_decode(get_url($url));
  21. if (isset($result->errcode) && $result->errcode) {
  22. error('获取微信AccessToken发生错误:' . $result->errmsg . '(' . $result->errcode . ')');
  23. return false;
  24. } else {
  25. $data['weixin_access_token'] = $result->access_token;
  26. $data['weixin_expires_in'] = $result->expires_in;
  27. $data['weixin_timestamp'] = time();
  28. Config::set(sha1('weixin_access_token'), $data); // 缓存数据
  29. return $result->access_token;
  30. }
  31. } else {
  32. return Config::get('weixin_access_token');
  33. }
  34. }
  35. // 检查access_token是否可用
  36. private static function check()
  37. {
  38. Config::assign(RUN_PATH . '/config/' . sha1('weixin_access_token') . '.php');
  39. if (Config::get('weixin_access_token') && time() - Config::get('weixin_timestamp') < Config::get('weixin_expires_in')) {
  40. return true;
  41. } else {
  42. return false;
  43. }
  44. }
  45. }