这篇文章将为大家详细讲解有关小程序客服发送图片信息如何实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
本篇文章给大家带来的内容是关于小程序实例:小程序客服发送图片信息的实现代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
/**
* 发送客服消息接口
*/
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://cache.yisu.com/upload/information/20201208/261/14179';
$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;
}
关于“小程序客服发送图片信息如何实现”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。