作者:张振琦
网站登录用户通过web im进行聊天对话时,可以将客户信息通过链接转给Udesk,这样客服在与客户对话时,就可以直接查看客户信息。通过客户信息辅助组件也可以进一步了解此客户的订单等其他信息。
我们就来一步一步实现WebIM插件的客户信息传入,核心还是一个身份签名算法。我们需要如下参数:
| 参数名称 | 类型 | 值 | 说明 |
|---|---|---|---|
| nonce | String | 随机数 | 随机数,动态的比静态随机数安全系数更高 |
| timestamp | String | 时间戳 | 当前时间戳(13位毫秒) |
| web_token | String | 客户ID | 客户唯一标示,推荐使用邮箱、手机号等仅支持字母、数字及下划线,禁用特殊字符 |
| im_user_key | String | 系统获取 | 添加客户信息的KEY |
im_user_key,在WebIM插件的基本信息选项卡内获取。

生成签名只需要三步:
- 拼接原始字符串 格式:sign_str = nonce=value×tamp=value&web_token=value&im_user_key
- 使用加密算法计算出签名字符串 sign_str = sha1(sign_str) 或者 sign_str = sha256(sign_str)
- 将字符串转换为大写 sign_str = sign_str.toUpperCase()
签名都需要在服务端实现,我们使用Java来实现一个获取签名的服务,使用Servlet实现,签名加密支持SHA1和SHA256两种,我们选用SHA1。代码如下。
WebIM.java
package com.udesk.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import com.google.gson.Gson;
import com.udesk.common.SHA1;
import com.udesk.common.SignInput;
import com.udesk.common.SignResult;
public class WebIM extends HttpServlet

本文介绍了如何在Udesk即时通讯网页插件中实现客户身份认证,通过Java服务器端实现SHA1签名算法,确保安全地传递客户信息,以便客服在对话时能查看和了解客户详情。
最低0.47元/天 解锁文章
1055

被折叠的 条评论
为什么被折叠?



