- public function _initialize() {
- $wxapp_settings=sp_get_option('wxapp_settings');
- $this->appid=$wxapp_settings['appid'];//得到appid
- $this->appsecret=$wxapp_settings['appsecret'];//得到appsecret
- }
- //发送模板消息
- public function sendmessage(){
- $data=$_POST=json_decode(file_get_contents('php://input'), TRUE);
- $access_token=$this->getAccessToken();
- $request_url='https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$access_token;
- $request_data=array(
- 'touser'=>$data['touser'],//接收者(用户)的 openid
- 'template_id'=>$data['template_id'],//所需下发的模板消息的id
- 'page'=>$data['page'],//点击模板卡片后的跳转页面
- 'form_id'=>$data['form_id'],//表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
- 'data'=>$data['data'],//"keyword1": {"value": "339208499", "color": "#173177"}
- 'emphasis_keyword'=>$data['emphasis_keyword']//模板需要放大的关键词,不填则默认无放大
- );
- $return=json_decode(https_request($request_url,$request_data,'json'),true);
- $this->response($return,'json');
- }
- //获取及更新AccessToken
- private function getAccessToken(){
- $access_token_Model=M('access_token','wei_');//数据库
- $access_token_Data=$access_token_Model->find();
- if($access_token_Data['access_token']&&time()<$access_token_Data['access_token_update_time']+$access_token_Data['access_token_expires_in']){
- $return=array('access_token'=>$access_token_Data['access_token'],'expires_in'=>$access_token_Data['access_token_expires_in']);
- }else{
- $url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->appid.'&secret='.$this->appsecret;
- $return=json_decode(https_request($url),true);
- if($return['access_token']){
- $save=array(
- 'access_token'=>$return['access_token'],
- 'access_token_expires_in'=>$return['expires_in'],
- 'access_token_update_time'=>time()
- );
- $access_token_Model->where(array('appid'=>$this->appid))->data($save)->save();
- }
- }
- return $return['access_token'];
- }
复制代码
- //发送模板消息
- public function sendMessage(){
- $answers_Model=M('answers');
- $users_Model=M('users');
- $posts_Model=M('posts');
- $answers_Data=$answers_Model->where(array('id'=>$_POST['id']))->find();
- $posts_Data=$posts_Model->where(array('id'=>$answers_Data['qid']))->find();
- $users_question_Data=$users_Model->where(array('id'=>$posts_Data['post_author']))->find();
- $users_answer_Data=$users_Model->where(array('id'=>$answers_Data['uid']))->find();
- if($posts_Data['form_id']){
- //发送模板消息
- $request_url='https://'.$_SERVER['HTTP_HOST'].'/Wxapp/Common/sendmessage';
- $request_data=array(
- 'touser'=>$users_question_Data['wxapp_uid'],
- 'template_id'=>'RQ0ORmThmkAAQSnuk1N5JVkh8C7Yx5vVrPTpbW44UMo',
- 'page'=>'pages/my/questionDetail?id='.$answers_Data['qid'],
- 'form_id'=>$posts_Data['form_id'],
- 'data'=>array(
- 'keyword1'=>array('value'=>$posts_Data['post_title'],'color'=>''),//咨询内容
- 'keyword2'=>array('value'=>strip_tags($answers_Data['ctn']),'color'=>'#5cb85c'),//咨询结果
- 'keyword3'=>array('value'=>$users_answer_Data['user_nicename'],'color'=>''),//答复人
- 'keyword4'=>array('value'=>$answers_Data['create_date'],'color'=>'')//答复时间
- ),
- 'emphasis_keyword'=>''
- );
- $return=https_request($request_url,$request_data,'json');
- }
- }
复制代码- //发送请求
- function https_request($url,$data,$type){
- if($type=='json'){//json $_POST=json_decode(file_get_contents('php://input'), TRUE);
- $headers = array("Content-type: application/json;charset=UTF-8","Accept: application/json","Cache-Control: no-cache", "Pragma: no-cache");
- $data=json_encode($data);
- }
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
- if (!empty($data)){
- curl_setopt($curl, CURLOPT_POST, 1);
- curl_setopt($curl, CURLOPT_POSTFIELDS,$data);
- }
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
- $output = curl_exec($curl);
- curl_close($curl);
- return $output;
- }
复制代码
|