作者:张振琦
本篇来介绍如何使用Udesk反馈标签进行传参,支持传入客户信息和工单信息。如果是已登陆的客户,可以通过反馈标签传入客户信息,也可以设置工单的紧急度或者标签等内容,也支持传入客户和工单的自定义字段。这样可以大大丰富反馈标签的使用场景,例如:可以判断客户的等级,普通还是vip,vip可以直接传入更高的工单紧急度,等等。具体支持的参数如下:
【客户参数】
参数名称 | 类型 | 值 | 是否必选 | 说明 |
---|---|---|---|---|
u_customer_token | String | customer_token | 否 | |
u_email | String | 客户邮箱 | 否 | |
u_cellphone | String | 客户电话 | 否 | |
u_description | String | 客户描述 | 否 | |
u_organization | String | 客户公司 | 否 | |
u_owner_id | String | 客户负责人ID | 否 | |
u_owner_group_id | String | 客户负责组ID | 否 | |
u_customer_tags | String | 客户标签 | 否 | 传入客户标签,用逗号分隔 如:“xx,xx” |
u_SelectField_xxx | String | 客户自定义字段 | 否 | 客户自定义字段唯一标识,可在自定义字段处查看 |
【工单参数】
参数名称 | 类型 | 值 | 是否必选 | 说明 |
---|---|---|---|---|
u_subject | String | 工单主题 | 否 | |
u_content | String | 工单内容 | 否 | |
u_status_id | String | 工单状态ID | 否 | |
u_priority_id | String | 工单紧急度ID | 否 | |
u_company_tags | String | 工单标签 | 否 | 传入工单标签,用逗号分隔 如:“xx,xx” |
u_TextField_xxx | String | 工单自定义字段 | 否 | 工单自定义字段唯一标识,可在自定义字段处查看 |
如果想实现传入参数,必须要先完成鉴权。鉴权参数如下:
参数名称 | 类型 | 值 | 是否必选 | 说明 |
---|---|---|---|---|
u_nonce | String | 随机数 | 是 | 随机数,动态的随机数安全系数更高 |
u_timestamp | String | 时间戳 | 是 | 当前时间戳(13位毫秒) |
u_customer_token/u_email/u_cellphone | String | 客户ID | 是 | 客户唯一标识,使用customer_token或邮箱或手机号 |
u_signature | String | 加密算法 | 是 | signature加密算法 |
反馈标签支持三种客户唯一标识,customer_token、email和cellphone,签名计算方式如下:
第一步:拼接原始字符串
sign_str = u_nonce=value&u_timestamp=valuie&u_customer_token/u_email/u_cellphone=value&im_user_key
im_user_key在【管理中心】-【渠道管理】-【反馈标签】的标签设置内获取
第二步:使用SHA1算法对原始字符串加密
sign_str = sha1(sign_str)
第三步:将加密后的字符串,转换为全大写
sign_str = sign_str.toUpperCase()
签名算法为了安全性,要在服务端完成,下面使用Java的Servlet实现上述签名算法,代码如下
Feedback.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 Feedback extends HttpServlet {
private String im_user_key = "你的key";
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取传入参数
String paramJson = IOUtils.toString(request.getInputStream(), "UTF-8");
//JSON字符串转对象
Gson gson = new Gson();
Si