文档中心 > 基础技术

淘宝Nick脱敏旺旺亮灯改造方案

更新时间:2024/08/01 访问次数:26223

一、背景

 

旺旺亮灯方案目前是直接使用淘宝nick做入参做旺旺亮灯唤起,后续淘宝开放平台将对API的“买家淘宝nick”字段脱敏,第三方服务商需切换到使用买家OpenUid(appkey维度唯一买家标识)进行旺旺亮灯。

 

二、淘宝Nick脱敏旺旺亮灯改造范围及节奏

2.1 改造范围

 

买家淘宝nick、买家OpenUid(appkey维度唯一买家标识)涉及的字段:

旺旺亮灯切换:旺旺亮灯方案从使用“买家淘宝nick”做旺旺亮灯唤起,切换为使用“买家OpenUid”(appkey维度唯一买家标识)做旺旺亮灯唤起。

 

 

2.2 买家OpenUid从哪里取

 

目前客服咨询、订单服务(改地址、发货、售后关怀、售后处理)等场景,需要通过旺旺亮灯唤起千牛与消费者链接进行信息沟通。目前我们获取消费者OpenUid信息的方式,集中在以下3个核心的订单API。请服务商根据自身场景进行调整适配,调用API接口获取OpenUid。

1)taobao.trade.fullinfo.get buyer_open_uid字段;

2)taobao.trades.sold.get buyer_open_uid字段;

3)taobao.fenxiao.orders.getopen_buyer_uid字段;

 

三、旺旺亮灯改造技术实施方案

 

buyer_open_uid 旺旺亮灯方案唤起消费者;请正确使用端上的唤起,

当前是移动千牛请用 2.1千牛移动端旺旺亮灯改造实施方案

当在pc上,但是是纯H5页面 请参考 2.2 PC-H5页面技术文档:PC旺旺亮灯改造方案

当在pc的千牛容器里,如果是H5插件,请参考 2.3 PC-H5插件旺旺亮灯改造方案

当在pc的千牛容器里,如果是小程序插件,请参考? 2.4 PC-小程序旺旺亮灯改造方案

请不要在H5插件里使用纯h5的技术方案。

 

3.1 千牛移动端旺旺亮灯改造方案

 

my.qn.openChat打开聊天页面

千牛移动端7.6.0 及以上版本支持该API。

 

接口的入参

 

参数名

必传

类型

示例

描述

nick

【隐私合规版本以上,此参数废弃,不允许传入nick参数】

string

cntaobao买家测试账号

【废弃中,只允许iOS 9.6.5和安卓9.8.20以下版本使用】聊天的对象的nick,nick前请带上nick域, 所属域可选值为:cntaobao|cnalichn|enaliint cntaobao 是淘宝用户 cnalichn 是中文站用户 enaliint 是国际站用户。

text

string

你好

打开聊天窗,同时携带输入框文本

openUId

string

 

聊天对象的openUserId。

targetType

string

taobao

聊天对象的类型,淘宝用户或者1688用户。

可选值为: taobao, 1688。

sceneParam

string

{"toRole":"buyer"}

场景信息,json格式,默认为空身份为买家。

当前亮灯对象为买家时:

{"toRole":"buyer"}

当前亮灯对象为卖家时:

{"toRole":"seller"}

注意:

1.买家:buyer

触达消费者场景,消息会话在手淘,买旺等消费者端透出(即对方如果在手淘上可以收到消息)。

2.卖家:seller

触达商家场景,消息会话不支持

在手淘,买旺消费端透出,在千牛商家端透出(即对方如果在手淘上收不到消息)。

 

代码样例

 

var privacyEnabled = xx;//判断端版本是否大于等于 >=(iOS 9.6.5 / android 9.8.20), 如果大于等于则为true,反之为false
   if (privacyEnabled) {
      my.qn.openChat({
        text: '您好',
        openUId: 'xxxxxxx',
        targetType: 'taobao',
        sceneParam: '\"{\\\"toRole\\\":\\\"buyer\\\"}\"',
        success: () => { },
        fail: () => { },
      });
    } else {
      my.qn.openChat({
        nick: 'cntaobao买家测试账号',
        text: '您好',
        targetType: 'taobao',
        sceneParam: '\"{\\\"toRole\\\":\\\"buyer\\\"}\"',
        success: () => { },
        fail: () => { },
      });
    }

 

