예제 #1
0
/**
 * 调用群发接口,发送单条图文消息,服务号每个月4次
 * debugmode 是否开启调试模式。true:使用预览接口发送到指定openid
 */
function sendnewmsg($debugmode)
{
    // 当前php文件所在目录
    //define('DIR_ROOT', str_replace('\\', '/', dirname(__FILE__)));
    // 项目根目录
    define('DIR_ROOT', $_SERVER['DOCUMENT_ROOT']);
    //define('DIR_ROOT', "/wwwroot/");
    $courseid = $_GET["courseid"];
    // 根据courseid查询对应的课程(推送)信息
    $querysql = "select * from cn_news where id={$courseid}";
    global $db;
    global $smarty;
    $res = $db->query($querysql);
    $row = $db->fetch($res);
    // TODO 先保存图片素材,得到media_id, 页面提示用户,图片素材数量上限
    // 图片(image)、语音(voice)、视频(video)和缩略图(thumb)
    $meidaType = "image";
    //
    //获取当前文件物理路径
    $tmp_file = DIR_ROOT . "/" . $row["simage"];
    //echo $tmp_file;
    if (file_exists($tmp_file)) {
        // 调素材管理接口上传图片,得到meidaid
        $response = WxUtil::uploadpic($meidaType, $tmp_file);
        $picmediaid = $response["media_id"];
        $title = $row["title"];
        $sourceurl = "http://bangmaisiw.w107.mc-test.com/wap/Course-Details.php?id=" . $courseid;
        $content = $row["contents"];
        $digest = "";
        $showcoverpic = "0";
        // 是否显示封面,1为显示,0为不显示
        $pictextResp = WxUtil::uploadpicmsg($picmediaid, $title, $sourceurl, $content, $digest, $showcoverpic);
        // 图文消息 media_id
        $pictextMediaid = $pictextResp["media_id"];
        // 拿到mediaid, 就可以发起推送了
        // 先获取openid列表
        $openidsql = "select openid from wx_user_info where subscribe = '1' ";
        $openidres = $db->query($openidsql);
        // php的json格式:array(""=>"")
        $openidList = $db->fetch_all($openidres);
        // 循环下,转成无key的值数组
        $openidarr = array();
        foreach ($openidList as $openid) {
            $openidarr[] = $openid["openid"];
        }
        //echo print_r($openidarr);
        $tp = new TypeParent();
        if ($debugmode) {
            $yulanopenid = "osp6swrNZiWtEuTy-Gj1cBVA1l38";
            echo $tp->batchSendPicMsgYulan($yulanopenid, $pictextMediaid);
        } else {
            echo $tp->batchSendPicMsg($openidarr, $pictextMediaid);
        }
        return;
    } else {
        echo "文件不存在:" . $row["image"];
        return;
    }
}