public function push_message($v_uid = "", $uid = "", $type = 1,$message='') { $data['type'] = $type; $openid = $this->get_openid($v_uid); $body=""; switch ($type) { case 1; $title = "评论通知"; $data['time'] = time(); $data['data'] = $message; $data['user_data'] = get_user_info($uid, 'uid,head_img,nickname'); // print_r($data['user_data']);exit; $body = $data['user_data']['nickname'] . "回复了您"; break; case 2;//系统推送 $title='养生推送'; break; } $data = json_encode($data); $this->pushMessageToSingle($openid, $data,0,$title,$body); } /**单推接口案例 * @param $clientId * @param $data * @param int $type * @param $title * @param $body * @return Array */ function pushMessageToSingle($clientId, $data, $type = 0, $title,$body) { //消息推送Demo header("Content-Type: text/html; charset=utf-8"); define('HOST', 'http://sdk.open.api.igexin.com/apiex.htm'); define('APPKEY', ?); define('APPID', ?); define('MASTERSECRET', ?); import('api.lib.GETUI.Push'); // define('CID','请输入您的CID') $igt = new \IGeTui(HOST, APPKEY, MASTERSECRET); $template = $this->IGtTransmissionTemplateDemo($data, $title,$body); // $template =$this->IGtNotyPopLoadTemplateDemo(); // print_r($data);die; //个推信息体 $message = new \IGtSingleMessage(); $message->set_isOffline(true);//是否离线 $message->set_offlineExpireTime(3600 * 12 * 1000);//离线时间 $message->set_data($template);//设置推送消息类型 $message->set_PushNetWorkType($type);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送 //接收方 $target = new \IGtTarget(); $target->set_appId(APPID); $target->set_clientId($clientId); return $igt->pushMessageToSingle($message, $target); } function IGtTransmissionTemplateDemo($data, $title,$body) { $template = new \IGtTransmissionTemplate(); $template->set_appId(APPID);//应用appid $template->set_appkey(APPKEY);//应用appkey $template->set_transmissionType(2);//透传消息类型 $template->set_transmissionContent($data);//透传内容 //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息 // 如下有两个推送模版,一个简单一个高级,可以互相切换使用。此处以高级为例,所以把简单模版注释掉。 //APN简单推送 // $apn = new IGtAPNPayload(); // $alertmsg=new SimpleAlertMsg(); // $alertmsg->alertMsg=""; // $apn->alertMsg=$alertmsg; // $apn->badge=2; // $apn->sound=""; // $apn->add_customMsg("payload","payload"); // $apn->contentAvailable=1; // $apn->category="ACTIONABLE"; // $template->set_apnInfo($apn); //APN高级推送 $apn = new \IGtAPNPayload(); $alertmsg = new \DictionaryAlertMsg(); $alertmsg->body = "body"; $alertmsg->actionLocKey = "打开天天养生"; $alertmsg->locKey = $body; $alertmsg->locArgs = array("locargs"); $alertmsg->launchImage = "launchimage"; // IOS8.2 支持 $alertmsg->titleLocKey = $title; $alertmsg->titleLocArgs = array("TitleLocArg"); $apn->alertMsg = $alertmsg; $apn->badge = 1; $apn->sound = ""; $apn->add_customMsg("payload", $data); // $apn->contentAvailable=1; $apn->category = "ACTIONABLE"; $template->set_apnInfo($apn); return $template; } /** * 返回c_id * @param $v_uid * @return array|mixed|null */ private function get_openid($v_uid){ return M('member')->where(['uid'=>$v_uid])->getField('c_id'); }