zoukankan      html  css  js  c++  java
  • 微信小程序 服务通知推送 (发送模板消息)

    先上图吧,别到时候看了半天 以为 不是你需要的文章哈

     ok,如果符合要求的话 咱们就继续往下看 ,接下来 咱们按步骤一步一步的来哈

    1.在微信公众平台里设置一个模板

    添加个模板先 ,如果 没有模板 在页面切换下 tab选择 一个 合适的模板 ,然后选择下合适的字段 添加下,切换到公共模板库选择模板和字段,选择好确定后就可以了,然后有了模板后,在我的模板里选择你创建的模板 查看详情

     应该是这样一个页面哈,有了这些 就可以下一步了

    2.前端调起授权,别告诉我你们公司没前端,没前端的话 ,那你就吧我这段代码粘贴到小程序里吧,有前端的 话 他应该懂的

    setPhoto:function(){
    wx.requestSubscribeMessage({
    tmplIds: ['5aoiQO173x-B1RyN8d0d4lpgNtOl_qms4d8d'],
    success (res) {
    console.log(res);
     
    },
    fail (fail) {
    console.log(fail);
    }
    })
    },
     
     
    把这段给前端用哈,然后下一步
     
    3.后端进行推送
     
     /**微信小程序 推送相册完成或失败的信息***/
        static function PushCompleteMsg($title='',$begin_time='',$end_time='',$between='',$remark='',$open_id,$urls)
        {
    
               self::GetAccessTokens();
               $url ='https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token='.Yii::$app->redis->get('access_token');
              
    //这里是个大坑 注意我数组里的 key值,要保证和模板里的每个值都一样,如果不明白 和我上面的图片里的值对应下 你就知道怎么传了哈
    $data = array( 'thing1'=>array('value'=>$title), 'date4'=>array('value'=>$begin_time), 'date5'=>array('value'=>$end_time), 'time6'=>array('value'=>$between), 'thing3'=>array('value'=>$remark) ); if(empty($urls)){ $datas = array( 'touser' =>$open_id, 'template_id' =>'5aoiQO17范德萨发范德萨发范德萨发', 'miniprogram_state' =>'trial', //这个是版本 体验版 正式版啥的 这个你们定 'lang' => 'zh_CN', 'data' => $data ); }else{ $datas = array( 'touser' =>$open_id, 'template_id' =>'5aoiQO173x-B打发大水', 'page' =>$urls, //这个是连接地址有的 需要进入小程序查看详情就加上这个参数 ,这个地址是小程序前端地址哦 'miniprogram_state' =>'trial', 'path' =>$url, 'lang' => 'zh_CN', 'data' => $data ); } //最后请求第三方就可以了哈 $header = array("Content-Type:multipart/x-www-form-urlencoded"); $response = Utils::curlPost($url,$datas,5,$header,'json'); $res = json_decode($response,true); print_r($res);die; }



    /**
    * 传入数组进行HTTP POST请求
    */
    static function curlPost($url, $post_data = array(), $timeout = 5, $header = "", $data_type = "") {
    $header = empty($header) ? '' : $header;
    //支持json数据数据提交
    if($data_type == 'json'){
    $post_string = json_encode($post_data);
    }elseif($data_type == 'array') {
    $post_string = $post_data;
    }elseif(is_array($post_data)){
    $post_string = http_build_query($post_data, '', '&');
    }

    $ch = curl_init(); // 启动一个CURL会话
    curl_setopt($ch, CURLOPT_URL, $url); // 要访问的地址
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查 // https请求 不验证证书和hosts
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
    //curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
    //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
    //curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($ch, CURLOPT_POST, true); // 发送一个常规的Post请求
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); // Post提交的数据包
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // 设置超时限制防止死循环
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    //curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //模拟的header头
    $result = curl_exec($ch);

    // 打印请求的header信息
    //$a = curl_getinfo($ch);
    //var_dump($a);

    curl_close($ch);
    return $result;
    }




    可以了么  有问题叫我哈

  • 相关阅读:
    利用DTrace实时检测MySQl
    改进MySQL Order By Rand()的低效率
    RDS for MySQL查询缓存 (Query Cache) 的设置和使用
    RDS For MySQL 字符集相关说明
    RDS for MySQL 通过 mysqlbinlog 查看 binlog 乱码
    RDS for MySQL Mysqldump 常见问题和处理
    RDS for MySQL Online DDL 使用
    RDS MySQL 表上 Metadata lock 的产生和处理
    RDS for MySQL 如何使用 Percona Toolkit
    北京已成为投融资诈骗重灾区:存好骗子公司黑名单,谨防上当!
  • 原文地址:https://www.cnblogs.com/HoverM/p/13306127.html
Copyright © 2011-2022 走看看