wxapp.work.class.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. defined('IN_IA') or exit('Access Denied');
  7. load()->classs('account/wxapp.account');
  8. class WxappWork extends WxappAccount {
  9. public function getAccessToken() {
  10. $cachekey = "accesstoken:{$this->account['key']}";
  11. $cache = cache_load($cachekey);
  12. if (!empty($cache) && !empty($cache['token'])) {
  13. $this->account['access_token'] = $cache;
  14. return $cache['token'];
  15. }
  16. if (empty($this->account['key']) || empty($this->account['secret'])) {
  17. return error('-1', '未填写小程序的 appid 或 appsecret!');
  18. }
  19. $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={$this->account['key']}&corpsecret={$this->account['secret']}";
  20. $response = $this->requestApi($url);
  21. if (is_error($response)) {
  22. return $response;
  23. }
  24. $record = array(
  25. 'token' => $response['access_token'],
  26. );
  27. $record_expire = intval($response['expires_in']) - 200;
  28. $this->account['access_token'] = $record;
  29. cache_write($cachekey, $record, $record_expire);
  30. return $record['token'];
  31. }
  32. public function getOauthInfo($code = '') {
  33. global $_W, $_GPC;
  34. if (!empty($_GPC['code'])) {
  35. $code = $_GPC['code'];
  36. }
  37. $token = $this->getAccessToken();
  38. $url = "https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token={$token}&js_code={$code}&grant_type=authorization_code";
  39. $response = $this->requestApi($url);
  40. if (is_error($response)) {
  41. return $response;
  42. }
  43. $response['openid'] = $response['userid'];
  44. return $response;
  45. }
  46. }