成 都 狮 龙 书 廊 科 技 有 限 责 任 公 司
Chengdu Shilong Pearson Education technology Limited Liability Technology Group Co., Ltd.
头条号网站验证文件
客服电话:13904310313
公司总机:028-67876373
钉钉客服:17684321066
备案电话:15680712313
商标注册服务电话:15210354365
公安部备案号:22010602000144
google-site-verification: googlea5d4809e7c237a00.html
消息推送服务接入指南
¥100
为提高开发者API接口调用效率,增强数据通信的实时性,抖店开放平台提供主动推送消息服务。基于消息推送服务,只要相关事件发生,就会把对应的消息实时推送到开发者配置的推送地址。 开发者无需通过轮询API来获取店铺数据,仅需在接收到消息后解析即可。使用该种数据对接方式可以大大提高API调用效率,减少双方计算资源的浪费。
目前,抖店开放平台支持订单消息、退款消息以及商品消息的推送,后续更多的消息类型将持续开放订阅。例如物流消息、客服消息等。需要注意的是,若涉及中文字符,必须进行UTF-8转换处理。
当业务场景满足某个消息触发的条件时,抖店开放平台会从业务中台收到该消息,对消息进行处理后,会将消息分发给满足条件的应用。
这些应用必须满足以下条件:
页面上列出来所有已支持的消息事件,开发者可以按需要订阅。详见 消息文档
开发者在消息推送地址指向的本地服务中,通过解析请求头和消息体,可以获取每条消息的具体信息。
消息请求头中的字段 | 参数类型 | 参数描述 |
---|---|---|
event-sign | String | 防伪签名,可通过该字段值判断消息是否伪造 签名生成算法 |
app-id | String | 对应开发者后台的app_key |
MD5加密demo
func GenMsgSign(c *gin.Context) { body,_ := ioutil.ReadAll(c.Request.Body) signParam := "yourAppId" + string(body) + "yourSecret" sign := md5(signParam) // 生成md5 /** ... */ }
MD5加密前的demo:
yourId[{"tag":"xxx","msg_id":"xxxxxx","data":"{\"p_id\":123,\"s_ids\":[123],\"shop_id\":123456,\"status\":5,\"order_status\":5,\"order_type\":0,\"complete_time\":1616410797,\"biz\":2}"}]yourSecret
hmac加密demo:
signParam(同demo) = "yourAppId[{"tag":"xxx","msg_id":"xxxxxx","data":"{\"p_id\":123,\"s_ids\":[123],\"shop_id\":123456,\"status\":5,\"order_status\":5,\"order_type\":0,\"complete_time\":1616410797,\"biz\":2}"}]yourSecret" secret = yourSecret func genHmacSHA256String(secret, signParam string) string { h := hmac.New(sha256.New, []byte(secret)) _, _ = h.Write([]byte(signParam)) return hex.EncodeToString(h.Sum(nil)) }
我们给推送地址推送的消息体是 一个list,list中包含多个对象,开发者可以直接从RequestBody中获取消息体。
[ {"tag":"100","msg_id":"31234597708719700740100000000000015985838476838502441600763400","data":"{\"p_id\":4712345680779753833,\"s_ids\":[4712345680779753833],\"shop_id\":3123451,\"order_status\":0,\"order_type\":0,\"create_time\":1598583234,\"biz\":2}"}, {"tag":"101","msg_id":"31234597708719700740100000000000015234234236838502441600763411","data":"{\"p_id\":4712345680779753833,\"s_ids\":[4712345680779753833],\"shop_id\":3123451,\"order_status\":0,\"order_type\":0,\"create_time\":1598583234,\"biz\":2}"} ]
消息体list对象中的参数名称 | 参数类型 | 参数描述 |
---|---|---|
tag | String | 消息种类 |
msg_id | String | 消息唯一标示id。消息存在重推或重复发送的可能,请开发者做好幂等处理。当前字符串长度是68位,该字段长度存在增加的可能性,建议做好长度兼容,以防止处理异常,建议预留长度100个字符串。 |
data | Struct | 消息体具体数据,详见 消息文档 |
Tips:
1、消息推送记录只保存近7天的数据,7天以前的消息无法查询到,也无法重新推送;
2、消息可能出现偶发无序,对于可能存在资损的地方需要开发者反查订单接口;