Example #1
0
 /**
  * @descrpition 获取微信ACCESS_TOKEN
  * @return Ambigous|bool
  */
 public static function getAccessToken()
 {
     $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . WECHAT_APPID . '&secret=' . WECHAT_APPSECRET;
     $accessToken = CurlBusiness::callWebServer($url, '', 'GET');
     if (!isset($accessToken['access_token'])) {
         return MsgCommon::returnErrMsg(MsgConstant::ERROR_GET_ACCESS_TOKEN, '获取ACCESS_TOKEN失败');
     }
     $accessToken['time'] = time();
     //存入SESSION
     Response::setSession('wechat_access_token', $accessToken);
     return $accessToken;
 }
 /**
  * Description: 通过code换取网页授权access_token
  * 首先请注意,这里通过code换取的网页授权access_token,与基础支持中的access_token不同。
  * 公众号可通过下述接口来获取网页授权access_token。
  * 如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。
  * @param $code getCode()获取的code参数
  */
 public static function getAccessTokenAndOpenId($code)
 {
     //公众号的唯一标识
     $appid = WECHAT_APPID;
     //公众号的appsecret
     $secret = WECHAT_APPSECRET;
     //填写为authorization_code
     $grant_type = 'authorization_code';
     //构造请求微信接口的URL
     $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $secret . '&code=' . $code . '&grant_type=' . $grant_type . '';
     //请求微信接口, Array(access_token, expires_in, refresh_token, openid, scope)
     return CurlBusiness::callWebServer($url);
 }
 /**
  * @descrpition 从微信服务器获取微信ACCESS_TOKEN
  * @return Ambigous|bool
  */
 private function _getAccessToken()
 {
     $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . WECHAT_APPID . '&secret=' . WECHAT_APPSECRET;
     $accessToken = CurlBusiness::callWebServer($url, '', 'GET');
     if (!isset($accessToken['access_token'])) {
         return Msg::returnErrMsg(MsgConstant::ERROR_GET_ACCESS_TOKEN, '获取ACCESS_TOKEN失败');
     }
     $accessToken['time'] = time();
     $accessTokenJson = json_encode($accessToken);
     //存入数据库
     /**
      * 这里通常我会把access_token存起来,然后用的时候读取,判断是否过期,如果过期就重新调用此方法获取,存取操作请自行完成
      *
      * 请将变量$accessTokenJson给存起来,这个变量是一个字符串
      */
     return $accessToken;
 }
 /**
  * @descrpition 图文 - 先调用self::newsItem()再调用本方法
  * @param $tousername
  * @param $item 数组,每个项由self::newsItem()返回
  * @return string
  */
 public static function news($tousername, $item)
 {
     //获取ACCESS_TOKEN
     $accessToken = AccessToken::getAccessToken();
     self::$queryUrl = self::$queryUrl . $accessToken;
     //开始
     $template = array('touser' => $tousername, 'msgtype' => 'news', 'news' => array('articles' => $item));
     $template = json_encode($template);
     return CurlBusiness::callWebServer(self::$queryUrl, $template, self::$action);
 }