获取百度关键字·一洽客服系统

1.功能介绍

此解决方案可通过后端接口实时获取当次百度来源请求的访客搜索关键字,在访客打开落地页之前获取到百度搜索词,可进入如下测试地址进行测试:

测试地址:https://chat.rainbowred.com/baiduTest.html

测试说明:只能获取SEO来源的关键字,推广来源的关键字需要在百度营销通中对一洽进行授权,授权后可100%实时获取百度推广的访客搜索词。

其他解决方案:

webhook实时接收搜索关键词信息

以上方案适合需要对每次来访的访客信息根据落地页、浏览轨迹、业务事件、搜索信息进行数据统计和分析。

页面上js实时获取搜索关键词信息

以上方案适合需要在页面上获取到访客搜索词以后,将搜索词信息同其他业务数据一同提交后记录,比如客户填写某个表格时携带当次搜索词信息。

如需详细了解接口解决方案和费用,您可微信添加我们的解决方案专家详细咨询。

2.接口地址

https://xxx.echatsoft.com/pwd ,具体地址请向您的专属客服获取。

3.获取开发者配置

使用管理者的权限登录一洽软件后,在设置-开发API-服务器交互页面中获取开发者接入相关的配置

如图:

配置信息说明:

appId:一洽系统自动生成的应用唯一值,用于接口交互时判断用户身份。

encodingAesKey(消息加解密key):由开发者手动填写或随机生成,将用作XML数据加解密密钥,为保证数据安全推荐使用密文方式传输数据。

Token:Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。

4.接口请求get参数说明

字段类型是否必须说明
companyIdlong公司ID
signatureString签名,校验开发者身份,校验失败返回错误码107
timestamplong时间戳,有效期为2小时,超过2小时返回错误码108
nonceString随机数

signature详细说明

1)将token、timestamp、nonce三个参数进行字典序排序

2)将三个参数字符串拼接成一个字符串进行sha1加密
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于一洽

检验signature的JAVA示例代码:

public boolean verifyUrl(String msgSignature, String timeStamp, String nonce)
    throws AesException {
    String signature = SHA1.getSHA1(token, timeStamp, nonce);
if (!signature.equals(msgSignature)) {
    throw new AesException(AesException.ValidateSignatureError);
}
    
return true;

}

一洽的签名生成方式和微信一致。

C# C++ Java PHP Python 微信代码示例下载:示例代码

示例:

token:myToken
timestamp:myTimestamp
nonce:myNonce
signature输出:81ceaac69a2f44be4f98d4adbea202d5792c62bb
向如下URL POST步骤4中的数据获取关键字:
http://xxx.echatsoft.com/pwd?timestamp=myTimestamp&nonce=myNonce&signature=81ceaac69a2f44be4f98d4adbea202d5792c62bb

5.post详细数据

消息加解密说明

什么是EncodingAESKey? 一洽采用AES对称加密算法对消息体对行加密,EncodingAESKey则是加密所用的秘钥。消息接收方用此秘钥对收到的密文消息体进行解密。

消息加解密过程和微信公众平台的消息加解密方式一致。 示例代码(包括C++、php、Java、Python和C#版本)示例代码 注:一洽的签名信息在GET请求中,微信的示例代码签名在XML结构中,Encrypt节点的加解密方式是一样的。

Java要求jdk 1.6及1.6以上 异常java.security.InvalidKeyException:illegal Key Size的解决方案:在官方网站下载JCE无限制权限策略文件(请到官网下载对应的版本, 例如JDK7的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt,如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件;如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

解密后明文详细数据

字段类型是否必须说明
eqidString百度自然优化referer解析参数
xstString百度推广referer解析参数

注:两者不能同时为空

post的明文json数据示例:

{
    "eqid":"xxxxx",
    "xst":"ttttt"
}

将组装好的json内容通过AES加密后POST给一洽: 例如:

335z1XD8BGFyf/fJtn4Uq3cs9vMXrZ8sFgNhqV1WNNc4yJR0qfbUsP07k/Qt9OnWGN+6lsxkr3EdK8uBBGZeoxlRq0asc83zwobB5gAQDVwTvMifY3Pm8HpfIf0cDcv0e9I0AKnwFMRylUBPhDl6OvXz3Xx6Qb3y14oWQunrINI=

6. 返回成功

解析成功后会将关键字返回给开发者,示例:

{
  "errorCode": 0,
  "keyword": "一洽"
}

7. 返回失败

解析失败会返回错误码和错误信息,示例:

{
  "errorCode": 107,
  "errorMsg": "signature validation error"
}

错误码详细定义

返回码说明
0成功
100系统错误
101参数缺失
102解密失败
103解密为空
104未授权
105serverKey错误
106超过配额
107签名错误
108时间戳错误