小程序实例:小程序客服发送图片信息的实现代码
发布时间:2020-12-14 22:11:22 所属栏目:资源 来源:网络整理
导读:本篇文章给大家带来的内容是关于小程序实例:小程序客服发送图片信息的实现代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 /** * 发送客服消息接口 */ public function actionCustomService() { $data = file_get_contents(php://in
本篇文章给大家带来的内容是关于小程序实例:小程序客服发送图片信息的实现代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 /** * 发送客服消息接口 */ public function actionCustomService() { $data = file_get_contents('php://input'); $data = json_decode($data,true); $qrcode_url = Yii::$app->params['gzh_qrcode']; $openId = $data['FromUserName']; $access_token = self::getAccessToken(); $url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_token; $appid = Yii::$app->params['miniAppid']; $media_id = self::getRedis("wx_material:$appid",'media_id'); if (!$media_id) { $material = self::uploadImg($qrcode_url,$access_token); if ($material) { $redis = Yii::$app->redis; $redis->hmset("wx_material:$appid",'type',$material['type'],'media_id',$material['media_id'],'created_at',$material['created_at']); $redis->expire("wx_material:$appid",7200); } $media_id = $material['media_id']; } $data1 = [ 'touser' => $openId,'msgtype' => 'image','image' => [ 'media_id' => $media_id,],]; $data1 = json_encode($data1,JSON_UNESCAPED_UNICODE); $result = self::https_request($url,$data1); echo 'success'; } //上传素材到微信 public static function uploadImg($img,$access_token) { $url = 'https://api.weixin.qq.com/cgi-bin/media/upload?access_token='.$access_token.'&type=image'; $fileName = time() . '.jpg'; $source = file_get_contents($img); file_put_contents('./images/material/'.$fileName,$source); if (class_exists('CURLFile')) { $josn = array('media' => new CURLFile(realpath("images/material/" . $fileName))); } else { $josn = array('media' => '@' . realpath("images/material/" . $fileName)); } unlink('./images/material/'.$fileName); $result = self::curl_post($url,$josn); $result = json_decode($result,true); return $result; } 下面的都是通用代码 //获取access_token public static function getAccessToken() { $appid = Yii::$app->params['miniAppid']; $appsecret = Yii::$app->params['miniSecret']; $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret; $result = self::httpGet($url); $access_token = json_decode($result,true)['access_token']; return $access_token; } //get方法获取内容 private static function httpGet($url) { $curl = curl_init(); curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl,CURLOPT_TIMEOUT,500); curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,2); curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,CURLOPT_URL,$url); $res = curl_exec($curl); curl_close($curl); return $res; } //http请求 public static function https_request($url,$data=null) { $curl = curl_init(); curl_setopt($curl,$url); curl_setopt($curl,FALSE); curl_setopt($curl,FALSE); if(!empty($data)){ curl_setopt($curl,CURLOPT_POST,1); curl_setopt($curl,CURLOPT_POSTFIELDS,$data); } curl_setopt($curl,1); $output = curl_exec($curl); curl_close($curl); return $output; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |