小程序实例:小程序客服发送图片信息的实现代码

互联网 18-8-21
   /**      * 发送客服消息接口      */     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, 2);         curl_setopt($curl, 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,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);                 $output = curl_exec($curl);         curl_close($curl);                 return $output;     }

相关推荐:

小程序中授权相册的解决办法(附代码)

微信小程序实例:点击事件和长按事件的代码实现

以上就是小程序实例:小程序客服发送图片信息的实现代码的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:微信小程序实例:点击事件和长按事件的代码实现

相关资讯