3.2 PC-H5页面技术文档:PC旺旺亮灯改造方案

 

步骤1:引入资源

 

<script src="https://market.m.taobao.com/app/aliww/bc-ww/webww"></script>

步骤2:准备Dom

旺旺亮灯脚本会取 DOM 元素上的一些属性用于拼接旺旺点灯的链接,需要传入对方的nick。

 

<span class="J_WangWang" data-nick="${nick}" data-icon="small"></span>

 

支持的属性有:

 

DOM 属性

备注

data-encode

当前的 nick 是否已经被 encode(uic nick,不支持displaynick)

data-nick

需要呼起旺旺的用户 nick,如果 data-encode 为 true,则会对 nick 做一次 decode

data-item || window.g_config.itemId

交易焦点的 item id

data-items

交易焦点的 item id,支持多个

data-display

显示样式,可取 inline, block,默认 inline

data-icon

图标样式,可取 small, large, static,默认 large

data-from

来源站点,默认 cntaobao

data-portal

入口,比如 taojianghu

data-scene

会话场景
包括但不限于以下:

  1. 普通咨询:consult
  2. 普通聊天:chat
  3. ISV咨询:isvConsult

data-toRole

会话 to 的角色包括:

  1. 买家:buyer
  2. 卖家:seller
  3. 小二:xiaoer
  4. 服务商:isv

data-encryptuid(新增,必填)

用户加密uid

data-bizdomain(新增,必填)

来源站点,后续替换data-from,淘宝域为taobao,1688域为cbu

data-appkey(新增,二方不用填)

三方加解密openUid需要

data-biztype(新增,必填)

业务类型,0-二方,1-三方

data-sceneparam(新增,bizRef必填)

场景信息,json格式,需要填入调用来源及亮灯对象等

当前亮灯对象为买家时:

{"toRole":"buyer","bizRef": ""}

当前亮灯对象为卖家时:

{"toRole":"seller","bizRef": ""}

注意:

1.toRole的值

买家:buyer

触达消费者场景,消息会话在手淘,买旺等消费者端透出(即对方如果在手淘上可以收到消息)。

卖家:seller

触达商家场景,消息会话不支持

在手淘,买旺消费端透出,在千牛商家端透出(即对方如果在手淘上收不到消息)。

 

步骤3:亮灯

 

window.Light.init(); // 需要保证元素的nick数据已填充
或者
window.Light.light(selector); // 点亮某个节点下所有的亮灯

 

代码样例

 

import React, { FunctionComponent, useEffect, useState } from 'react';
import _uniqueId from 'lodash/uniqueId';
import _get from 'lodash/get';
import _isFunction from 'lodash/isFunction';
import { loadScript } from './scriptLoader';

const webwwDependencies = {
	kissy: 'https://assets.alicdn.com/s/kissy/1.2.0/kissy-min.js',
	webww: 'https://market.m.taobao.com/app/aliww/bc-ww/webww',
};

interface IWangWangProps extends React.HTMLAttributes<HTMLSpanElement> {
	nick: string;
	disabled?: boolean;
	// scene: string;
	// toRole: string;
	// source: string;
}
async function light(id: string) {
	function initWW() {
		const Light = window['Light'];
		if (_isFunction(Light?.light)) {
			Light.light(id);
			return true;
		}
		return false;
	}
	if (!_isFunction(_get(window, 'KISSY.config'))) {
		await loadScript(webwwDependencies.kissy);
	}
	if (!initWW()) {
		await loadScript(webwwDependencies.webww);
		initWW();
	}
}

const WangWang: FunctionComponent<IWangWangProps> = (props: IWangWangProps) => {
	const { nick, disabled, ...others } = props;
	const [id] = useState(_uniqueId('webww'));
	useEffect(() => {
		try {
			light(id);
		} catch (e) {}
	}, []);

	return (
			<span
				className="J_WangWang"
				data-display="inline"
				data-nick={nick}
				data-icon="small"
        data-encryptuid="RAzN8HWYGXdCDjUiVYYSmzS6uXqTCSYHofcTy84dETXz8eYEsiw"
				// data-scene={scene}
				// data-torole={toRole}
				// data-source={source}
			/>
	);
};
export default WangWang;

 

