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

why 385 2024-08-05

本篇文章给大家带来的内容是关于小程序实例:小程序客服发送图片信息的实现代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

/**

  * 发送客服消息接口

  */

 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';

 }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

//上传素材到微信

 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;

 }

下面的都是通用代码

1

2

3

4

5

6

7

8

9

10

//获取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;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

//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;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//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;

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:分销小程序的开发全攻略
下一篇:微信小程序中点击事件与长按事件的代码实现实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~