Пример #1
0
 /**
  * 调用微信接口,重新获取access_token
  * @return  string
  */
 private function _getNewAccessToken()
 {
     // 获取新的access_token
     $apiUrl = sprintf($this->_apiUrl, APP_ID, APP_SECRET);
     $newAccessToken = Curl::doCurl($apiUrl);
     // 判断是否获取成功
     if (!$newAccessToken['errcode'] && !empty($newAccessToken['access_token'])) {
         // 将新获取的access_token更新到数据库
         $c_time = time() - 200;
         // 将获取到的时间提前一点
         $mysql = new SaeMysql();
         $sql = "SELECT `c_time`, `t_value` FROM `weixin_access_token`";
         $data = $mysql->getData($sql);
         //$data = DbPDO::table('weixin_access_token')->find();
         if (!$data) {
             // 首次插入
             //DbPDO::table('weixin_access_token')->where(array('id'=>1))->add(array('c_time' => $c_time, 't_value' => $newAccessToken['access_token']));
             $sql = "INSERT INTO `weixin_access_token` (`c_time`, `t_value`) VALUES ({$c_time}, " . $newAccessToken['access_token'] . ")";
         } else {
             // 修改
             //DbPDO::table('weixin_access_token')->where(array('id'=>1))->save(array('c_time' => $c_time, 't_value' => $newAccessToken['access_token']));
             $sql = "UPDATE `weixin_access_token` SET `c_time` = {$c_time} , `t_value` = " . $newAccessToken['access_token'] . " WHERE id = 1";
         }
         $mysql->runSql($sql);
         $mysql->closeDb();
     } else {
         throw new Exception($newAccessToken['errcode'] . '-' . $newAccessToken['errmsg']);
     }
     return $newAccessToken['access_token'];
 }
Пример #2
0
 /**
  * 获取自定义菜单配置接口
  * URL https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=ACCESS_TOKEN
  */
 public function config()
 {
     $queryApiUrl = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=" . $this->_accessToken;
     $result = Curl::doCurl($queryApiUrl);
     return $result;
 }
Пример #3
0
 /**
  * 注意本接口是删除一个用户分组,删除分组后,所有该分组内的用户自动进入默认分组。 接口调用请求说明
  * http请求方式: POST(请使用https协议)
  * https://api.weixin.qq.com/cgi-bin/groups/delete?access_token=ACCESS_TOKEN
  * POST数据格式:json
  * POST数据例子:{"group":{"id":108}}
  **/
 public function delete($data)
 {
     $url = 'https://api.weixin.qq.com/cgi-bin/groups/delete?access_token=' . $this->_accessToken;
     $result = Curl::doCurl($url, $data);
     return $result;
 }
Пример #4
0
 public function location_geocoder($latitude, $longitude)
 {
     $url = "http://api.map.baidu.com/geocoder/v2/?ak=B944e1fce373e33ea4627f95f54f2ef9&location=" . $latitude . "," . $longitude . "&coordtype=gcj02ll&output=json";
     $result = Curl::doCurl($url);
     return $result["result"]["addressComponent"];
 }
Пример #5
0
 /**
  * 二维码请求说明
  * http请求方式: POST
  * URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
  * POST数据格式:json
  * 
  * 临时二维码参数格式
  * POST数据例子:{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
  * 
  * 永久二维码参数格式
  * POST数据例子:{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}
  * 或者也可以使用以下POST数据创建字符串形式的二维码参数:
  * {"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "123"}}}
  * 
  * 参数说明
  * expire_seconds	该二维码有效时间,以秒为单位。 最大不超过1800。
  * action_name	二维码类型,QR_SCENE为临时,QR_LIMIT_SCENE为永久,QR_LIMIT_STR_SCENE为永久的字符串参数值
  * action_info	二维码详细信息
  * scene_id	场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1--100000)
  * scene_str	场景值ID(字符串形式的ID),字符串类型,长度限制为1到64,仅永久二维码支持此字段
  */
 function create($data)
 {
     $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" . $this->_accessToken;
     $result = Curl::doCurl($url, $data);
     return $result;
 }