小程序自定义传参方案文档说明
概述
因为小程序自身限制,暂时无法通过API获取用户信息,所有Udesk采用小程序支持的 session-from 参数实现该功能 session-from 小程序最多支持1000字符串,为了正常使用,该字段的长度尽量<=1000字节 支持客户的系统信息、客户自定义字段、业务标题、业务自定义字段
配置方法
- 登录微信小程序,网址:https://mp.weixin.qq.com/
- 进入 开发->基本配置 获取 开发者ID(AppID)、开发者密码(AppSecret)
- 进入udesk: 管理中心->渠道管理->小程序->接入微信小程序 填写开发者ID、开发者密码
- 将生成的URL地址和Token粘贴到小程序后台消息推送中,将小程序后台随机生成的EcodingAESKey粘贴到系统中, 以及APPSercret粘贴到系统中
- 可通过此小程序获取用户信息
支持字段
字段说明
参数名称 | 说明 |
---|---|
customer_name | 客户姓名,默认为‘小程序用户’(系统字段) |
nick_name | 昵称 |
avatar | 头像 |
邮箱 | |
customer_token | 客户外部唯一标识 等同于token |
ip | ip |
description | 客户描述 |
organization_id | 所属公司ID |
tags | 标签 |
owner_id | 客户负责人ID |
owner_group_id | 客户负责组ID |
level | 等级 |
cellphones | 电话,格式为数组,包括参数id(电话id)、cellphone(电话号码),id为空时表示添加客户电话, 非空时表示更新客户电话,格式详见示例 |
other_emails | 其他邮箱,格式为数组,包括参数id(邮箱id)、other_email(其他邮箱名),id为空时表示添加客户邮箱, 非空时表示更新客户邮箱,格式详见示例 |
custom_fields | 自定义字段 |
generated_channel | 自定义渠道名称 |
## 使用说明 |
参数配置
var customer_info = {
"customer_name": "客户姓名", // Udesk系统字段
"email": "test@udesk.cn", //邮箱
"customer_token": 'test_token', //客户外部ID
"generated_channel": '自定义渠道名',
"ip": "192.168.1.1", //IP
"description": "描述",
"organization_id": 1, //所属公司ID
"tags": "标签1,标签2", //标签 已英文号分割
"owner_id": 1, //客户负责人ID
"owner_group_id": 1, //客户负责组ID
"level": "normal", // 等级
"cellphones": [
["", "13100000002"], //数组 [[电话ID, 电话文本]]
["3", "13100000003"] //id为空字符串或null时表示新增电话号,有值时表示更新此id对应的电话号码
],
"other_emails": [
["", "13100000002@udesk.cn"], //数组 [[邮箱ID, 邮箱]]
["1", "13100000003@udesk.cn"] //id为空字符串或null时表示新增邮箱,有值时表示更新此id对应的邮箱
],
"custom_fields": {
"TextField_1": "普通文本内容",
}
}
var nick_name = "张三" // 小程序客户昵称
var avatar = "https://www.udesk.cn/images/index/logo1124.png" // 客户头像
var note_info = {
"title": "业务记录标题",
"custom_fields": {
"TextField_1": "普通文本内容",
}
}
var unionid = "ocpX10_1hQmCVGXzKrMwu-g7yuzU" // 小程序用户unionid
//转换成字符串
customer_info_str = JSON.stringify(customer_info)
note_info_str = JSON.stringify(note_info)
内嵌示例
<!-- session-from = "udesk|小程序用户昵称|头像|customer^客户信息|note^业务记录信息|unionid^小程序用户unionid" -->
<button open-type="contact" size="mini" session-from="udesk|{{nick_name}}|{{avatar}}|customer^{{customer_info_str}}|note^{{note_info_str}}|unionid^{{unionid}}">进入客服会话</button>
帮助中心接入说明
http://udesk.udesk.cn/hc/articles/54089
参考示例代码
https://github.com/wangmingle/weixin_mini_test.git
行为轨迹SDK
使用前,需先开通行为轨迹,开通行为轨迹请找对应实施。 Udesk小程序SDK,用来收集客户的商品浏览轨迹、订单事件等,并在 IM控制台>会话>访客轨迹中显示。 如果没有在Udesk客服系统设置小程序,需要在【管理中心>渠道管理>小程序 - 接入微信小程序】
获取与使用SDK
下载SDK成功后,把该文件放到小程序根目录utils目录下,在app.js引入 import UdeskSdk from './utils/ud-sdk'
;
// 在app.js 第一行引入sdk
import UdeskSdk from './utils/ud-sdk';
UdeskSdk.init({
appId: 'xxxxxxxx',
companyToken: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
companyDomain: 'xxx.udeskdemo.cn',
onPageShow: function(){
//do something
}
});
域名设置
登录 小程序后台, 我们可以在菜单 “开发”-“开发设置” 可以看到小程序的 AppID和服务器域名(AppSecret必须配置)
初始化
方法说明
UdeskSdk.init({ appId, companyToken, companyDomain, onPageShow, onPageHide });
参数说明
参数名称 | 类型 | 值 | 是否必选 | 说明 |
---|---|---|---|---|
appId | String | 是 | 小程序appId | |
companyToken | String | 是 | 公司小程序鉴权Token,获取位置【管理中心-渠道管理-小程序-管理/小程序SDK鉴权Token】 | |
companyDomain | String | 是 | 公司域名,如:xxx.udesk.cn | |
onPageShow | Function | 否 | 接受页面显示事件 | |
onPageHide | Function | 否 | 接受页面隐藏事件 |
> 商品浏览轨迹上传
方法说明
调用该功能请先初始化
UdeskSdk.trace(type, data);
参数说明
参数名称 | 类型 | 值 | 是否必选 | 说明 |
---|---|---|---|---|
type | String | product | 是 | 跟踪类型 |
data | Object | 是 | 跟踪数据 | |
data.name | String | 是 | 商品名称 | |
data.url | String | 否 | 商品跳转链接(新页显示),如果值为空,则不能点击 | |
data.imgUrl | String | 否 | 如果值为空,则不显示 | |
data.params | Object | 否 | 参数列表 | |
data.params.text | String | 否 | 参数文本 | |
data.params.color | String | 否 | 参数颜色值,规定为十六进制值的颜色(比如 #ff0000) | |
data.params.fold | Boolean | 否 | 是否粗体 | |
data.params.break | Boolean | 否 | 是否换行 | |
data.params.size | Number | 默认12 | 否 | 字体大小 |
示例
import UdeskSdk from './utils/ud-sdk';
UdeskSdk.trace('product', {
name: " Apple iPhone X (A1903) 64GB 深空灰色 移动联通4G手机",
url: "https://item.jd.com/6748052.html",
imgUrl: "http://img12.360buyimg.com/n1/s450x450_jfs/t10675/253/1344769770/66891/92d54ca4/59df2e7fN86c99a27.jpg",
params: [{
"text": "¥6999.00",
"color": "#FF0000",
"fold": false,
"break": false,
"size": 12
}]
});
> 订单事件上传
方法说明
调用该功能请先初始化
UdeskSdk.trace(type, data);
参数说明
参数名称 | 类型 | 值 | 是否必选 | 说明 |
---|---|---|---|---|
type | String | order | 是 | 跟踪类型 |
data | Object | 是 | 跟踪数据 | |
data.order_no | String | 是 | 订单编号 | |
data.name | String | 是 | 订单名称 | |
data.url | String | 否 | 订单跳转链接 | |
data.price | Number | 是 | 订单价格 | |
data.order_at | Date | 是 | 下单时间 | |
data.pay_at | Date | 否 | 付款时间 | |
data.status | String | 是 | 订单状态: wait_pay(待付款)、paid(已付款)、closed(已关闭) | |
data.remark | String | 否 | 备注, 最大长度为1000字节(中文2个字节) | |
data.consignee_name | String | 否 | 收货人姓名 | |
data.consignee_phone | String | 否 | 收货人电话 | |
data.commodit_num | String | 否 | 商品总数量 | |
commodities | Array | 否 | 商品信息Array(Ojbect) |
commodities商品信息对象
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
commodit_name | string | 否 | 商品名称 |
commodit_no | string | 否 | 商品编号 |
commodit_count | numeric | 否 | 商品数量 |
commodit_fee | string | 否 | 商品价格 |
示例
import UdeskSdk from './utils/ud-sdk';
UdeskSdk.trace('order', {
order_no: "1000",
name: "第一个订单",
url: "https://xxx.xxxx.com/订单链接",
price: 16.8,
order_at: new Date(),
pay_at: new Date(),
status: "wait_pay",
remark: "备注最多1000字节",
consignee_name: '张三',
consignee_phone: '01012345',
consignee_address: '北京市大兴区',
commodit_num: 88,
commodities: [
{
commodit_name: '牛奶A',
commodit_no: 'NO123456',
commodit_count: 1,
commodit_fee: '46.5'
}
]
});