scriptLoader.tsx

 

const asyncTasks: { [id: string]: Promise<any> } = {};
export async function loadScript(url: string) {
	if (asyncTasks[url]) return asyncTasks[url];
	const script = document.createElement('script');
	script.setAttribute('type', 'text/javascript');
	script.setAttribute('src', url);
	script.setAttribute('charset', 'utf-8');
	const task = new Promise(resolve => {
 script.onload = resolve;
 script.onerror = resolve;
	});
	document.body.appendChild(script);
	asyncTasks[url] = task;
	return task;
}

 

3.3 PC-H5插件旺旺亮灯改造方案

 

接口名称

接口同原接口,新增参数

打开旺旺聊天窗 (openChat)

 

接口入参

 

改动说明

参数名

必传

类型

示例

描述

 

nick

string

cntaobao商家测试账号

聊天的对象的nick,nick前请带上nick域, 所属域可选值为:cntaobao|cnalichn|enaliint cntaobao 是淘宝用户 cnalichn 是中文站用户 enaliint 是国际站用户

新增

bizDomain

string

taobao

【目前为兼容老端,实际为必填字段】 对方聊天域的信息,目前支持 taobao、cbu两种,taobao:淘宝域,cbu 1688域

新增

sceneParam

string

{"toRole":"buyer"}

场景信息,json格式,默认为空身份为买家。 当前亮灯对象为买家时: {"toRole":"buyer"} 当前亮灯对象为卖家时: {"toRole":"seller"} 注意: 1.买家:buyer 触达消费者场景,消息会话在手淘,买旺等消费者端透出(即对方如果在手淘上可以收到消息)。 2.卖家:seller 触达商家场景,消息会话不支持 在手淘,买旺消费端透出,在千牛商家端透出(即对方如果在手淘上收不到消息)。

新增

securityUID

string

安全UID,三方为openUID,二方为加密UID

安全UID,三方为openUID,二方为加密UID 【目前为兼容老端,实际为必填字段】 对方聊天账号的加密UID

 

代码样例

 

QN.application.invoke( {
 cmd : 'openChat',
 param : {
 nick : 'cntaobao商家测试账号' ,
 bizDomain : 'taobao' ,
 sceneParam : '{"toRole":"buyer"}' ,
 securityUID : '安全UID,三方为openUID,二方为加密UID' 
 }
});

 

3.4 PC-小程序旺旺亮灯改造方案

 

my.qn.openChat (接口名称无变动,新增参数)

功能:打开聊天窗口并输入待发送的信息。

 

my.qn.openChat接口的入参

 

属性

类型

必填

描述

nick

String

[目前阶段:nick,uid,

bizDomain,均为必填字段

 

隐私保护系统上线全量期(待官方通知):

此字段废除,新逻辑务必使用uid和bizDomain]

聊天对象的nick,含站点名称,例如cntaobaoXXX(淘宝),chalichnYYY(中文站)等等

text

String

待发送的信息。如果聊天框里已有内容,会追加到光标处(如果焦点正在输入框)或追加到最后。

securityUID

String

 

二方为加密UID,

三方为OpenUID

bizDomain

String

聊天对象的账号域,目前只支持"taobao", "cbu"

sceneParam

String

场景信息,jsonString,默认为空身份为买家。

当前亮灯对象为买家时:

{"toRole":"buyer"}

当前亮灯对象为卖家时:

{"toRole":"seller"}

注意:

1.买家:buyer

触达消费者场景,消息会话在手淘,买旺等消费者端透出(即对方如果在手淘上可以收到消息)。

2.卖家:seller

触达商家场景,消息会话不支持

在手淘,买旺消费端透出,在千牛商家端透出(即对方如果在手淘上收不到消息)。

 

出参

 

名称

类型

描述

success

Boolean

是否调用成功

 

 

代码样例

 

// 打开聊天窗口并输入待发送的信息
my.qn.openChat({
 nick: 'cnalichnalikjj', // 昵称,要带站点
 text: 'hello', // 信息,可选
 securityUID:'alikjj的加密UID',
 bizDomain:'taobao',
 success: (res) => {
 console.log(res); // {success: true}
 },
 fail: (res) => {
 console.log(res); // {errorMessage: "nick 错误", error: 3}
 },
});

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部