拽拽
管理员组

53客服对接API接口demo|53快服对接API接口整体推送聊天记录

<?php


namespace App\Http\Controllers;


class Example extends Controller

{

    private function ok($token)

    {

        return response()->json(['cmd' => 'OK', 'token' => $token]);

    }

    //接收消息推送

    public function recv()

    {

        $data = request()->all();

        $token = $data['token'] ?? ''; //获取所有的请求参数,

        $cmd = isset($data['cmd']) ? $data['cmd'] : ''; //判断最外层是否存在cmd字段

        $content = ''; //从请求参数里获取content字段对应的数据,content是json格式的字符串

        if (!empty($data['content'])) {

            $content = urldecode($data['content']); //从第一层拿到content的数据,然后url解码,解码之后拿到的是json格式的字符串

            $content = json_decode($content, true); //json字符串解析成对象

            $data['content'] = $content;

            if (empty($token)) {

                $token = $content['token'] ?? '';

            }

        }

        if (empty($content)) {

            return $this->ok($token);

        }

        //最外层没有cmd参数,那么就从content参数里拿

        if (empty($cmd)) {

            $cmd = $content['cmd'];

        }

        return $this->ok($token);

        //不同的cmd表示不同的推送业务

        switch ($cmd) {

            case 'talk_info': //整体推送(整段对话信息一起推送)

                break;

            case 'session': //人工对话开始,开启逐条

                break;

            case 'message': //一条消息,开启逐条

                break;

            case 'end': //人工对话结束,开启逐条

                break;

            case 'vote': //访客评价,开启逐条

                break;

            case 'lysession': //留言开始,开启逐条

                break;

            case 'customer': //访客信息推送,开启逐条

                break;

        }

        return $this->ok($token);

    }

}


#1楼
发帖时间:7月前   |   查看数:0   |   回复数:0
游客组