旺旺亮灯方案目前是直接使用淘宝nick做入参做旺旺亮灯唤起,后续淘宝开放平台将对API的“买家淘宝nick”字段脱敏,第三方服务商需切换到使用买家OpenUid(appkey维度唯一买家标识)进行旺旺亮灯。
买家淘宝nick、买家OpenUid(appkey维度唯一买家标识)涉及的字段:
旺旺亮灯切换:旺旺亮灯方案从使用“买家淘宝nick”做旺旺亮灯唤起,切换为使用“买家OpenUid”(appkey维度唯一买家标识)做旺旺亮灯唤起。
目前客服咨询、订单服务(改地址、发货、售后关怀、售后处理)等场景,需要通过旺旺亮灯唤起千牛与消费者链接进行信息沟通。目前我们获取消费者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.get的open_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的技术方案。
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: () => { }, }); }
<script src="https://market.m.taobao.com/app/aliww/bc-ww/webww"></script>
旺旺亮灯脚本会取 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 |
会话场景
|
data-toRole |
会话 to 的角色包括:
|
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 触达商家场景,消息会话不支持 在手淘,买旺消费端透出,在千牛商家端透出(即对方如果在手淘上收不到消息)。 |
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; }
接口名称
接口同原接口,新增参数
打开旺旺聊天窗 (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' } });
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} }, });