Cet article vous présente un exemple de mini programme : le code d'implémentation pour envoyer des informations d'image au service client du mini programme. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. .
/** * 发送客服消息接口 */ 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; }
Les codes courants suivants sont les suivants
//获取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; }
Recommandations associées :
Mini programme Solution vers un album photo autorisé en Chine (avec code)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!