123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?php
- class wxapp
- {
- public $access_token ="";
- public function getWxAccessToken(){
- $access_token['access_token'] = "54_1FFzg4V7iHLWyC0BQLLZo7UHX2xq1g8lJl9691YawRg6yDy16diXXqmGa_s3kWRRVaT8E9Ofa9fpxyFKCrUMAEi_FsAyvGr29XW7x689AyZuUNqAQKoQe_QFKl_V6xNa6BA4Wp64KW4Qid7ODBAeACAGED";
- return $access_token;
- $appid='wx6880e2c03de221c9';
- $appsecret='452732864439a04a49e860d5e454dc9d';
- $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
- $access_token = $this->makeRequest($url);
- $access_token = json_decode($access_token['result'],true);
- $this->access_token = $access_token['access_token'];
- return $access_token;
- // if(Session::get('access_token_'.$appid) && Session::get('expire_time_'.$appid)>time()){
- // return Session::get('access_token_'.$appid);
- // }else{
- // $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
- // $access_token = $this->makeRequest($url);
- // $access_token = json_decode($access_token['result'],true);
- // Session::set('access_token_'.$appid,$access_token);
- // Session::set('expire_time_'.$appid,time()+7000);
- // return $access_token;
- // }
- }
- /**
- * 发起http请求
- * @param string $url 访问路径
- * @param array $params 参数,该数组多于1个,表示为POST
- * @param int $expire 请求超时时间
- * @param array $extend 请求伪造包头参数
- * @param string $hostIp HOST的地址
- * @return array 返回的为一个请求状态,一个内容
- */
- public function makeRequest($url, $params = array(), $expire = 0, $extend = array(), $hostIp = '')
- {
- if (empty($url)) {
- return array('code' => '100');
- }
- $_curl = curl_init();
- $_header = array(
- 'Accept-Language: zh-CN',
- 'Connection: Keep-Alive',
- 'Cache-Control: no-cache'
- );
- // 方便直接访问要设置host的地址
- if (!empty($hostIp)) {
- $urlInfo = parse_url($url);
- if (empty($urlInfo['host'])) {
- $urlInfo['host'] = substr(DOMAIN, 7, -1);
- $url = "http://{$hostIp}{$url}";
- } else {
- $url = str_replace($urlInfo['host'], $hostIp, $url);
- }
- $_header[] = "Host: {$urlInfo['host']}";
- }
- // 只要第二个参数传了值之后,就是POST的
- if (!empty($params)) {
- curl_setopt($_curl, CURLOPT_POSTFIELDS, http_build_query($params));
- curl_setopt($_curl, CURLOPT_POST, true);
- }
- if (substr($url, 0, 8) == 'https://') {
- curl_setopt($_curl, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($_curl, CURLOPT_SSL_VERIFYHOST, FALSE);
- }
- curl_setopt($_curl, CURLOPT_URL, $url);
- curl_setopt($_curl, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($_curl, CURLOPT_USERAGENT, 'API PHP CURL');
- curl_setopt($_curl, CURLOPT_HTTPHEADER, $_header);
- if ($expire > 0) {
- curl_setopt($_curl, CURLOPT_TIMEOUT, $expire); // 处理超时时间
- curl_setopt($_curl, CURLOPT_CONNECTTIMEOUT, $expire); // 建立连接超时时间
- }
- // 额外的配置
- if (!empty($extend)) {
- curl_setopt_array($_curl, $extend);
- }
- $result['result'] = curl_exec($_curl);
- $result['code'] = curl_getinfo($_curl, CURLINFO_HTTP_CODE);
- $result['info'] = curl_getinfo($_curl);
- if ($result['result'] === false) {
- $result['result'] = curl_error($_curl);
- $result['code'] = -curl_errno($_curl);
- }
- curl_close($_curl);
- return $result;
- }
- public function getWxcode(){
- $ACCESS_TOKEN=$this->getWxAccessToken();
- $url="https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=".$ACCESS_TOKEN['access_token'];
- $post_data=
- array(
- 'page'=>'pages/index/index',
- 'scene'=>'34,S853EE4QRP'//34%2CS853EE4QRP
- );
- $post_data=json_encode($post_data);
- $data=$this->send_post($url,$post_data);
- // var_dump($data);
- $result=$this->data_uri($data,'image/png');
- return '<image src='.$result.'></image>';
- }
- /**
- * 消息推送http
- * @param $url
- * @param $post_data
- * @return bool|string
- */
- protected function send_post( $url, $post_data ) {
- $options = array(
- 'http' => array(
- 'method' => 'POST',
- 'header' => 'Content-type:application/json',
- //header 需要设置为 JSON
- 'content' => $post_data,
- 'timeout' => 60
- //超时时间
- )
- );
- $context = stream_context_create( $options );
- $result = file_get_contents( $url, false, $context );
- return $result;
- }
- //二进制转图片image/png
- public function data_uri($contents, $mime)
- {
- $base64 = base64_encode($contents);
- return ('data:' . $mime . ';base64,' . $base64);
- }
- }
|