<?php
//	include "wxid/wechat.class.php";
//	include 'wxid/errCode.php';
require_once("../Wx.Config.php");

	//php微信推送消息简单例子
	header("Content-type:text/html;charset=utf-8");
	
	function getcurl($url,$data=array())
	{
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_POST, 1);
		// 这一句是最主要的
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
		$response = curl_exec($ch);
		$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
		curl_close($ch) ;
		return $response;
	}
	
	function sendMessage($token,$message)
	{
    	$curl = curl_init();
	    $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$token;
	  	curl_setopt($curl, CURLOPT_URL, $url);
    	curl_setopt($curl, CURLOPT_POST, 1);
    	curl_setopt($curl, CURLOPT_POSTFIELDS,$message);
    	curl_exec($curl);
	}
	
	function json_encodes($arr) 
	{
		$parts = array ();
        $is_list = false;
        //Find out if the given array is a numerical array
        $keys = array_keys ( $arr );
        $max_length = count ( $arr ) - 1;
        if (($keys [0] === 0) && ($keys [$max_length] === $max_length )) 
		{ 
			//See if the first key is 0 and last key is length - 1
            $is_list = true;
            for($i = 0; $i < count ( $keys ); $i ++) 
			{ 
				//See if each key correspondes to its position
                if ($i != $keys [$i]) 
				{ 
					//A key fails at position check.
                    $is_list = false; //It is an associative array.
                    break;
                }
            }
        }
		
        foreach ( $arr as $key => $value ) 
		{
            if (is_array ( $value )) 
			{ 
				//Custom handling for arrays
                if ($is_list)
                    $parts [] = json_encodes ( $value ); /* :RECURSION: */
                else
                    $parts [] = '"' . $key . '":' . json_encodes ( $value ); /* :RECURSION: */
            } 
			else 
			{
                $str = '';
                if (! $is_list)
                    $str = '"' . $key . '":';
                //Custom handling for multiple data types
                if (is_numeric ( $value ) && $value<2000000000)
                    $str .= $value; //Numbers
                elseif ($value === false)
                    $str .= 'false'; //The booleans
                elseif ($value === true)
                    $str .= 'true';
                else
                    $str .= '"' . addslashes ( $value ) . '"'; //All other things
                // :TODO: Is there any more datatype we should be in the lookout for? (Object?)
                $parts [] = $str;
            }
        }
        $json = implode ( ',', $parts );
        if ($is_list)
            return '[' . $json . ']'; //Return numerical JSON
        return '{' . $json . '}'; //Return associative JSON
    }
	
	$url = "https://api.weixin.qq.com/cgi-bin/token?";
		
	$data = array(
    	'grant_type'=>'client_credential',
	    'appid'=>WxMainConfig::$APPID,
    	'secret'=>WxMainConfig::$APPSECRET
		);
		
	$file = getcurl($url,$data);
	$josn = json_decode($file,true);
	$token = $josn['access_token'];
 
	$curl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$token;
 
	$array = array('oWXyjt0JqdfE5fMoie_rp7_FONW4');
	
	foreach($array as $v) 
	{
    	$message = array(
        	'touser'=>$v,
	        'msgtype'=>'text',
    	    'text'=>array('content'=>'推送消息测试')
	    );
    	$message = json_encodes($message);
		echo $message;
	    sendMessage($token,$message);
	}
?>