小程式客服訊息
/**
* 傳送客服訊息介面
*/
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;
}
相關文章
- 【實戰教程】小程式客服訊息的自動回覆
- 微信小程式客服自動回覆訊息功能採坑(完)微信小程式
- 小程式 模版訊息
- 【最佳實踐】微信小程式客服訊息實時通知如何快速低成本實現?微信小程式
- 小程式訊息推送訂閱
- 微信客服訊息時間限制
- 小程式傳送訂閱訊息
- uni-app小程式訊息推送APP
- 使用Java接入小程式訂閱訊息!Java
- django+小程式傳送模板訊息Django
- 用 Laravel 自帶訊息模組搭建小程式實時推送訊息Laravel
- 微信公眾號開發之客服訊息
- 百度小程式模板訊息通知示例 - LaravelLaravel
- 你知道如何在小程式中推送模板訊息?
- 小程式訂閱訊息推送(含原始碼)java實現小程式推送,springboo原始碼JavaSpring
- 拼多多客服助手-自動回覆訊息外掛
- 手把手帶你接入小程式訂閱訊息
- 小程式中使用公眾號模板訊息思路整理
- 小程式長期訂閱訊息的支援問題
- 小程式開發|5分鐘學會微信小程式模板訊息“召回利器”微信小程式
- 超好用的微信小程式智慧客服微信小程式
- 微信小程式 傳送模板訊息的功能實現微信小程式
- Laravel + 微信小程式 websocket 搭建廣播訊息系統Laravel微信小程式Web
- iOS訊息轉發小記iOS
- [入門到吐槽系列] 微信小程式 敏感違規圖片檢測 mediaCheckAsync,客服介面 訊息推送 的各種坑分享!微信小程式
- 微信小程式可以指定到特定客服嗎?微信小程式
- 好訊息!微信小程式開發環境自帶vConsole微信小程式開發環境
- 微信小程式模板訊息還能群發?無限制推送?微信小程式
- 微信小程式+mqtt.js實現實時接收訊息微信小程式MQQTJS
- 程式間通訊--訊息佇列佇列
- 5行程式碼實現微信小程式模版訊息推送 (含推送後臺和小程式原始碼)行程微信小程式原始碼
- 微信小程式懸浮可拖動客服元件微信小程式元件
- 基於 EasyWechat 和 Laravel notification 傳送微信小程式模板訊息Laravel微信小程式
- 微信小程式如何突破模板訊息限制,獲取多個formId?微信小程式ORM
- uni-app技術分享| uni-app轉小程式-實時訊息APP
- 好訊息 OR 壞訊息
- 用程式碼理解 ObjC 中的傳送訊息和訊息轉發OBJ
- 想要更精準的小程式模版訊息推送?我們來幫你實現