微信小程序> 项目接入即时聊天客服系统环信系统PHP后端操作-php客服系统-小程序php源码

项目接入即时聊天客服系统环信系统PHP后端操作-php客服系统-小程序php源码

浏览量:1175 时间: 来源:gcl_air
1.

环信工作原理:

2.

一、由于环信没有直接的接口来主动调取本项目中的用户数据,所有用户信息必须在环信服务器上注册对应信息成为环信的用户;(这样才能当用户进入聊天时显示其基本信息,如:名称、昵称、电话、邮箱等);

3.

二、客服工作台登录可以显示用户信息,可以查看用户访问轨迹,可以主动接入访客咨询等诸多功能(这些基本都不需要后端程序员编写)

4.

下面开始后端程序员(app程序员请自行查看环信开发文档)需要接入的代码编写:

5.

一、用户信息传递

6.

1、先下载环信开发demo文件,提取statics、easemob.js等文件放置到项目指定目录下便于调用

7.

如图:图片

8.

2、编写用户信息提供接口,将本站用户基本信息return出,如下:

9.

classGetUser{publicfunctionget(){

10.

//给予状态初始值$res['status'0];

11.

//判断本站用户是否登录$user_idYii::$app-user-id;if($user_id0){

12.

$user_oneUser::Redis_getOne($user_id);

13.

//easemob_id为用户数据中是否有注册环信的账号idif(empty($user_one['easemob_id'])){//配置文件中写入的环信参数(是公司在环信官网注册得到的信息,详情见环信文档)$option['client_id'yii::$app-params['easemob']['client_id'],'client_secret'yii::$app-params['easemob']['client_secret'],'org_name'yii::$app-params['easemob']['org_name'],'app_name'yii::$app-params['easemob']['app_name'],'base_url'"https://a1.easemob.com/".yii::$app-params['easemob']['org_name']."/".yii::$app-params['easemob']['app_name']."/"];

14.

//实例化环信类

15.

$hnewEasemob($option);

16.

//在环信端注册用户信息$re$h-createUser($user_one['phone'],yii::$app-params['easemob']['default_password']);

17.

//获取环信上用户的信息到本站上$easemob_id$h-getUser($user_one['phone']);

18.

//添加用户相关字段值(将用户在环信上注册好的id再存入用户数据)User::updateOne_NoRedis(['id'$user_one['id'],'easemob_id'$easemob_id['entities'][0]['username']]);

19.

//判断注册信息是否有,如果有则注册成功,状态改为1,信息存入结果集;反之则已被注册,将用户信息直接存入结果集即可;if($re){$res['status']1;$res['msg']'环信用户生成';$res['data']['username'$user_one['phone'],'password'yii::$app-params['easemob']['default_password'],'nickname'$user_one['nickname'],'realname'$user_one['realname'],'qq'$user_one['qq'],'head'File::getFileUrl($user_one['portrait'],100,100),'phone'$user_one['phone'],'wx'$user_one['wx_openid'],];}}else{$res['status']1;$res['msg']'环信用户找到';$res['data']['username'$user_one['phone'],'password'yii::$app-params['easemob']['default_password'],'nickname'$user_one['nickname'],'realname'$user_one['realname'],'qq'$user_one['qq'],'head'File::getFileUrl($user_one['portrait'],100,100),'phone'$user_one['phone'],'wx'$user_one['wx_openid'],];}}return$res;}}

20.

2、在用户点击联系客服按钮事件时,调用上述接口,获取用户信息传到客服工作台

21.

h5页面代码:ahref""οnclick"easemobim.bind({tenantId:‘注册的租户id’'})"iclass"icon"/ispanclass"a_txt"在线客服/span/a

22.

其中onclick为自定义按钮事件,点击启用传值动作

23.

//打开环信客服窗口

24.

vareasemobfunction(){

25.

$.ajax({

26.

type:'POST',url:ajax_url_config.my.easemob+'?access-token'+token,success:function(User){varjsondataeval("("+User+")");}

27.

returnjsondata;

28.

};vareasemobUsereasemob();

29.

window.easemobimwindow.easemobim||{};easemobim.config{//是否隐藏小的悬浮按钮hide:true,//自动连接autoConnect:true,//环信移动客服域,固定值,请按照示例配置domain:'//kefu.easemob.com',//您网站上im.html文件的完整路径path:'//你项目的域名地址/huanxin',//访客插件static的路径staticPath:'//你项目的域名地址/huanxin/static',//orgName#appNameappKey:'',//手机App绑定的IM号to:'',//集成用户体系,验证的方式二选一,必填,另一项为空即可user:{//指定用户名,集成时必填username:easemobUser['username'],//password验证方式password:easemobUser['password'],//token验证方式token:''},visitor:{trueName:easemobUser['realname'],qq:easemobUser['qq'],phone:easemobUser['phone'],companyName:'',userNickname:easemobUser['nickname'],description:''}};

30.

在这之前,请记得要引入之前放置在指定目录下的环信js文件:

31.

scripttype"text/javascript"src"/sea-modules/huanxin/easemob.js"/script

32.

自此,用户信息传递完毕,客服可以看到是哪位用户在咨询。

33.

二、用户访问轨迹传递

34.

1、由于文件已放置,可以省略

35.

2、商品信息得提取接口,我就不提供代码了,与上面的第二部一样;

36.

3、商品信息的传递,也是一样,通过ajax请求得到商品数据,传递到环信平台:

37.

vareasemobgoods(function(){varres;$.ajax({type:'GET',url:ajax_url_config.goods.get_attribute_url+goods_item_id,async:false,success:function(data){resdata;}});returnres;});

38.

vargoodseasemobgoods();//提取环信客服传递商品数据window.easemobimwindow.easemobim||{};easemobim.config{tenantId:'',//写入注册时得到的租户id//orgName#appNameappKey:'',//手机App绑定的IM号to:‘’,satisfaction:true,////是否隐藏小的悬浮按钮hide:true,//自动连接autoConnect:true,//环信移动客服域,固定值,请按照示例配置domain:'//kefu.easemob.com',//您网站上im.html文件的完整路径path:'//你项目的域名地址/huanxin',//访客插件static的路径staticPath:'//你项目的域名地址/huanxin/static',//移动端点击联系客服按钮自动发送订单消息demoextMsg:{"imageName":goods['goods_name'],//custom代表自定义消息,无需修改"type":"custom","msgtype":{"track":{"title":"我正在看:","price":goods['price'],"desc":goods['goods_name']+goods['color'],"img_url":goods['goods_thumb'],"item_url":"http://你项目的域名地址/goods/detail/"+goods['goods_item_id']}}},}

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