超8-SaaS-API开放平台
快速入门
平台介绍
接入指南
获取 AccessToken
基础资料
商品
获取商品详细信息
通过商品编号新增/修改商品信息
(废弃)根据商品编号批量启用禁用商品接口(废弃)
通过商品编号新增/修改商品信息(新)
通过商品编号新增/修改商品信息V3
通过商品编号新增/修改商品信息(批量)V3
通过商品编号删除(批量)V3
通过商品编号禁用(批量)V3
通过商品编号启用(批量)V3
商品分页列表V3
根据商品编号查询(批量)V3
通过商品编号新增/修改商品信息V3(批量)
组织
同步经销商
批量删除经销商
根据编码批量查询经销商
根据查询条件查询全部经销商(并翻页)
根据查询条件统计全部经销商
根据组织id批量查询组织
根据经销商编号批量启用禁用经销商接口
同步门店
替换店长
替换经销商负责人
经销商业务员新增
门店店员新增
基础公共引用
组织相关错误代码
组织类型
防伪体系
防伪开放接口
防伪明细列表查询-定制
防伪明细列表查询-标准
防伪区域查询
防伪综合查询接口
防伪码开放接口-支持验证码校验
长鹏定制防伪开放接口
防伪开放接口V2
溯源体系
生产订单
创建生产订单
删除生产订单
更新生产订单
生产订单详情
创建生产任务单
生产订单数码明细
获取订单列表分页
生产订单列表统计
上传生产文件
离线生产-上传数码
同步生产订单-保存订单
同步生产订单-删除订单
第三方生产数据回传
佳得乐-更新数码的商品信息
物流订单
创建物流订单
删除物流订单
物流订单详情
物流订单扫描明细
根据ID获取物流订单详情
根据订单编号或Id完成订单
修改物流订单
出库单列表分页查询
退入单列表分页查询
库存动态汇总
离线物流-上传数码
离线物流-任务详情
离线物流-数码列表
同步物流订单-保存订单
同步物流订单-删除订单
获取数码实物关联信息
物流订单数码关系数据
过时接口
物流订单状态重置【过时】
执行端完成订单接口【过时】
执行端拉取物流订单【过时】
执行端扫码接口【过时】
执行端删除数码【过时】
执行端取消订单【过时】
通过文件上传物流数据[过时]
上传物流数据[过时]
公共引用
溯源应用平台错误代码
溯源应用平台物流订单类型
溯源应用平台物流业务分类
溯源应用平台物流方式
物流执行服务错误码
物流执行端业务类型
窜货稽查服务错误代码
窜货稽查查询渠道
窜货稽查
查询全部配置
稽查
稽查确认
查询稽查记录
查询稽查历史记录(并翻页)
溯源报表
生产统计报表
入库统计报表
入库扫码报表
数码互查
质检报告开放接口
健合定制接口
查询工厂授权的产品
保存数码查询日志
根据数码查询生产信息
根据数码查询物流信息
流向查询
根据数码查询流向信息
营销体系
会员管理
OPENID自动登录/注册
获取用户信息
营销用户分页列表
营销抽奖
营销用户抽奖
找模板接口
营销中奖数据同步
营销报表
中奖数据报表列表
扫码数据报表列表
积分商城
同步第三方礼品分组数据接口
同步第三方平台礼品数据接口
第三方订单修改状态实时同步接口
发放平台
对外发放平台微信发放
平台活动
保存活动
修改活动基本信息
修改活动礼品 - 修改、新增、删除礼品
删除活动
删除活动礼品
检查是否能删除活动
查询活动分页
查询活动分页 - 包含礼品
查询活动列表
查询活动列表 - 包含礼品
对外发放平台支付单据查询
对外发放平台支付单据查询带gift
对外发放平台礼品列表(分页)
对外发放平台礼品信息获取
采购/充值中商礼品(作废)
取消采购/充值(作废)
根据订单编号获取充值订单(作废)
对外接口库存提取对接提取库存-作废
对外接口根据第三方提取id获取提取状态-作废
采购订单审核(作废)
发放平台接入
营销数据查询
查询外箱码是否参与过活动
附录
错误码说明
行政区划编码表
常见问题
问题1
数码中台
订单中心
新增数码申请下单
根据订单编号获取订单状态
数码使用-绑定
生码下单获取标签列表
IP品控
标签授权接口
标签订单查询接口
取消订单接口
新增标签采购订单接口
摩特项目-查询32位码是否存在接口
数码查询
健合-根据外码查询内码
健合-根据内码查询外码
轻追溯
数码使用
根据数码查询防伪记录
创建出库单
上海中商网络股份有限公司版权所有
-
+
首页
营销中奖数据同步
# 营销中奖数据同步接口 ## 支持场景 > 已支持:第三方活动中奖数据写中商系统 > 前提: > 1. 活动已经预先在中商系统创建 > 2. 目前仅支持积分类的中奖数据 > 3.第三方消费者用户信息同步到中商系统 > 用户标识:weChatOpenId ,mobile > >- 当传递手机号,以手机号作为唯一标识 > >手机号能查到用户,则直接用,并且更新用户的 openid > >手机号查不到用户,则用 openid查,查到用户且手机号为空,则用,并且更新用户的手机号 > > 手机号查不到用户,则用 openid查,查到用户且手机号不为空,则用手机号,创建新的消费者用户 > >第三方调用营销抽奖接口的大致流程: > >第一步:获取ca应用token >/cncop/ca/v1/applications/get-token >第三方:根据ca的token调用接口 >/marketing/open/data-sync/v1/winning-data > > 参阅 [API开放平台接入指南](https://developers.yesno.com.cn/doc/56/) ## API描述 >第三方中奖数据同步写入中商系统 ## 请求信息 >域名:请参阅 [环境信息](https://developers.yesno.com.cn/doc/56/) | 协议 | HTTPS | |----------|--------------------------------------------------------| | 请求方法 | POST | | 请求路径 |/marketing/open/data-sync/v1/winning-data | ## header头 请参阅 [通用请求头](https://developers.yesno.com.cn/doc/56/ "请求头") ### 传入参数 | 参数名称 | 是否必填 | 参数类型 | 参数说明 | |-----------|----------|----------|------------------| | digitCode | 是 | String | 数码 | | decodeVer | 否 | String | 解码版本,默认0 | | activityNo | 是 | String | 活动编号 -- 对应中商活动编号,预先创建| | activityType | 是 | integer | 活动类型(3:营销活动) | | mobile | 是 | String | 手机号 | | userType | 是 | integer | 用户类型:0 消费者(仅支持这个) | | userNickName | 否 | String | 用户显示名(或微信昵称) | | weChatOpenId | 是 | String | 微信openId | | winOrderId | 是 | String | 第三方中奖记录唯一ID(同一个 ID写入多次时忽略请求)| | winTime | 是 | String | 中奖时间北京时间,eg:2024-04-23 11:22:19| | giftType | 是 | Integer | 礼品类型(4:积分)| | giftUnitScore | 是 | BigDecimal | 奖励积分(大于 0 的正整数)| | giftName | 是 | String | 礼品名称 -- 对应中商活动奖项名称,预先创建| | areaCode | 是 | Integer | 区域码 6 位地址编码 | | address | 否 | String | 详细地址 eg:安徽省合肥市蜀山区东至南路常青花园内,姐妹超市(东至路店)东143米| | gps | 否 | String | 扫码人gps ,经度在前逗号分割,eg:117.25180803438855,31.824793472844858| | gpsType | 否 | integer | gps类型:0: bd09ll 百度经纬度坐标,1: bd09mc 百度摩卡托坐标,2: wgs84ll 基础的坐标,3: gcj02ll 国测局加密坐标 国内地图通用坐标类型。如果有GPS入参,那么此参数也要填写 | | ip | 否 | String | 扫码人ip | | sign | 是 | String | 防篡改签名( 1、去掉空参数后根据key以字母a到z的顺序排序; 2、把参数所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串; 3、拼接:&key=秘钥; 4、摘要加密(生成16进制MD5小写模式字符串);)| ### 传出参数 | 参数名称 | 参数类型 | 参数说明 | |-----------|--------------|--------------------------| | code | String | 状态:200 成功 | | message | String | 信息 | | timestamp | Long | 时间戳 | | traceId | String | 追踪id | | data | String(Json) | JsonObject格式,如下描述 | Data返回对象说明 | 参数名称 | 参数类型 | 参数说明 | |-----------------|----------|---------------------------------------------------------------| | winId | integer | 中商中奖记录 ID eg:300000000215801195 | ### Code错误码说明(常见错误码) | 错误代码 | 描述 | |-------------------|-----------------------------------| |200 |同步成功 | |21220009|签名不能为空 | |21220010|签名值无效 | |21220215|第三方中奖记录唯一标识重复 | |21220215|礼品类型无效 | |21220215|奖励积分值无效 | ### Code错误码说明(所有错误码) | 错误代码 | 描述 | |-------------------|-----------------------------------| |200|成功 | |21220001|企业号不能为空 | |21220002|企业号无效 | |21220003|数码不能为空 | |21220004|数码无效 | |21220005|活动id不能为空 | |21220006|活动id值无效 | |21220007|用户id不能为空 | |21220008|用户id值无效 | |21220009|签名不能为空 | |21220010|签名值无效 | |21220011|数码类型不能为空 | |21220012|数码类型无效 | |21220013|数码层级不能为空 | |21220014|数码层级无效 | |21220015|数码是否激活不能为空 | |21220016|产品id无效 | |21220017|标签编号无效 | |21220018|生产批次无效 | |21220019|生码批次无效 | |21220020|物流码无效 | |21220021|数码最后一次流向经销商id无效 | |21220022|数码最后一次流向门店id无效 | |21220023|微信openId无效 | |21220024|gps无效 | |21220025|ip无效 | |21220026|详细地址无效 | |21220027|省code无效 | |21220028|市code无效 | |21220029|区code无效 | |21220030|数码是否激活无效 | |21220031|未找到签名秘钥数据源 | |21220032|签名校验失败 | |21220033|语言类型不能为空 | |21220034|语言类型无效 | |21220035|未找到运算符数据源 | |21220036|未找到基础维度数据源 | |21220037|未找到维度规则数据源 | |21220038|未找到维度规则配置数据源 | |21220039|数码未激活 | |21220040|活动信息不存在 | |21220041|活动未开始 | |21220042|活动已结束 | |21220043|活动未上线 | |21220044|未找到活动对象 | |21220045|不满足参与活动对象 | |21220046|活动用户标签数据为空 | |21220047|活动包装层级数据为空 | |21220048|当前数码层级不允许参与活动 | |21220049|活动数码类型数据为空 | |21220050|当前数码类型不允许参与活动 | |21220051|活动限制参与经销商数据为空 | |21220052|活动参与经销商数据为空 | |21220053|活动参与门店数据为空 | |21220054|当前用户不允许参与活动 | |21220055|活动用户标签数据为空 | |21220056|当前用户标签不满足活动参与用户标签 | |21220057|当前数码不允许参与活动 | |21220058|当前数码流向经销商不允许参与活动 | |21220059|活动限制参与门店数据为空 | |21220060|当前数码没有流向门店不允许参与活动 | |21220061|当前数码流向门店不允许参与活动 | |21220062|活动对象类型数据为空 | |21220063|用户不存在 | |21220064|用户不可用 | |21220065|用户不可用 | |21220066|操作频繁,请稍后再试 | |21220067|操作频繁,请稍后再试 | |21220068|系统错误,请联系管理员 | |21220069|活动太火爆,请稍后再试 | |21220070|系统错误,请联系管理员 | |21220071|系统错误,请联系管理员 | |21220072|数码已经参与活动,请勿重复参与 | |21220073|数码已经参与活动,请勿重复参与 | |21220074|操作频繁,请稍后再试 | |21220075|未获取到用户活动扫码总次数 | |21220076|未获取到用户活动每月扫码总次数 | |21220077|未获取到用户活动每周扫码总次数 | |21220078|未获取到用户活动每日扫码总次数 | |21220079|未获取到活动规则数据 | |21220080|未获取到参与规则数据 | |21220081|未获取到参与规则计算数据 | |21220082|未获取到维度规则数据 | |21220083|不满足参与规则 | |21220084|未获取到维度规则配置列表数据 | |21220085|未获取到基础维度数据 | |21220086|未获取到运算符数据 | |21220087|执行运算符计算异常 | |21220088|未获取到活动扫码总次数 | |21220089|操作频繁,请稍后再试 | |21220090|未获取到活动中奖总次数 | |21220091|未获取到用户活动中奖总次数 | |21220092|未获取到用户活动每月中奖总次数 | |21220093|未获取到用户活动每周中奖总次数 | |21220094|未获取到用户活动每日中奖总次数 | |21220095|未获取到中奖规则数据 | |21220096|不满足中奖规则,未中奖 | |21220097|未获取到维度规则数据 | |21220098|未获取到中奖规则计算数据 | |21220099|未中奖 | |21220100|未中奖 | |21220101|未获取到活动奖项数据 | |21220102|未获取到活动奖项数据 | |21220103|未中奖 | |21220104|操作频繁,请稍后再试 | |21220105|奖项总数量不正确 | |21220106|未获取到奖项总数量 | |21220107|奖项已中奖数量不正确 | |21220108|未获取到奖项已中奖数量 | |21220109|奖项每日中奖上限总数量不正确 | |21220110|未获取到奖项每日中奖上限总数量 | |21220111|奖项每人中奖上限总数量不正确 | |21220112|未获取到奖项每人中奖上限总数量 | |21220113|中奖规则奖项上限总数量不正确 | |21220114|未获取到中奖规则奖项上限总数量 | |21220115|中奖规则奖项上限已中奖数量不正确 | |21220116|未获取到中奖规则奖项上限已中奖数量 | |21220117|中奖规则奖项每日上限总数量不正确 | |21220118|未获取到中奖规则奖项每日上限总数量 | |21220119|未获取到奖项每日中奖上限已中奖数量 | |21220120|未获取到奖项每人中奖上限已中奖数量 | |21220121|未获取到中奖规则奖项每日已中奖数量 | |21220122|操作频繁,请稍后再试 | |21220123|未中奖 | |21220124|执行奖项规则脚本失败 | |21220125|转换成实体失败 | |21220126|系统错误,请联系管理员 | |21220127|奖品已发完 | |21220128|奖品已发完 | |21220129|系统错误,请联系管理员 | |21220130|未获取到活动每日中奖次数 | |21220131|增加活动扫码总次数失败 | |21220132|增加用户活动扫码总次数失败 | |21220133|增加用户每月扫码总次数失败 | |21220134|增加用户每周扫码总次数失败 | |21220135|增加用户每日扫码总次数失败 | |21220136|增加活动中奖总次数失败 | |21220137|增加用户中奖总次数失败 | |21220138|增加用户每月中奖总次数失败 | |21220139|增加用户每周中奖总次数失败 | |21220140|增加用户每日中奖总次数失败 | |21220141|增加每日中奖次数失败 | |21220142|增加中奖规则奖项上限已中奖数量失败 | |21220143|增加中奖规则奖项每日已中奖数量失败 | |21220144|增加正常奖项已中奖数量失败 | |21220145|增加正常奖项每日中奖上限已中奖数量失败 | |21220146|增加正常奖项每人中奖上限已中奖数量失败 | |21220147|增加普通奖项已中奖数量失败 | |21220148|增加普通奖项每日中奖上限已中奖数量失败 | |21220149|增加普通奖项每人中奖上限已中奖数量失败 | |21220150|操作频繁,请稍后再试 | |21220151|未获取到活动参与记录Id | |21220152|操作频繁,请稍后再试 | |21220153|未获取到活动中奖记录Id | |21220154|操作频繁,请稍后再试 | |21220155|未获取到活动核销码Id | |21220156|增加参与记录id失败 | |21220157|增加中奖记录id失败 | |21220158|新增活动扫码记录失败 | |21220159|新增参与记录失败 | |21220160|新增奖项已使用数量失败 | |21220161|新增中奖规则已使用数量失败 | |21220162|新增中奖记录失败 | |21220163|新增中奖审核记录失败 | |21220164|新增中奖实物记录失败 | |21220165|新增中奖核销记录失败 | |21220166|操作频繁,请稍后再试 | |21220167|操作频繁,请稍后再试 | |21220168|未找到活动信息数据源 | |21220169|操作频繁,请稍后再试 | |21220170|未找到活动奖项数据源 | |21220171|操作频繁,请稍后再试 | |21220172|未找到礼品仓库数据源 | |21220173|未找到礼品仓库数据源 | |21220174|操作频繁,请稍后再试 | |21220175|未找到活动规则数据源 | |21220176|操作频繁,请稍后再试 | |21220177|未找到维度规则数据源 | |21220178|业务类型不能为空 | |21220179|业务类型不正确 | |21220180|增加活动核销码Id失败 | |21220181|操作频繁,请稍后再试 | |21220182|未找到活动mq处理配置数据源 | |21220183|创建表失败 | |21220184|操作频繁,请稍后再试 | |21220185|参数名重复或不支持 | |21220186|用户类型不正确 | |21220187|不满足目标人群 | |21220188|操作频繁,请稍后再试 | |21220189|操作频繁,请稍后再试 | |21220190|奖项礼品已中奖数量不正确 | |21220191|操作频繁,请稍后再试 | |21220192|奖项礼品已中奖金额不正确 | |21220193|新增奖项礼品中奖数据失败 | |21220194|数码是否作废不正确 | |21220195|数码已作废 | |21220196|未获取到锁,请稍后再试 | |21221998|基础维度入参不能为空 | |21221999|活动对象不能为空 | |21221000|参数对象不能为空 | |21125014|参数对象不能为空! | |21125018|语言类型不能为空! | |21125015|企业号不能为空! | |21125019|用户id不能为空! | |21125020|未获取到数码信息,请重新参与活动! | |21125021|数码类型不正确! | |21125022|包装层级不正确! | |21124013|数码激活状态不正确 | |21124014|数码是否作废不正确 | |21125023|获取签名秘钥失败! | - 签名算法实例: ``` JavaScript // 引入 CryptoJS 库进行 MD5 加密 const CryptoJS = require('crypto-js'); // 获取所有 URL 查询参数和请求体参数 let allParams = {}; // 如果是 POST 请求,获取 Body 参数 (仅支持 x-www-form-urlencoded 或 form-data) allParams = JSON.parse(pm.request.body.raw); // 对参数的键进行排序 let sortedKeys = Object.keys(allParams).sort(); // 生成 key=value 的字符串 let paramString = ''; sortedKeys.forEach(function(key, index) { if(key =="sign"){ //不加密 sign 本身,跳过继续判断其它参数 return; } var value = allParams[key]; //跳过空值或者空字符的属性 if(value!=null && String(value).trim() !== ""){ if (index > 0) { paramString += '&'; // 参数之间用 & 连接 } paramString += `${key}=${allParams[key]}`; } }); paramString+="&key=aed263f4ce0b4dccac6c8dc50a93baa1" // 打印生成的 key=value 字符串 console.log("Sorted Parameter String: ", paramString); // 对生成的字符串进行 MD5 加密 let hash = CryptoJS.MD5(paramString).toString(); allParams.sign =hash; pm.request.body.raw = JSON.stringify(allParams); ```
supengpeng
2024年10月22日 14:58
222
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期