数据推送


通过实时或近实时将在易企秀侧产生的业务数据(如表单、访客数据等)推送给企业端,方便企业产品进行二次开发或数据留存。

集成步骤

  1. 开发数据接收程序
  2. 配置推送地址
  3. 配置回调密钥

数据接收程序开发说明

开发一个接口,用于接收推送数据;
重试机制:时间间隔为:20\40\80\160\320 秒,至多推送5次

接口规范

  • 方法类型:POST
  • 接口入参
    参数名 是否必须 参数类型 参数说明
    nonce 必须 String 随机字符串,一般为UUID
    timestamp 必须 Long 当前 UNIX 时间戳,可记录发起 API 请求的时间。例如1529223702
    signature String 请求签名,防止请求数据被篡改,如果需要更高的安全等级,请添加此参数。
    msgEncrypt 必须 JSONARRAY 业务数据加密值,不同业务类型,数据格式不一样,加密方法见下文说明
  • 接口返回值格式
    {
        "code":"200",
        "msg":"xxxx"
    } 
    

业务数据示例

{
    "eventId": "1727sdfcdb3d044DFs965344263dbe89w",
    "currentUrl": "https://hnpicc.eqxiu.cn/gs/ALD661Jr?mixCreationId=21470&embedType=mix",
    "code": "ALD661Jr",
    "corpId": "d727c5cdb3d044f39965344263dbe39e",
    "userIndex": 5497,
    "di": "bbc77f97-35d2-47f6-ab1d-ac190ec7851b",
    "benefitUrl": "",
    "mediaCategroy": "",
    "customerInfo": {
        "thirdUserId": "654448ed1233486d90acb03b87f0ba4c",
        "appIdType": 0,
        "corpId": "d727c5cdb3d044f39965344263dbe39e",
        "headImgUrl": "https://asset.eqxiu.cn/common/default-head-img.png",
        "nickName": "符才伟",
        "openId": "654448ed1233486d90acb03b87f0ba4c",
        "unionId": "xxxxxxx",
        "id": 67903,
        "type": 3,
        "encodeId": "0cf66ffa01f5ea20d2d8247227b1cc8e"
    },
    "ua": {
        "os": "Mac OS X (iPhone)",
        "ip": "10.0.20.10",
        "browser": "Apple WebKit",
        "region":{"province":"四川","country":"中国","city":"成都"},
        "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.16(0x1800103f) NetType/WIFI Language/en",
        "device": "Mobile"
    },
    "type": "hd",
    "title": "海南人保财险2022新年礼",
    "viewDur": 58279,
    "benefitOpen": 0,
    "id": 21470,
    "creationId": 21470,
    "mediaCode": "",
    "status": 2
}

字段说明

字段 类型 说明
eventId String 事件Id,可用与重复校验
corpOpenId String 企业openId【平台使用】
currentUrl String 当前页面地址,访客系统均携带,可以分析自带参数
eventType String 事件类型,查看事件列表
createTime String 事件发生的时间格式如【2021-10-12 20:19:19】
creationId Long 作品ID
type String 作品类型
corpId String 所属企业ID
title String 标题
cover String 作品封面
startTime String 开始时间,格式为 yyyy-mm-dd HH:MM:ss
endTime String 结束时间,格式为 yyyy-mm-dd HH:MM:ss
code String code标识
di String 【作品预览页面事件必传】用户唯一标识,当用户未授权时,不存在customer信息,可根据此字段区分用户
ua Object 浏览器客户端信息,ua对象增加了地域参数,访客相关事件均有
ua.region Object 对IP地址的地域解析,部分IP解析不到可能不存在,或者省市部分值为”-“标识,为部分字段没有解析到
customerInfo Object 访客信息,访客事件才有

加密方法说明

  • timestamp:请求时的当前时间戳

  • nonce:请求时生成的随机字符串,一般为UUID

  • signature:根据timestamp、nonce以及用户(对接方)配置的回调密钥(SignatureKey获取方式见下图)生成的签名,具体方式如下:
    将timestamp、nonce、SignatureKey的值,按字典顺序排序,然后进行sha1加密,加密后生成的16进制字符串即为signature的值。 signature = sha1(sort(timestamp,nonce,SignatureKey))

  • msgEncrypt: 由服务器将要向用户发送的内容,通过下图的EncodingKey加密后生成,具体方式如下:
    msgEncrypt = AES(data,EncodingKey)

  • 解密方式 JAVA示例代码

请求示例

Bash

curl -H "Content-Type: application/json" -d '{"msgEncrypt":"qguoHOFLPNPuUBIMwd+DJXzZzU0npUmwsdNpOthzir8mbql0uPEuBps873GSIc6Z","nonce":"8d1e06d655df433bb8363877ad35fc70","signature":"f6f8b7088037ec7fa06c42965c0efaf8a19f9c14","timestamp":"1625486567366"}' -X POST http://localhost:8080/lottery/mobile

PHP示例代码:

    $encodingKey = '';
    $encryptMsg = '';
    $encryptMsg = base64_decode($encryptMsg);
    $aesKey = base64_decode($encodingKey);
    $method = 'AES-256-CBC';
    $iv = substr($aesKey, 0, 16);
    $decryptMsg = openssl_decrypt($encryptMsg, $method, $aesKey, OPENSSL_RAW_DATA, $iv);
    var_dump($decryptMsg);
    die;

注意

  • 请求方式由form形式改为json形式,已对接的公司保持原请求方式不变,如需改变请求方式,请提前告知对接人,以防对您的业务产生影响。

  • 签名失败问题参考

配置推送地址

参见配置指南

配置回调密钥

EncodingKey为发送内容加解密的key,长度固定43个字符(英文大小写以及数字组成),设置或修改见下图。

常用推送事件

参见公共事件


will 2024年8月14日 17:00 11297 收藏文档