用户接口

5.1 接口规范

5.1.1 协议说明

对接的openAPI接口目前只开放HTTPS方式,所有的消息一律采用POST方式。

Content-Typeapplication/x-www-form-urlencoded
数据格式返回为JSON格式
字符编码UTF-8字符编码
签名算法MD5
签名规则参考鉴权认证

5.1.2 签名规则

参考《鉴权认证》文档。

5.1.3 公共参数

参数名必填类型说明
app_idstring唯一标识接入身份,联系商米数字店铺提供
randomstring随机字符串,由数字和字母组成,长度范围为6-10位
timestampint当前的unix timestamp,精度到秒级,10位数字
signstring 签名信息,详见上文签名规则

5.2 接口列表

接口名称接口
注册用户 /user/register

5.3 接口详情

5.3.1  注册用户

接口描述: 通过本接口调用,实现商米数字平台用户注册 。

请求链接:/user/register

接口版本:v1.0.0

接口参数

参数名称 是否必须 类型 说明 示例
usernamestring商米数字平台商户管理员账户,目前仅支持手机号码。13216886688
country_codeint注册区域:1-国内 2-国外。默认11

返回值: 

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

错误码:

错误码说明
204手机号码已经存在

门店接口

4.1 接口规范

4.1.1 协议说明

对接的openAPI接口目前只开放HTTPS方式,所有的消息一律采用POST方式。

Content-Typeapplication/x-www-form-urlencoded
数据格式返回为JSON格式
字符编码UTF-8字符编码
签名算法MD5
签名规则参考鉴权认证

4.1.2 签名规则

参考《鉴权认证》文档。

4.1.3 公共参数

参数名必填类型说明
app_idstring唯一标识接入身份,联系商米数字店铺提供
randomstring随机字符串,由数字和字母组成,长度范围为6-10位
timestampint当前的unix timestamp,精度到秒级,10位数字
signstring 签名信息,详见上文签名规则

4.2 接口列表

接口名称接口
创建门店 /shop/create
更新门店信息 /shop/update
绑定授权商米门店/shop/bind
解绑商米门店授权 /shop/unbind
启用商米门店/shop/enable
禁用商米门店/shop/disable
获取对接软件创建门店列表/shop/getList
获取对接软件创建门店详情/shop/getInfo
获取对接软件门店绑定状态/shop/getBindInfo
获取商米店铺组织树/shop/getOrgTree

4.3 接口详情

4.3.1 绑定授权商米门店

接口描述: 通过本接口调用,用户可以将第三方对接软件上的某门店与商米数字店铺中的门店进行绑定,绑定之后第三方对接软件可以通过接口对相关门店的数据和设备进行操作

请求链接:/shop/bind

接口参数

参数名称是否必须类型说明
shop_idstring第三方对接软件中门店的标识,对接的软件提供shop_id 与商米数字店铺里的组织编号sunmi_shop_no 具有一一对应关系。
company_idstring第三方对接软件中商户的标识,对接的软件提供商户是门店的上一级组织。
记录商户与门店对应关系,可以据此处理后续商户级别业务,以及商户内跨门店业务。
shop_namestring第三方对接软件中门店的门店名称
company_namestring商户名称
sunmi_shop_nostring商米数字店铺的门店【对接店铺编号】,可在数字店铺【基础管理/组织管理/组织详情】中获取
sunmi_shop_keystring商米数字店铺的门店【对接店铺密钥】,可在数字店铺【基础管理/组织管理/组织详情】中获取
contact_personstring联系人姓名
phonestring联系人电话

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/shop/bind",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "shop_id": "10096",
    "shop_name": "myShop",
    "sunmi_shop_no": "560279010307",
    "sunmi_shop_key": "MG4LJ5ERHUBDMF5XOOU8",
    "company_id": "10000",
    "company_name": "myCompany",
    "contact_person": "LiLei",
    "phone": "13166668888",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

错误列表:

错误编号错误原因
5000数据库错误
5032非法店铺
5041非法对接软件
5042对接软件中的门店已绑定
5043对接商米店铺密钥错误

4.3.2 解绑商米门店授权

接口描述:通过本接口调用,用户可以将SaaS上的某门店与商米数字店铺中的门店解除绑定。

请求链接:/shop/unbind

接口参数

参数名称是否必须类型说明
shop_idstring第三方对接软件中门店的标识,对接的软件提供
company_idstring第三方对接软件中商户的标识,对接的软件提供
sunmi_shop_nostring商米数字店铺的门店【对接店铺编号】

请求示例: 

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/shop/unbind",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "shop_id": "10096",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

错误列表:

错误编号错误原因
5032非法店铺
5041 非法对接软件
5000数据库错误

4.3.3 更新门店信息

接口描述

通过本接口调用,用户可以将第三方对接软件上的店铺信息同步到商米数字店铺。(联系人姓名和电话暂时不支持更改)

请求链接:/shop/update

接口参数

参数名称是否必须类型说明
shop_idstring第三方对接软件中门店的标识,对接的软件提供
sunmi_shop_nostring商米数字店铺的门店【对接店铺编号】
shop_namestring第三方对接软件中门店的门店名称

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/shop/update",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "shop_id": "10096",
    "shop_name": "myShopNew",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

错误列表:

错误编号错误原因
5032非法店铺
5041 非法对接软件
5000数据库错误

4.3.4 创建门店

接口描述

通过本接口调用,第三方对接软件可以在商米数字店铺平台上在指定商户下创建门店。

请求链接:/shop/create

接口参数

参数名称是否必须类型说明
shop_idstring第三方对接软件中门店的标识,对接的软件提供
company_idstring第三方对接软件中商户的标识,对接的软件提供
shop_namestring第三方对接软件中门店的名称
sunmi_company_nostring商米数字店铺平台商户唯一标识,可以通过开放接口company相关接口创建并获取,也可以在商米数字店铺【基础管理/商户管理】页面上获取
sunmi_parent_shop_nostring如果是在当前商户下直接创建门店,不用赋值如果是在其他门店下再创建门店,需要填写其对应的父类门店号默认为空
contact_personstring联系人姓名
phonestring联系人电话
tagint组织类型,1-部门, 0-门店, 默认0

请求示例:  

  'method': 'POST',
  'url': 'http://store.dev.sunmi.com/openapi/shop/create',
  'headers': {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  formData: {
    'app_id': 'APPID6917LTY',
    'timestamp': '1583301592',
    'random': '5dsf6698',
    'sign': '4C0C0516EC44BE0022BE80CED28E2A45',
    'contact_person': 'xs',
    'phone': '18625776019',
    'sunmi_company_no': '476934507308',
    'company_id': '1000',
    'shop_id': '0001',
    'shop_name': 'shop_test'
  }

返回值: 

{
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "sunmi_shop_no": "803743210109"
    }
}

错误列表:

错误编号错误原因
5000数据库错误
5032非法店铺
5033非法sunmi company no
5041 非法对接软件
5042 对接软件的门店已绑定
5444非法的sunmi_parent_shop_no, 应该选择tag=1的门店

4.3.5 获取对接软件创建门店列表

接口描述:通过本接口调用,用户可以获取门店详情信息。

请求链接:/shop/getList

接口参数

参数名称是否必须类型说明示例
sunmi_company_nostring 商米数字店铺平台商户唯一标识 476934507308
page_num否(默认1)int当前页码1
page_size否 (默认10)int当前页条目数量10

请求示例:  

  'method': 'POST',
  'url': 'https://store.uat.sunmi.com/openapi/shop/getList',
  'headers': {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  formData: {
    'app_id': 'APPID6917LTY',
    'timestamp': '1583302143',
    'random': '5dsf6698',
    'sign': '98F0E7619590B36E5BA34B94E815A97C',
    'sunmi_company_no': '476934507308'
  }

返回值: 

{
    "code": 0,     /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "total_count": 1,
        "shop_list": [
            {
                "saas_shop": {
                    "company_id": "1000",
                    "shop_id": "0001",
                    "company_name": "company_test",
                    "shop_name": "shop_test",
                    "contact_person": "xs",
                    "phone": "13813807411",
                    "mail": "",
                    "industry_id": 0,
                    "industry_name": "",
                    "province": "",
                    "city": "",
                    "district": "",
                    "address": "",
                    "format": 0,
                    "status": 1
                },
                "sunmi_shop": {
                    "sunmi_shop_no": "803743210109",
                    "shop_name": "shop_test",
                    "contact_person": "xs",
                    "phone": "13813807411",
                    "mail": "",
                    "industry_id": 0,
                    "industry_name": "",
                    "province": "",
                    "city": "",
                    "district": "",
                    "address": "",
                    "format": 0,
                    "status": 1
                }
            }
        ]
    }
}

错误列表:

错误编号错误原因
5041 非法对接软件
5000数据库错误
5033非法sunmi company no
5020非法参数

4.3.6 获取对接软件创建门店详情

接口描述:通过本接口调用,用户可以获取门店详情信息。

请求链接:/shop/getInfo

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_nostring商米数字店铺平台门店唯一标识803743210109

请求示例:  

  'method': 'POST',
  'url': 'https://store.uat.sunmi.com/openapi/shop/getInfo',
  'headers': {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  formData: {
    'app_id': 'APPID6917LTY',
    'timestamp': '1583302480',
    'random': '5dsf6698',
    'sign': 'FF37DC3C9563263BB97528AF0E065C9D',
    'sunmi_shop_no': '803743210109 '
  }

返回值: 

{
    "data": {
        "saas_shop": {
            "company_id": "1000",
            "shop_id": "0001",
            "company_name": "company_test",
            "shop_name": "shop_test",
            "contact_person": "xs",
            "phone": "13813807411",
            "mail": "",
            "industry_id": 0,
            "industry_name": "",
            "province": "",
            "city": "",
            "district": "",
            "address": "",
            "format": 0,
            "status": 1
        },
        "sunmi_shop": {
            "sunmi_shop_no": "803743210109",
            "shop_name": "shop_test",
            "contact_person": "xs",
            "phone": "13813807411",
            "mail": "",
            "industry_id": 0,
            "industry_name": "",
            "province": "",
            "city": "",
            "district": "",
            "address": "",
            "format": 0,
            "status": 1
        }
    }
}

错误列表:

错误编号错误原因
5041非法对接软件
5000数据库错误
5032非法店铺

4.3.7 获取对接软件门店绑定状态

接口描述:通过本接口调用,用户可以查看saas店铺绑定商米店铺的状态。

请求链接:/shop/getBindInfo

接口参数

参数名称是否必须类型说明
shop_idstring第三方对接软件中门店的标识,对接的软件提供

请求示例:  

  'method': 'POST',
  'url': 'https://store.uat.sunmi.com/openapi/shop/getBindInfo',
  'headers': {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  formData: {
    'app_id': 'APPID6917LTY',
    'timestamp': '1583302789',
    'random': '5dsf6698',
    'sign': '8F889204B0600F25A4C121E6FF16D0D8',
    'shop_id': '0001'
  }

已经绑定商米店铺返回值: 

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "status": 1,   /*已绑定状态*/
        "bound_info": {
            "company_id": "1000",
            "shop_id": "0001",
            "sunmi_company_no": "476934507308",
            "sunmi_shop_no": "803743210109"
        }
    }
}

未绑定商米店铺返回值: 

{
    "code": 0,     /* 其他错误参考错误列表 */
    "msg": "succeed"
    "data": {
        "status": 2,  /*未绑定状态*/
        "bound_info": {
            "company_id": "",
            "shop_id": "",
            "sunmi_company_no": "",
            "sunmi_shop_no": ""
        }
    }
}

返回字段描述:status

status说明
1已绑定商米店铺
2未绑定任何商米店铺

返回字段描述: bound_info

参数名称说明
shop_id对接软件中门店标识
company_id对接软件中商户标识
sunmi_shop_no商米数字店铺中对应门店标识

错误列表:

错误编号错误原因
5032非法店铺
5041非法对接软件
5000数据库错误

4.3.8 获取商米店铺组织树

接口描述:通过本接口调用,用户可以获取数字店铺店铺列表,以树形结构返回。

请求链接:/shop/getOrgTree

接口版本:v2.0

接口参数

参数名称是否必须类型说明
sunmi_company_nostring商米数字店铺的商户【对接商户编号】
sunmi_shop_nostring商米数字店铺的店铺【对接店铺编号】
不填表示获取商户下所有组织,
填表示获取对应店铺下的组织。

请求示例

'method': 'POST',
   'url': 'https://store.uat.sunmi.com/openapi/shop/getOrgTree',
   'headers': {
     'Content-Type': 'application/x-www-form-urlencoded'
   },
   formData: {
     'app_id': 'APPID6917LTY',
     'timestamp': '1583302789',
     'random': '5dsf6698',
     'sign': '8F889204B0600F25A4C121E6FF16D0D8',
     'sunmi_company_no': '560279010307',
     'sunmi_shop_no': '4529018395'
   }

返回值

{
    "data": {
        "shop_list": [
            {
                "shop_name": "网咖111",
                "sunmi_shop_no": "474358470706",
                "sunmi_parent_shop_no": "",
                "tag": 0,
                "status": 1,
                "children": [
                    {
                        "shop_name": "网咖222",
                        "sunmi_shop_no": "474358470708",
                        "sunmi_parent_shop_no": "474358470706",
                        "tag": 0,
                        "status": 1,
                        "children": []
                    }
                ]
            },
            {
                "shop_name": "sdfsdf",
                "sunmi_shop_no": "474358470707",
                "sunmi_parent_shop_no": "",
                "tag": 0,
                "status": 1,
                "children": []
            }
        ]
    },
    "code": 0,
    "msg": "succeed"
}

返回字段描述:

字段描述
tag组织类型 1-部门, 0-门店
status门店状态 1-启用, 2-停用

错误列表:

错误编号错误原因
5000数据库错误
5041非法对接软件
5033非法sunmi company no
5904商户未授权
5905内部调用远端接店铺中心口出错

4.3.9 启用店铺

接口描述:通过本接口调用,用户可以启用一个店铺,与禁用店铺相对。

请求链接:/shop/enable

接口版本:v2.0

接口参数

参数名称是否必须类型说明
sunmi_shop_nostring商米数字店铺的店铺【对接店铺编号】

请求示例

'method': 'POST',
   'url': 'https://store.uat.sunmi.com/openapi/shop/enable',
   'headers': {
     'Content-Type': 'application/x-www-form-urlencoded'
   },
   formData: {
     'app_id': 'APPID6917LTY',
     'timestamp': '1583302789',
     'random': '5dsf6698',
     'sign': '8F889204B0600F25A4C121E6FF16D0D8',
     'sunmi_shop_no': '4529018395'
   }

返回值

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

错误列表:

错误编号错误原因
5000数据库错误
5013非法SaaS厂商
5032非法店铺
5039查询结果超过1条
5041非法对接软件

4.3.10 禁用店铺

接口描述:通过本接口调用,用户可以禁用一个店铺,与启用店铺相对。

请求链接:/shop/disable

接口版本:v2.0

接口参数

参数名称是否必须类型说明
sunmi_shop_nostring商米数字店铺的店铺【对接店铺编号】

请求示例

'method': 'POST',
   'url': 'https://store.uat.sunmi.com/openapi/shop/disable',
   'headers': {
     'Content-Type': 'application/x-www-form-urlencoded'
   },
   formData: {
     'app_id': 'APPID6917LTY',
     'timestamp': '1583302789',
     'random': '5dsf6698',
     'sign': '8F889204B0600F25A4C121E6FF16D0D8',
     'sunmi_shop_no': '4529018395'
   }

返回值

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

错误列表:

错误编号错误原因
5000数据库错误
5013非法SaaS厂商
5032非法店铺
5039查询结果超过1条
5041非法对接软件

商户接口

3.1 接口规范

3.1.1 协议说明

对接的openAPI接口目前只开放HTTPS方式,所有的消息一律采用POST方式。

Content-Typeapplication/x-www-form-urlencoded
数据格式返回为JSON格式
字符编码UTF-8字符编码
签名算法MD5
签名规则参考鉴权认证

3.1.2 签名规则

参考《鉴权认证》文档。

3.1.3 公共参数

参数名必填类型说明
app_idstring唯一标识接入身份,联系商米数字店铺提供
randomstring随机字符串,由数字和字母组成,长度范围为6-10位
timestampint当前的unix timestamp,精度到秒级,10位数字
signstring 签名信息,详见上文签名规则

3.2 接口列表

接口名称接口
创建商户 /company/create
获取对接软件创建商户列表 /company/getList
获取对接软件创建商户详情 /company/getInfo
绑定授权商米商户/company/bind
解绑商米商户授权/company/unbind

3.3 接口详情

3.3.1 创建商户

接口描述:通过本接口调用,用户可以在商米数字店铺平台上创建一个商户组织,在之后的操作中,可以在该商户下创建多级门店进行管理。

请求链接:/company/create

接口参数

参数名称是否必须类型说明示例
usernamestring商户管理员账户,目前仅支持手机号码,该手机号需要已经在商米数字店铺进行过注册,或者通过用户管理接口/user/register生成初始用户(参考《用户管理》文档)18625776000
company_idstring第三方对接软件中商户的标识,对接的软件提供商户是门店的上一级组织。COM39208
company_namestring商户名称company_test
contact_personstring联系人姓名xs
phonestring联系人电话 13813807411
mailstring联系邮箱lei.li@outlook.com

请求示例:  

  'method': 'POST',
  'url': 'https://store.uat.sunmi.com/openapi/company/create',
  'headers': {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  formData: {
    'app_id': 'APPID6917LTY',
    'timestamp': '1583299191',
    'random': '5dsf6698',
    'sign': 'A9D0BA14993A3222E7C7FB860D0C51A1',
    'company_name': 'company_test',
    'contact_person': 'xs',
    'phone': '13813807411',
    'username': '18625776000'
  }

返回值: 

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "sunmi_company_no": "476934507308"
    }
}

错误列表:

错误编号错误原因
5010管理员用户不存在
5000数据库错误
5041非法SaaS厂商
5035商户名字已存在
5082rpc call fail

3.3.2  获取对接软件创建商户列表

接口描述:通过本接口调用,saas合作方可以查看指定用户通过开放接口在商米数字店铺平台上创建的商户列表。

请求链接:/company/getList

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
usernamestring商户管理员账户,目前仅支持手机号码,该手机号需要已经在商米数字店铺进行过注册,或者通过用户管理接口/user/create生成初试用户和密码(暂未开放)18625776000
page_num否(默认1)int当前页码1
page_size否 (默认10)int当前页条目数量10

请求示例:  

  'method': 'POST',
  'url': 'https://store.uat.sunmi.com/openapi/company/getList',
  'headers': {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  formData: {
    'app_id': 'APPID6917LTY',
    'timestamp': '1583299623',
    'random': '5dsf6698',
    'sign': 'EDA422052152701EC2579F97BF068D18',
    'username': '18625776000'
  }

返回值: 

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "total_count": 3,
        "company_list": [
            {
                "sunmi_company_no": "476934507308",
                "username": "18625776000",
                "company_name": "company_test",
                "contact_person": "xs",
                "contact_tel": "13813807411",
                "contact_email": ""
            },
            {
                "sunmi_company_no": "476934506958",
                "username": "18625776000",
                "company_name": "xs_test_01",
                "contact_person": "xs",
                "contact_tel": "13813807411",
                "contact_email": ""
            },
            {
                "sunmi_company_no": "476934506957",
                "username": "18625776000",
                "company_name": "xs_test_02",
                "contact_person": "xs",
                "contact_tel": "13813807411",
                "contact_email": ""
            }
        ]
    }
}

错误列表:

错误编号错误原因
5000数据库错误
5041 非法对接软件

3.3.3 获取对接软件创建商户详情

接口描述: 通过本接口调用,第三方对接软件可以查看已授权的商户详情。

请求链接:/company/getInfo

接口参数

参数名称是否必须类型说明示例
sunmi_company_nostring商米数字店铺平台商户唯一编码476934507308

请求示例:  

  'method': 'POST',
  'url': 'https://store.uat.sunmi.com/openapi/company/getInfo',
  'headers': {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  formData: {
    'app_id': 'APPID6917LTY',
    'timestamp': '1583300101',
    'random': '5dsf6698',
    'sign': 'F59845336C9492CE61BF63AA8F84B609',
    'sunmi_company_no': '476934507308'
  }

返回值: 

{
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "sunmi_company_no": "476934507308",
        "username": "18625776000",
        "company_name": "company_test",
        "contact_person": "xs",
        "contact_tel": "13813807411",
        "contact_email": ""
    }
}

错误列表:

错误编号错误原因
5000数据库错误
5033非法sunmi company no
5041 非法对接软件

3.3.4 绑定授权商米商户

接口描述:通过本接口调用,用户可以将第三方对接软件上的某商户与商米数字店铺中的商户进行绑定。

请求链接:/company/bind

接口版本:v2.0

接口参数

参数名称是否必须类型说明
company_idstring第三方对接软件中商户的标识,对接的软件提供商户是门店的上一级组织。
记录商户与门店对应关系,可以据此处理后续商户级别业务,以及商户内跨门店业务。
sunmi_company_nostring商米数字店铺的商户【对接商户编号】,可在数字店铺【**/**/**】中获取
sunmi_company_keystring商米数字店铺的商户【对接商户密钥】,可在数字店铺【**/**/**】中获取
company_namestring商户名称
contact_personstring联系人姓名
phonestring联系人电话
mailstring联系人邮箱

请求示例

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/company/bind",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "company_id": "10000",
    "sunmi_company_no": "560279010307",
    "sunmi_company_key": "MG4LJ5ERHUBDMF5XOOU8",
    "company_name": "myCompany",
    "contact_person": "LiLei",
    "phone": "13166668888",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

错误列表:

错误编号错误原因
5000数据库错误
5033非法sunmi company no
5041非法对接软件
5042对接软件中的商户已绑定
5043对接商米店铺密钥错误

3.3.5 解绑商米商户授权

接口描述:通过本接口调用,用户可以将SaaS上的某商户与商米数字店铺中的商户解除绑定授权。

请求链接:/company/unbind

接口版本:v2.0

接口参数

参数名称是否必须类型说明
company_idstring第三方对接软件中商户的标识,对接的软件提供商户是门店的上一级组织。
sunmi_company_nostring商米数字店铺的商户【对接商户编号】

请求示例

'method': 'POST',
   'url': 'https://store.uat.sunmi.com/openapi/company/unbind',
   'headers': {
     'Content-Type': 'application/x-www-form-urlencoded'
   },
   formData: {
     'app_id': 'APPID6917LTY',
     'timestamp': '1583302789',
     'random': '5dsf6698',
     'sign': '8F889204B0600F25A4C121E6FF16D0D8',
     'company_id': '1673',
     'sunmi_company_no': '560279010307'
   }

返回值

{
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

错误列表:

错误编号错误原因
5000数据库错误
5033非法sunmi company no
5041非法对接软件
5906未找到绑定记录

升级异常的固件恢复方法

1. 概述

本文指导用户通过线下手动升级的方式,恢复升级异常的固件。

2. 获取升级固件

请务必从商米售前获取对应型号摄像头的升级固件 ,否则出现升级异常概不负责。

目前商米有的IPC摄像头有两款,分别是

  1. AI识客摄像机,英文名Face Sense Camera,简称FS,目前的型号是FM020。
  2. 智能看店摄像机,英文名Store Sense Camera,简称SS,目前的型号是FM010。

3. 升级规则

  1. 不同机型之间系统固件不能互相升级,例如FS和SS之间不能升级,所以请务必根据自己的机型来获取对应的正式环境固件。
  2. 固件本身有自己的签名机制和升级校验方法,所以请务必从商米处获取固件,切勿随便从第三方获取固件。

4. 详细流程

4.1 拷贝固件到TF卡

  1. 将TF卡插入电脑,执行格式化操作,文件系统设置为exfat,卷标设置为SUNMI-XXXX(其中XXXX为摄像头MAC地址最后四位,摄像头MAC地址见机身背面标贴)。 注:卷标SUNMI-XXXX中的-为英文半角符号,非中文全角符号;XXXX中的字母为大写。
  2. 进入TF卡目录,将从商米处 (详见2. 获取升级固件)获取到的升级固件解压后拷贝到根目录下,并把固件重命名为up.bin

4.2 升级固件

  1. 将带有固件的TF卡重新插入摄像头的TF卡槽中。
  2. 重新上电摄像头。
  3. 等待10秒左右,直到设备亮红灯,则说明正在固件升级 。
  4. 升级需要一些时间,再耐心等待1min左右,直到重新亮绿灯说明设备开始重启,当设备再次闪烁绿灯或者亮蓝灯说明设备已经重启完毕。

4.3 进行首配

  1. 重启后,长按设备上的Reset按键5秒以上进行恢复出厂设置。
  2. 恢复出厂重启后,使用正式环境的商米APP,按照《用户指南》手册中的软件配置指引完成摄像头的首次配置。
  3. 首配完成后,使用商米助手APP或登录正式环境的WEB服务网站https://store.sunmi.com 将设备固件更新到最新版本
  4. 记得删除原来SD卡中的up.bin文件,避免不必要的意外升级。

操作日志

1 基本描述

SaaS合作方可以通过商米数字店铺开放平台获取到业务操作日志

2 接口规范

2.1 协议说明

对接的接口目前只开放HTTPS方式推送消息,所有的消息一律采用POST方式。

Content-Typeapplication/x-www-form-urlencoded
数据格式返回为JSON格式
字符编码UTF-8字符编码
签名算法MD5
签名规则参考2.2 签名规则

2.2 签名规则

参考《鉴权认证》文档。

2.3 公共参数

参数名必填类型说明
app_idstring唯一标识接入身份,联系商米数字店铺提供
randomstring随机字符串,由数字和字母组成,长度范围为6-10位
timestampint当前的unix timestamp,精度到秒级,10位数字
signstring签名信息,详见2.2

3 店铺设计规范

参考《商户店铺》文档。

4 操作日志接口

4.1 操作日志业务范围

操作功能操作内容操作行为
巡店抓拍配置(商户级业务)新建
修改(包含开启/关闭)
删除
巡店模板配置(商户级业务)新建
修改 (包含 开启/关闭 )
删除
巡店巡店计划配置(商户级业务) 新建
删除
  • 备注:使用商户级别业务需要先进行商户级别的商户店铺体系对接

4.2 接口列表

接口名称接口描述
/log/operation/company/getList(待上线)获取操作日志列表

4.3 接口详情

4.3.1 获取商户级操作日志列表(待上线)

接口描述:通过本接口调用,用户可以获取指定商户或者店铺下,指定时间范围内的操作日志列表

请求链接:/log/operation/company/getList

接口版本:v2.0

接口参数:

参数名称是否必须类型说明示例
sunmi_company_nostring商米数字店铺平台商户唯一编号 560279010307
start_timestring 查询开始时间, Unix时间戳,秒级别 1578969264
end_timestring 查询结束时间, Unix时间戳,秒级别 1579055640
page_num 否 (默认1) 当前页 1
page_size 否  (默认10) 当前页条目数量 10
  • 备注:查询时间范围为90天

请求示例:

"method": "POST",
"url": "https://store.uat.sunmi.com/openapi/log/operation/company/getList",
"headers": {
  "Content-Type": "application/x-www-form-urlencoded"
},
formData: {
  "sunmi_company_no": "560279010307",
  "app_id": "LMWWQVTW4QGCC",
  "timestamp": 1581383983,
  "random": "5dsf6698",
  "sign": "33C18A18282733A71F998BB5A5E4319D"
  "start_time": "1581333970",
  "end_time": "1581363970",
}

返回值:

{
	"data": {
		"total_count": 4,
		"operate_list": [{
				"operate_event": "patrol",
				"operate_event_detail": "patrol.cronjob.update",
				"operate_source": "app",
				"operate_time": 1604375860,
				"operate_payload": {
					"params": {
						"active_status": 1,
						"cronjob_id": 2255,
						"cronjob_name": "45345435",
						"cronjob_type": 2,
						"device_id_list": [
							3634,
							2319
						],
						"period_type": 1,
						"sub_job_list": [{
								"end_time": 0,
								"start_time": 57480,
								"time_duration": 15,
								"time_slot": 0
							},
							{
								"end_time": 0,
								"start_time": 57540,
								"time_duration": 5,
								"time_slot": 0
							}
						],
						"week_day_list": []
					},
					"result": "success"
				}
			},
			{
				"operate_event": "patrol",
				"operate_event_detail": "patrol.cronjob.create",
				"operate_source": "app",
				"operate_time": 1604375899,
				"operate_payload": {
					"params": {
						"cronjob_name": "sd",
						"cronjob_type": 1,
						"device_id_list": [
							2256
						],
						"period_type": 1,
						"sub_job_list": [{
							"end_time": 42840,
							"start_time": 46380,
							"time_slot": 900
						}],
						"week_day_list": []
					},
					"result": "success"
				}
			},
			{
				"operate_event": "patrol",
				"operate_event_detail": "patrol.cronjob.delete",
				"operate_source": "app",
				"operate_time": 1604382092,
				"operate_payload": {
					"params": {
						"job_id_list": [
							2255
						]
					},
					"result": "success"
				}
			},
			{
				"operate_event": "patrol",
				"operate_event_detail": "patrol.cronjob.delete",
				"operate_source": "app",
				"operate_time": 1604392539,
				"operate_payload": {
					"params": {
						"job_id_list": [
							2257
						]
					},
					"result": "success"
				}
			}
		]
	},
	"code": 0,
	"msg": "succeed"
}
  • 备注,相关枚举值如有需要详见具体业务

返回参数说明:

参数说明
operate_list操作列表
operate_event操作事件
operate_event_detail操作详情
operate_source操作来源
operate_time操作时间
operate_payload操作内容
result操作结果

operate_event:

取值说明
patrol巡店业务

operate_event_detail:

取值说明
patrol.cronjob.create创建定时任务
patrol.cronjob.update更新定时任务(包括开启关闭)
patrol.cronjob.delete删除定时任务
patrol.plan.create创建巡店计划
patrol.plan.delete删除巡店计划
patrol.template.create创建考评模板
patrol.template.update更新考评模板 (包括开启关闭)
patrol.template.delete删除考评模板

operate_source:

取值说明
app商米助手
websunmi store页面
mgt商米后端管理平台
openapiopenapi接口调用

错误码:

错误码说明
5041商户组织参数错误
5000数据库错误

增值服务-巡店服务 接口

1 概述

为了方便Saas合作伙伴可以直接在其平台上使用商米提供的巡店服务业务数据,平台提供了巡店统计数据接口。Saas合作伙伴可以通过接口调用获取巡店业务的统计数据。

2 接口规范

2.1 协议说明

对接的openAPI接口目前只开放HTTPS方式,所有的消息一律采用POST方式。

注:消息体大小不得超过1M,超过1M的请求,直接拒绝!

Content-Typeapplication/x-www-form-urlencoded
数据格式返回为JSON格式
字符编码UTF-8字符编码
签名算法MD5
签名规则参考2.2 签名规则

2.2 签名规则

参考《鉴权认证》文档。

2.3 公共参数

参数名必填类型说明
app_idstring唯一标识接入身份,联系商米数字店铺提供
randomstring随机字符串,由数字和字母组成,长度范围为6-10位
timestampint当前的unix timestamp,精度到秒级,10位数字
signstring签名信息,详见2.2

3 巡店数据统计接口

3.1 接口描述

巡店数据统计接口用于Saas合作方获取巡店服务的各种数据统计。

3.2 接口列表

接口名称接口描述
/service/patrol/stat/groupByInspector获取巡检人巡查工作情况统计
/service/patrol/stat/groupByShop 获取门店下巡查工作数据统计
/service/patrol/stat/groupByTemplate获取模板使用情况数据统计
/service/patrol/stat/groupByCheckItem获取模板-检查项使用情况数据统计

3.3 接口详情

3.3.1 获取巡检人巡查工作数据统计

接口描述:通过本接口调用,可以获取到指定门店下基于巡检人统计的巡检人工作数据统计

接口链接:/service/patrol/stat/groupByInspector

接口版本:v2.0

接口参数:

参数名称是否必须类型说明示例
sunmi_shop_no string店铺编号560279010307
periodint统计周期1

period参数说明:

参数取值说明
1近7天数据统计
2近30天数据统计
3近90天数据统计
4近180天数据统计
5近365天数据统计

请求示例:

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/service/patrol/stat/groupByInspector",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值:

{
    "data": {
        "patrol_inspector_summary_list": [
            {
                "inspection_user_name": "小明",
                "plan_task_undone_count": 0,
                "plan_task_done_count": 7,
                "plan_task_doing_count": 0,
                "plan_task_total_count": 28,
                "check_total_count": 349,
                "check_done_count": 2,
                "total_time_duration": 295645,
                "task_normal_count": 7,
                "task_non_count": 1602,
                "task_total_count": 1609,
                "task_realtime_count": 699,
                "task_snapshot_count": 523,
                "task_evaluate_count": 40,
                "last_inspection_time": 1600867095
            },
            {
                "inspection_user_name": "xiaohong",
                "plan_task_undone_count": 0,
                "plan_task_done_count": 3,
                "plan_task_doing_count": 0,
                "plan_task_total_count": 12,
                "check_total_count": 9,
                "check_done_count": 4,
                "total_time_duration": 2101,
                "task_normal_count": 3,
                "task_non_count": 81,
                "task_total_count": 84,
                "task_realtime_count": 26,
                "task_snapshot_count": 42,
                "task_evaluate_count": 7,
                "last_inspection_time": 1599535469
            },
            {
                "inspection_user_name": "kunkun",
                "plan_task_undone_count": 0,
                "plan_task_done_count": 0,
                "plan_task_doing_count": 0,
                "plan_task_total_count": 0,
                "check_total_count": 0,
                "check_done_count": 0,
                "total_time_duration": 21,
                "task_normal_count": 0,
                "task_non_count": 2,
                "task_total_count": 2,
                "task_realtime_count": 0,
                "task_snapshot_count": 0,
                "task_evaluate_count": 2,
                "last_inspection_time": 1597661382
            },
            {
                "inspection_user_name": "小白",
                "plan_task_undone_count": 0,
                "plan_task_done_count": 0,
                "plan_task_doing_count": 0,
                "plan_task_total_count": 0,
                "check_total_count": 14,
                "check_done_count": 0,
                "total_time_duration": 13994,
                "task_normal_count": 0,
                "task_non_count": 48,
                "task_total_count": 48,
                "task_realtime_count": 0,
                "task_snapshot_count": 0,
                "task_evaluate_count": 48,
                "last_inspection_time": 1599542974
            }
        ]
    },
    "code": 0,
    "msg": "succeed"
}

返回参数说明:

参数名类型说明
inspection_user_namestring巡检人姓名
plan_task_undone_countint计划任务过期未执行数
plan_task_done_countint计划任务已完成数
plan_task_doing_count int计划任务待执行数
plan_task_total_count int计划任务总数
check_total_countint应审核问题总数
check_done_countint 审核完成数
total_time_durationint 巡检时长(秒)
task_normal_countint任务巡店次数
task_non_countint非任务巡店次数
task_total_countint巡店总次数
task_realtime_countint实时巡店次数
task_snapshot_countint抓拍巡店次数
task_evaluate_countint门店考评次数
last_inspection_timeint最后一次巡检时间(秒)

错误码:

错误码说明
5041 请求中未找到shop_id参数

3.3.2 获取门店下巡查工作数据统计

接口描述:通过本接口调用,可以获取到指定门店下基于门店统计的巡检工作数据统计

接口链接: /service/patrol/stat/groupByShop

接口版本:v2.0

接口参数:

参数名称是否必须类型说明示例
sunmi_shop_no string店铺编号列表560279010307
periodint统计周期1

period参数:

参数取值说明
1近7天数据统计
2近30天数据统计
3近90天数据统计
4近180天数据统计
5近365天数据统计

请求示例:

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/service/patrol/stat/groupByShop",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值:

{
    "data": {
        "patrol_shop_summary_list": [
            {
                "check_total_count": 0,
                "scoreless_total_count": 0,
                "avg_score": 5.58,
                "rectify_count": 438,
                "rectify_done_count": 398,
                "realtime_need_count": 393,
                "realtime_total_count": 777,
                "snapshot_problem_count": 286,
                "snapshot_total_count": 645,
                "evaluate_need_count": 45,
                "evaluate_total_count": 126
            }
        ]
    },
    "code": 0,
    "msg": "succeed"
}

返回参数说明:

参数名类型说明
check_total_countint考评检查项总数
scoreless_total_countint有问题检查项数
avg_scorefloat考评得分,百分制
rectify_countint应整改问题数
rectify_done_countint整改完成数
realtime_need_countint 实时巡店需整改数
realtime_total_countint 实时巡店总次数
snapshot_problem_countint抓拍巡检有问题数
snapshot_total_countint抓拍巡检总次数
evaluate_need_countint门店考评需整改数
evaluate_total_countint门店考评总次数

错误码:

错误码说明
5041 请求中未找到shop_id参数

3.3.3 获取模板使用情况数据统计

接口描述: 通过本接口调用,可以获取到指定门店下基于门店统计的巡检工作数据统计

接口链接: /service/patrol/stat/groupByTemplate

接口版本:v2.0

接口参数:

参数名称是否必须类型说明示例
sunmi_shop_no string店铺编号列表560279010307
periodint统计周期1

period参数说明:

参数取值说明
1近7天数据统计
2近30天数据统计
3近90天数据统计
4近180天数据统计
5近365天数据统计

请求示例:

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/service/patrol/stat/groupByTemplate",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值:

{
    "data": {
        "patrol_template_summary_list": [
            {
                "template_id": "549755813846",
                "template_name": "你好世界",
                "total_score": 3925,
                "total_full_score": 5240,
                "total_count": 126
            }
        ]
    },
    "code": 0,
    "msg": "succeed"
}
参数名类型说明
template_idint模板id
template_namestring模板名称
total_scoreint门店下模板累计得分
total_full_scoreint 门店下模板累计总分
total_countint总共使用次数

错误码:

错误码说明
5041 请求中未找到shop_id参数

3.3.4 获取模板-检查项使用情况数据统计

接口描述: 通过本接口调用,可以获取到指定门店下基于模板统计的巡检工作数据统计

接口链接: /service/patrol/stat/groupByCheckItem

接口版本:v2.0

接口参数:

参数名称是否必须类型说明示例
sunmi_shop_no string店铺编号列表560279010307
periodint统计周期1

period参数说明:

参数取值说明
1近7天数据统计
2近30天数据统计
3近90天数据统计
4近180天数据统计
5近365天数据统计

请求示例:

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/service/patrol/stat/groupByCheckItem",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值:

{
    "data": {
        "patrol_check_item_summary_list": [
            {
                "template_id": "549755813846",
                "check_item_name": "1",
                "check_score_count": 9,
                "check_total_count": 12
            },
            {
                "template_id": "549755813846",
                "check_item_name": "2dada方式方法将老豆腐江东父老的肌肤豆腐煎豆腐",
                "check_score_count": 1,
                "check_total_count": 1
            },
            {
                "template_id": "549755813846",
                "check_item_name": "调料归类正确",
                "check_score_count": 3,
                "check_total_count": 5
            },
            {
                "template_id": "549755813846",
                "check_item_name": "食品归类正确",
                "check_score_count": 4,
                "check_total_count": 5
            },
            {
                "template_id": "549755813846",
                "check_item_name": "食品细菌含量未超标",
                "check_score_count": 3,
                "check_total_count": 5
            },
            {
                "template_id": "549755813846",
                "check_item_name": "食材未过期",
                "check_score_count": 5,
                "check_total_count": 5
            },
            {
                "template_id": "549755813846",
                "check_item_name": "食材清洗干净",
                "check_score_count": 4,
                "check_total_count": 5
            }
        ]
    },
    "code": 0,
    "msg": "succeed"
}

返回参数说明:

参数名类型说明
template_idint模板id
check_item_namestring检查项名称
check_score_countint检查得分次数
check_total_countint 检查次数

错误码:

错误码说明
5041 请求中未找到shop_id参数

IPC 云端openAPI接口

1 背景介绍

商米数字店铺(SUNMI Store)是商米提供的围绕商户店铺中物联网设备基础上的店铺管理系统。

商米数字店铺作为一个开放平台,支持与第三方SaaS厂商进行各种数据的对接,包括商品信息对接,交易信息对接,会员体系对接等。

2 接口规范

2.1 协议说明

对接的openAPI接口目前只开放HTTPS方式,所有的消息一律采用POST方式。

注:消息体大小不得超过1M,超过1M的请求,直接拒绝!

Content-Typeapplication/x-www-form-urlencoded
数据格式返回为JSON格式
字符编码UTF-8字符编码
签名算法MD5
签名规则参考2.2 签名规则


2.2 签名规则

参考《鉴权认证》文档

2.3 公共参数

参数名必填类型说明示例
app_idstring唯一标识接入身份,联系商米数字店铺提供 LMWWQVTW4QGCC
randomstring随机字符串,由数字和字母组成,长度范围为6-10位 5dsf6698
timestampint当前的unix timestamp,精度到秒级,10位数字 1581333970
signstring签名信息,详见3.2.2 2E7CED3164B6BBDB81145F3CBE204597

3 店铺设计规范

参考 《商米数字店铺开放平台 -> 店铺绑定》

智能摄像机对接示范

6.1 店铺对齐

请参考《商米数字店铺开放平台 – > 商户店铺》 章节将用户在商米数字店铺上创建的门店与Saas合作伙伴平台上的同一家门店绑定对齐,之后的所有操作都是基于该门店内的设备和数据进行

6.2 设备配网

如果您的设备是通过有线连入互联网,则可以跳过该步骤。

如果您的设备通过无线网络连入互联网,请按照以下步骤使用android SDK进行配网。(对于其它操作系统或者设备,您也可以直接调用设备API进行配网)

如果设备上的蓝灯常亮,表明设备联网成功。

如果设备上显示为绿灯,则说明网络连接异常。

6.3 设备绑定

6.3.1 接口绑定

IPC设备连入网络后,调用设备绑定接口 /device/ipc/bind 将设备绑定到指定店铺内。

请求示例

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/device/ipc/bind",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "ipc_sn": "C201D8BS00089",
    "mac":"0C25766F5705",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1578972864,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

6.3.2 store页面绑定

通过下载商米助手,打开商米助手app页面,输入对应账号密码登录到已经对齐的门店下面。
到对应店铺下点击设备,添加设备,选择设备类型,这时接通摄像机电源,电源接通后,等待约20秒,摄像机指示灯呈[绿灯闪烁]后,点击下一步。

选择网络连接方式,有线网络连接和无线网路连接两种方式:
(1)有线网络连接需要为摄像机插入网线,并将手机连接至同一网络后点击下一步,待摄像机信号灯呈[蓝色常亮]状态后,点击下一步,找到对应的ipc设备即可绑定。
(2)无线网络连接需要将手机连接至摄像机得无线网络[SUNMI_XXXX](可以在机身或包装盒上找到),点击下一步,找到对应得ipc设备即可绑定。

添加成功之后,用户可以在手机和web上看到新添加的ipc设备。

6.4 设备配置

6.4.1 接口修改调焦(开发中)

在设备绑定之后,用户可以调用接口修改设备的调焦。

6.4.2 store页面设置进店划线

对于FS摄像机,用户需要首先设置进店划线。
打开商米助手app,输入账号密码进入对应门店,点击设备,然后点击屏幕右上角三个小点的图标进入摄像机设置,该页面点击调整画面。
这时画面会提示”请安排人员面向摄像机,站在需要识别人脸的位置”,然后点击屏幕右上角下一步,提示”调整画面大小并移动人脸框的位置,使人脸刚好填充整个人脸框”,这时相机会自动调整画面,然后提示”为保证识别精准性,您还可以移动已设置好的进店门槛线位置或拖拽门槛线端点更改门槛线的长度”,这是您可以手动在手机屏幕上划线来设置进店门槛的位置,然后点击完成即可。

6.5 查看直播

接口列表

详情可查看第7章直播回放接口

接口名称接口描述
/media/live/start开始远程直播
/media/live/stop结束远程直播
/media/playback/start开始远程回放 (开发中)
/media/playback/stop结束远程回放 (开发中)
/media/video/getList获取回放视频列表
/media/motionDetection/getList获取动态侦测视频列表
/media/playback/getSnapshot获取指定时间的监控图片
/media/live/getSnapshot获取实时监控图片

6.6 客流统计

接口列表

详情可查看第6章人流统计接口

接口名称接口描述
/passengerFlow/stat/today/getLatest获取当日实时人流量(实时总人流量)
/passengerFlow/stat/today/groupByTag获取当日人流统计信息(按照年龄以及生熟客人脸分组)
/passengerFlow/stat/today/groupByGender获取当日人流统计信息(按照年龄以及性别分组)
/passengerFlow/stat/today/getTrendByHour获取当日人流变化趋势(人流总数,时间粒度为小时)
/passengerFlow/stat/history/groupByTag获取历史人流统计信息(人流总数/生熟客/会员)
/passengerFlow/stat/history/groupByGender获取历史客群详情(年龄以及性别)
/passengerFlow/stat/history/getTrendByHour获取历史人流变化趋势(人流总数/生熟客,时间粒度为小时)
/passengerFlow/stat/history/getTrendByDay获取历史人流变化趋势(人流总数/生熟客,时间粒度为天)
/passengerFlow/stat/history/getTrendByWeek获取历史人流变化趋势(人流总数/生熟客,时间粒度为周)(开发中)
/passengerFlow/stat/history/getTrendByMonth获取历史人流变化趋势(人流总数/生熟客,时间粒度为月)(开发中)

6.7 实时获取进店 FaceID

请参考《商米数字店铺开放平台 – > 消息中心》 章节用户需要先添加消息监听地址, 用户将自己平台的相关HTTP地址添加到商米数字开放平台,并提供需要监听的设备以及 IPC实时获取人员消息事件就可以实时获取进店FaceID。

6.7.1 增加消息监听

接口描述: 通过本接口调用,用户可以增加消息监听的HTTP回调地址。 用户将自己平台的相关HTTP地址通过该接口添加到商米数字开放平台;并提供需要监听的设备以及事件。当商米数字开放平台收到该设备的该事件时,会调用该HTTP接口。
对于该回调HTTP回调的鉴权方式,遵照商米数字店铺开放平台的鉴权方式。
回调HTTP需要带以下接口参数:

参数名称是否必须类型说明
sunmi_shop_nostring商米数字店铺的门店唯一标识,由商米数字店铺生成
shop_id string SaaS对接店铺标识,SaaS厂商提供
event int触发消息的类型
payload string 消息的具体格式(根据消息不同会有不同的json)

请求链接: /hook/add

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no

string 商米数字店铺平台门店唯一编号(v2.0之后为必填项)


100939070408
shop_id string 店铺在SaaS软件体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 15220
http_callback string HTTPS回调地址链接 http://xxxxxxxx/api/testHook
event_list array[int] 需要监听的事件的列表 [2001]

请求示例:

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/hook/add",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "100939070408",
    "http_callback": "http://xxxxxxxx/api/testHook",
    "event_list": [2001],
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1578972864,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值:

{
    code:0,       /* 其他错误参考错误列表 */
    msg: "succeed",
    data: {}               
}

字段描述: event

event 取值说明
2001IPC实时获取人员消息


payload(event=2001):

{
    ipc_id: "928",
    face_id: "29195",
    gender: 1,
    age_range: 4,
    group_id: "8927",
    group_name: "stranger",
    group_type": 2
}

返回字段描述 : gender

gender取值说明
0未知
1
2

字段描述 : age_range

age_range取值说明
10~6岁
27~12岁
313~18岁
419~28岁
529~35岁
636~45岁
746~55岁
856~ 岁

返回字段描述: group_type

group_type取值说明
1生客人脸库
2熟客人脸库
3店员人脸库
5自定义人脸库

直播回放接口

5.1 接口描述

直播回放接口是用来查看实时和历史视频数据的接口。

5.2 接口列表

接口名称接口描述
/media/live/start开始远程直播
/media/live/stop结束远程直播
/media/playback/start开始远程回放
/media/playback/stop结束远程回放
/media/video/getList获取回放视频列表
/media/motionDetection/getList获取动态侦测视频列表
/media/playback/getSnapshot获取指定时间的监控图片
/media/live/getSnapshot获取实时监控图片

5.3 接口详情

5.3.1 开始远程直播

接口描述:通过本接口调用,用户可以开始远程直播。

请求链接:/media/live/start

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可 10087
ipc_idstring摄像机设备唯一ID 摄像机SN(与ipc_sn必出现其一, 若同时输入,必须一致 )549755805835
ipc_snstring 摄像机SN(与ipc_id必出现其一, 若同时输入,必须一致 ) C101P98200023
resolutionint分辨率0

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/media/live/start",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "ipc_id": "549755805835",
    "resolution": 0,
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0, /* 其他错误参考错误列表 */
    "msg": "succeed"
    "data": {
        "url": "https://xxxxxxxx/C101P98200023/1219130724381102080.flv?auth_key=1579501989-729716105000265001016467621435-0-",
        "hls_url": "https://xxxxxxxx/C101P98200023/1219130724381102080.m3u8?auth_key=1579501989-729716105000265001016467621435-0-"
    }
}

字段描述:resolution

resolution 取值说明
0超清
1高清

错误码:

错误码说明
5000数据库错误
5011与设备通讯错误
5013未找到数据
5041请求中未找到shop_id参数
5501ipc设备不存在
5510设备未绑定

5.3.2 结束直播

接口描述:通过本接口调用,用户可以结束远程直播。

请求链接:/media/live/stop

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 10087
ipc_idstring摄像机设备唯一ID 摄像机SN(与ipc_sn必出现其一, 若同时输入,必须一致 549755805835
ipc_snstring 摄像机SN(与ipc_id必出现其一, 若同时输入,必须一致 ) C101P98200023
resolutionint分辨率0

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/media/live/stop",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "ipc_id": "549755805835",
    "resolution": 0,
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

字段描述:resolution

resolution 取值说明
0超清
1高清

错误码:

错误码说明
5000数据库错误
5013未找到数据
5011与设备通讯错误
5041请求中未找到shop_id参数
5501ipc设备不存在
5510设备未绑定

5.3.4 获取回放视频列表

接口描述:通过本接口调用,用户可以获取回放视频列表。

请求链接:/media/video/getList

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstringSaaS对接店铺标识,SaaS厂商提供10087
ipc_idstring摄像机设备唯一ID 摄像机SN(与ipc_sn必出现其一, 若同时输入,必须一致 ) 549755805835
ipc_snstring 摄像机SN(与ipc_id必出现其一, 若同时输入,必须一致 ) C101P98200023
start_timeint开始查询时间,Unix时间戳,秒级别1578969264
end_timeint结束查询时间,Unix时间戳,秒级别1578972864

备注:

start_time与end_time时间区间限制为3600s

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/media/video/getList",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "ipc_id": "549755805835",
    "start_time": 1578969264,
    "end_time": 1578969264,
    "timestamp": 1578972864,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0, /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
	"total_count": 1,
	"video_list": [{
            "ipc_id": "549755812970",
	    "url": "http: //xxxxxxxx/VIDEO/IPC/SS101D8BS00087/39C1045AF2EA34B0CEA528FB228C8EDA",
	    "start_time": 1551854897,
	    "end_time": 1551854958
	}]
	}
}

错误码:

错误码说明
5000数据库错误
5013未找到数据
5021非法参数(时间区间超限)
5041请求中未找到shop_id参数

5.3.5 获取动态侦测视频列表

接口描述:通过本接口调用,用户可以获取回放视频列表。

请求链接:/media/motionDetection/getList

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no stirng 商米数字店铺平台唯一编号(v2.0之后为必填项)100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 10087
ipc_idstring摄像机设备唯一ID 摄像机SN(与ipc_sn必出现其一, 若同时输入,必须一致 )549755805835
ipc_snstring 摄像机SN(与ipc_id必出现其一, 若同时输入,必须一致 ) C101P98200023
start_timeint开始查询时间,Unix时间戳,秒级别1578969264
end_timeint结束查询时间,Unix时间戳,秒级别1579055640
page_num否(默认1)int当前页码1
page_size否(默认10)int当前页条目数量 (最大条目数量为100)10

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/media/motionDetection/getList",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "ipc_id": "549755805835",
    "start_time": 1578969264,
    "end_time": 1579055640,
    "timestamp": 1578972864,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{   
    "code": 0, /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
	"total_num": 1,
	"video_list": [{
            "source": "1",
	    "detect_time": 1551854897,
	    "url": "http: //xxxxxxxx/VIDEO/IPC/SS101D8BS00087/39C1045AF2EA34B0CEA528FB228C8EDA"
	}]
    }
}

字段描述:source

source 取值说明
1画面
2声音
3声音和画面

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

5.3.6 获取指定时间的监控图片

接口描述:通过本接口调用,用户可以获取指定时间的监控图片。

请求链接:/media/playback/getSnapshot

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 15220
ipc_idstring摄像机设备唯一ID 摄像机SN(与ipc_sn必出现其一, 若同时输入,必须一致 )549755812970
ipc_snstring 摄像机SN(与ipc_id必出现其一, 若同时输入,必须一致 ) C101P98200023
timeint截图时间,Unix时间戳,秒级别1579055640

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/media/playback/getSnapshot",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "ipc_id": "549755805835",
    "time": 1579055640,
    "timestamp": 1578972864,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "snapshot_url":"http://xxxxxxxx/VIDEO/IPC/SS101D8BS00087/39C1045AF2EA34B0CEA528FB228C8EDA"
    }
}

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

5.3.7 获取实时监控图片

接口描述:通过本接口调用,用户可以获取实时监控图片, 图片有效期为一天。

请求链接:/media/live/getSnapshot

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项 )100939020409
shop_idstring
店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可)
10087
ipc_idstring摄像机设备唯一ID 摄像机SN(与ipc_sn必出现其一, 若同时输入,必须一致 )549755805835
ipc_snstring 摄像机SN(与ipc_id必出现其一, 若同时输入,必须一致 ) C101P98200023

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/media/live/getSnapshot",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "ipc_id": "549755805835",
    "timestamp": 1578972864,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data":{  
        "snapshot_url":"http://xxxxxxxx/VIDEO/IPC/SS101D8BS00087/39C1045AF2EA34B0CEA528FB228C8EDA"
    }
}

错误码:

错误码说明
5000数据库错误
5011与设备端通讯错误
5013未找到数据
5041请求中未找到shop_id参数
5501ipc设备不存在
5510设备未绑定
5515超出截图时常


5.3.8
开始远程回放

接口描述: 通过本接口调用,用户可以开始远程回放。

请求链接: /media/playback/start

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 10087
ipc_idstring摄像机设备唯一ID 摄像机SN(与ipc_sn必出现其一, 若同时输入,必须一致 )549755805835
ipc_snstring 摄像机SN(与ipc_id必出现其一, 若同时输入,必须一致) C101P98200023
start_timeint开始查询时间,Unix时间戳,秒级别1578969264
end_timeint结束查询时间,Unix时间戳,秒级别1579055640

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/media/playback/start",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "ipc_id": "549755805835",
    "start_time": 1578969264,
    "end_time": 1579055640,
    "timestamp": 1578972864,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "url": "https://xxxxxxxx/SAAS-OpenAPI_1211497245552152576/1577092646.flv?auth_key=1577096246-57626095498907571693914212321441-0-",
        "hls_url": "https://xxxxxxxx/SAAS-OpenAPI_1211497245552152576/1577092646.m3u8?auth_key=1577096246-57626095498907571693914212321441-0-",
        "client_id": "SAAS-OpenAPI_1211497245552152576"
    }
}

错误码:

错误码说明
5021 非法参数(时间区间超限)
5041 请求中未找到shop_id参数
5087 无匹配数据
5088数据库错误
5506未查询到数据


5.3.9
结束远程回放

接口描述: 通过本接口调用,用户可以开始远程回放。

请求链接: /media/playback/stop

接口参数

参数名称是否必须类型说明示例
client_id string 用户client id SAAS-OpenAPI_1211497245552152576

请求示例

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/media/playback/stop",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "client_id": "SAAS-OpenAPI_1211497245552152576",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1578972864,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {}
}

错误码:

错误码说明
5020 无效参数

人流统计接口

4.1 接口描述

人流统计接口是用来查询智能摄像机所监控和存储的人流信息和历史记录。目前分为三种统计维度:历史人流统计信息(T+1),当日人流统计信息(T+0),实时人流信息。

其中T+1和T+0的统计信息由HTTP接口提供,SaaS合作方可以通过发起请求获得结果,当日统计信息更新频率为15s内,实时人流信息通过消息推送获取,具体参考 《消息推送中心》文档

4.2 接口列表

接口名称接口描述
/passengerFlow/stat/today/getLatest获取当日实时人流量(实时总人流量)
/passengerFlow/stat/today/groupByTag获取当日人流统计信息(按照年龄以及生熟客人脸分组)
/passengerFlow/stat/today/groupByGender获取当日人流统计信息(按照年龄以及性别分组)
/passengerFlow/stat/today/getTrendByHour获取当日人流变化趋势(人流总数,时间粒度为小时)
/passengerFlow/stat/history/groupByTag获取历史人流统计信息(人流总数/生熟客/会员)
/passengerFlow/stat/history/groupByGender获取历史客群详情(年龄以及性别)
/passengerFlow/stat/history/getTrendByHour获取历史人流变化趋势(人流总数/生熟客,时间粒度为小时)
/passengerFlow/stat/history/getTrendByDay获取历史人流变化趋势(人流总数/生熟客,时间粒度为天)
/passengerFlow/stat/history/getTrendByWeek获取历史人流变化趋势(人流总数/生熟客,时间粒度为周)(开发中)
/passengerFlow/stat/history/getTrendByMonth获取历史人流变化趋势(人流总数/生熟客,时间粒度为月)(开发中)
/passengerFlow/stat/history/person/frequency/getList 获取顾客到店频率分布统计数据

4.3 接口详情

4.3.1 获取当日实时人流量

接口描述:通过本接口调用,用户可以获取当日的人流统计。

请求链接:/passengerFlow/stat/today/getLatest

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 7948

请求示例

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/passengerFlow/stat/today/getLatest",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "code": 0, /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "total_count": 123, /* 已捕捉到有效人脸数量 */ (原count字段)
        "unexposed_count": 0, /* 未捕捉到有效人脸数量 */
        "pass_count": 110 /* 过店客流数量 */
    }
}

备注:
total_count字段:    摄像机识别到进店人员,同时识别出相应的faceID,具体包含生客,熟客和会员等
unexposed_count字段:摄像机识别到进店人员,但是未能识别出相应的faceID,只能记录为进店人次
pass_count字段:     摄像机识别到人员在门口经过,没有进店

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.2 获取当日人流统计信息(按照生熟客人脸分组以及年龄范围)

接口描述:通过本接口调用,用户可以获取当日各个年龄段生熟客人流统计

请求链接:/passengerFlow/stat/today/groupByTag

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 7948

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/passengerFlow/stat/today/groupByTag",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "data": {
        "count_list": [
            {
                "age_range": 1,
                "stranger_count": 0, /* 生客数量 */ 
                "regular_count": 0, /* 熟客数量 */ 
                "member_count": 0  /* 会员数量 */ 
            },
            {
                "age_range": 2,
                "stranger_count": 0,
                "regular_count": 0,
                "member_count": 0
            },
            {
                "age_range": 3,
                "stranger_count": 0,
                "regular_count": 0,
                "member_count": 0
            },
            {
                "age_range": 4,
                "stranger_count": 0,
                "regular_count": 0,
                "member_count": 0
            },
            {
                "age_range": 5,
                "stranger_count": 0,
                "regular_count": 0,
                "member_count": 0
            },
            {
                "age_range": 6,
                "stranger_count": 0,
                "regular_count": 0,
                "member_count": 0
            },
            {
                "age_range": 7,
                "stranger_count": 0,
                "regular_count": 0,
                "member_count": 0
            },
            {
                "age_range": 8,
                "stranger_count": 0,
                "regular_count": 0,
                "member_count": 0
            }
        ]
    },
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed"
}

字段描述:age_range

age_range 取值说明
10~6岁
27~12岁
313~18岁
419~28岁
529~35岁
636~45岁
746~55岁
856~ 岁

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.3 获取当日人流统计信息(按照性别年龄)

请求链接:/passengerFlow/stat/today/groupByGender

接口描述:通过本接口调用,用户可以获取当日各个年龄段不同性别的人流统计

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 7948

请求示例

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/passengerFlow/stat/today/groupByGender",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "data": {
        "count_list": [
            {
                "age_range": 1,
                "male_count": 0, /* 男性总数  */
                "male_regular_count": 0, /* 男性熟客数量 */
                "male_member_count": 0, /* 男性会员数量 */
                "female_count": 0, /* 女性总数  */
                "female_regular_count": 0, /* 女性熟客数量 */
                "female_member_count": 0 /* 女性会员数量  */
            },
            {
                "age_range": 2,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0
            },
            {
                "age_range": 3,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0
            },
            {
                "age_range": 4,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0
            },
            {
                "age_range": 5,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0
            },
            {
                "age_range": 6,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0
            },
            {
                "age_range": 7,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0
            },
            {
                "age_range": 8,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0
            }
        ]
    },
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed"
}

字段描述:age_range

age_range 取值说明
10~6岁
27~12岁
313~18岁
419~28岁
529~35岁
636~45岁
746~55岁
856~ 岁

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.4 获取当日人流变化趋势(人流总数,时间粒度为小时)

请求链接:/passengerFlow/stat/today/getTrendByHour

接口描述:通过本接口调用,用户可以获取当日各个时间段的人流统计

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可)7948

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/passengerFlow/stat/today/getTrendByHour",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "data": {
        "count_list": [
            {
                "time": "2020-02-11 00:00",
                "total_count": 0, /* 已捕捉到有效人脸数量 */
                "pass_count": 110, /* 过店客流数量 */
                "unexposed_count": 0 /* 未捕捉到有效人脸数量 */
            },
            {
                "time": "2020-02-11 01:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 02:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 03:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 04:00",
                "total_count": 0,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 05:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 06:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 07:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 08:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 09:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 10:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 11:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 12:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 13:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 14:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 15:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-02-11 16:00",
                "total_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            }
        ]
    },
    "code": 0, /* 其他错误参考错误列表 */
    "msg": "succeed",
}

备注:
total_count字段:    摄像机识别到进店人员,同时识别出相应的faceID,具体包含生客,熟客和会员等
unexposed_count字段:摄像机识别到进店人员,但是未能识别出相应的faceID,只能记录为进店人次
pass_count字段:     摄像机识别到人员在门口经过,没有进店

字段描述:age_range

age_range 取值说明
10~6岁
27~12岁
313~18岁
419~28岁
529~35岁
636~45岁
746~55岁
856~ 岁

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.5 获取历史人流统计信息(总数/生熟客/会员)

接口描述:通过本接口调用,用户可以获取历史数据中三个主要人脸分组的人流统计

请求链接:/passengerFlow/stat/history/groupByTag

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 7948
start_timestring筛选开始时间 “YYYY-MM-DD” (如果需要查询某一天,开始和结束时间相同)2020-01-01
end_timestring筛选结束时间 “YYYY-MM-DD” (如果需要查询某一天,开始和结束时间相同)2020-01-16

备注:

每次接口调用, 开始时间和结束时间的区间限制为30天

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/passengerFlow/stat/history/groupByTag",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "start_time": "2020-01-01",
    "end_time": "2020-01-16",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "data": {
        "total_count": 0,   /* 已捕捉到有效人脸数量(人次) */
        "regular_count": 0,   /* 熟客数量(人次) */
        "stranger_count": 0,   /* 生客数量(人次) */
        "member_count": 0,   /* 会员数量(人次)  */
        "uniq_total_count": 0,   /* 已捕捉到有效人脸数量(去重) */
        "uniq_regular_count": 0,   /* 熟客数量(去重) */
        "uniq_stranger_count": 0,   /* 生客数量(去重) */
        "uniq_member_count": 0,   /* 会员数量(去重) */
      
        "pass_count": 110,   /* 过店客流数量*/
        "unexposed_count": 0 /* 未捕捉到有效人脸数量 */
    },
    "code": 0,   /* 其他错误参考错误列表 */
    "msg": "succeed"
}

备注:

total_count字段:    摄像机识别到进店人员,同时识别出相应的faceID,具体包含生客,熟客和会员等
unexposed_count字段:摄像机识别到进店人员,但是未能识别出相应的faceID,只能记录为进店人次
pass_count字段:     摄像机识别到人员在门口经过,没有进店

对于unexposed_count和pass_count, 无法获取faceID并进行去重

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.6 获取历史客群详情(按照年龄性别) 

请求链接:/passengerFlow/stat/history/groupByGender

接口描述:通过本接口调用,用户可以获取当日各个年龄段不同性别的人流统计

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 7948
start_timestring筛选开始时间 “YYYY-MM-DD” (如果需要查询某一天,开始和结束时间相同) 2020-01-01
end_time string筛选结束时间 “YYYY-MM-DD” (如果需要查询某一天,开始和结束时间相同) 2020-01-01

备注:

每次接口调用, 开始时间和结束时间的区间限制为30天

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/passengerFlow/stat/history/groupByGender",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "start_time": "2020-01-01",
    "end_time": "2020-01-01",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "data": {
        "count_list": [
            {
                "age_range": 1,
                "male_count": 0, /* 男性总数(人次)  */
                "male_regular_count": 0, /* 男性熟客数量(人次) */
                "male_member_count": 0, /* 男性会员数量(人次) */
                "female_count": 0, /* 女性总数(人次)  */
                "female_regular_count": 0, /* 女性熟客数量(人次) */
                "female_member_count": 0, /* 女性会员数量(人次)  */
                "uniq_male_count": 0, /* 男性总数(去重) */
                "uniq_male_regular_count": 0, /* 男性熟客数量(去重) */
                "uniq_male_member_count": 0, /* 男性会员数量(去重) */
                "uniq_female_count": 0, /* 女性总数(去重) */
                "uniq_female_regular_count": 0, /* 女性熟客数量(去重) */
                "uniq_female_member_count": 0 /* 女性会员数量(去重) */
            },
            {
                "age_range": 2,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0,
                "uniq_male_count": 0,
                "uniq_male_regular_count": 0,
                "uniq_male_member_count": 0,
                "uniq_female_count": 0,
                "uniq_female_regular_count": 0,
                "uniq_female_member_count": 0
            },
            {
                "age_range": 3,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0,
                "uniq_male_count": 0,
                "uniq_male_regular_count": 0,
                "uniq_male_member_count": 0,
                "uniq_female_count": 0,
                "uniq_female_regular_count": 0,
                "uniq_female_member_count": 0
            },
            {
                "age_range": 4,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0,
                "uniq_male_count": 0,
                "uniq_male_regular_count": 0,
                "uniq_male_member_count": 0,
                "uniq_female_count": 0,
                "uniq_female_regular_count": 0,
                "uniq_female_member_count": 0
            },
            {
                "age_range": 5,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0,
                "uniq_male_count": 0,
                "uniq_male_regular_count": 0,
                "uniq_male_member_count": 0,
                "uniq_female_count": 0,
                "uniq_female_regular_count": 0,
                "uniq_female_member_count": 0
            },
            {
                "age_range": 6,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0,
                "uniq_male_count": 0,
                "uniq_male_regular_count": 0,
                "uniq_male_member_count": 0,
                "uniq_female_count": 0,
                "uniq_female_regular_count": 0,
                "uniq_female_member_count": 0
            },
            {
                "age_range": 7,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0,
                "uniq_male_count": 0,
                "uniq_male_regular_count": 0,
                "uniq_male_member_count": 0,
                "uniq_female_count": 0,
                "uniq_female_regular_count": 0,
                "uniq_female_member_count": 0
            },
            {
                "age_range": 8,
                "male_count": 0,
                "male_regular_count": 0,
                "male_member_count": 0,
                "female_count": 0,
                "female_regular_count": 0,
                "female_member_count": 0,
                "uniq_male_count": 0,
                "uniq_male_regular_count": 0,
                "uniq_male_member_count": 0,
                "uniq_female_count": 0,
                "uniq_female_regular_count": 0,
                "uniq_female_member_count": 0
            }
        ]
    },
    "code": 0,  /* 其他错误参考错误列表 */
    "msg": "succeed"
}

字段描述:age_range

age_range 取值说明
10~6岁
27~12岁
313~18岁
419~28岁
529~35岁
636~45岁
746~55岁
856~ 岁

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.7 获取历史人流变化趋势(总数/生熟客,时间粒度为小时)

请求链接:/passengerFlow/stat/history/getTrendByHour

接口描述:通过本接口调用,用户可以获取一段时间内的人流变化趋势

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no stirng 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939020409
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可)7948
start_timestring筛选开始时间 “YYYY-MM-DD” (如果需要查询某一天,开始和结束时间相同) 2020-01-01
end_time string筛选结束时间 “YYYY-MM-DD” (如果需要查询某一天,开始和结束时间相同) 2020-01-01

备注:

每次接口调用, 开始时间和结束时间的区间限制为24小时

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/passengerFlow/stat/history/getTrendByHour",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "start_time": "2020-01-01",
    "end_time": "2020-01-01",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "data": {
        "count_list": [
            {
                "time": "2019-12-01 0:00",
                "total_count": 0, /* 已捕捉到有效人脸数量(人次) */
                "regular_count": 0, /* 熟客数量(人次) */
                "stranger_count": 0, /* 生客数量(人次) */
                "member_count": 0, /* 会员数量(人次) */
                "uniq_total_count": 0, /* 已捕捉到有效人脸数量(去重)*/
                "uniq_regular_count": 0, /* 熟客数量(去重)*/
                "uniq_stranger_count": 0, /* 生客数量(去重)*/
                "uniq_member_count": 0, /* 会员数量(去重)*/
                "pass_count": 110,  /* 过店客流数量 */
                "unexposed_count": 0 /* 未捕捉到有效人脸数量 */
            },
            {
                "time": "2019-12-01 1:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 2:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 3:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 4:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 5:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 6:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 7:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 8:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 9:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 10:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 11:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 12:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 13:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 14:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 15:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 16:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 17:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 18:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 19:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 20:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 21:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 22:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2019-12-01 23:00",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            }
        ]
    },
    "code": 0, /* 其他错误参考错误列表 */
    "msg": "succeed"
}

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.8 获取历史人流变化趋势(总数/生熟客,时间粒度为天)

请求链接:/passengerFlow/stat/history/getTrendByDay

接口描述:通过本接口调用,用户可以获取一段时间内的人流变化趋势

接口版本:v2.0

接口参数

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号(v2.0之后为必填项) 100939070408
shop_idstring 店铺在SaaS体系下的唯一标识(此参数为后向兼容v2.0之前版本的字段,在v2.0及以后版本使用sunmi_shop_no替代,作为门店唯一标识即可) 15220
start_timestring筛选开始时间 “YYYY-MM-DD” 2020-01-01
end_time string筛选结束时间 “YYYY-MM-DD” 2020-01-03

备注:

每次接口调用, 开始时间和结束时间的区间限制为30天

请求示例:  

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/passengerFlow/stat/history/getTrendByDay",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "start_time": "2020-01-01",
    "end_time": "2020-01-03",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值: 

{
    "data": {
        "count_list": [
            {
                "time": "2020-01-01",
                "total_count": 0, /* 已捕捉到有效人脸数量(人次) */
                "regular_count": 0, /* 熟客数量(人次) */
                "stranger_count": 0, /* 生客数量(人次) */
                "member_count": 0, /* 会员数量(人次) */
                "uniq_total_count": 0, /* 已捕捉到有效人脸数量(去重)*/
                "uniq_regular_count": 0, /* 熟客数量(去重)*/
                "uniq_stranger_count": 0, /* 生客数量(去重)*/
                "uniq_member_count": 0, /* 会员数量(去重)*/
                "pass_count": 110,  /* 过店客流数量 */
                "unexposed_count": 0 /* 未捕捉到有效人脸数量 */
            },
            {
                "time": "2020-01-02",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            },
            {
                "time": "2020-01-03",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0,
                "uniq_total_count": 0,
                "uniq_regular_count": 0,
                "uniq_stranger_count": 0,
                "uniq_member_count": 0,
                "pass_count": 110,
                "unexposed_count": 0
            }
        ]
    },
    "code": 0, /* 其他错误参考错误列表 */
    "msg": "succeed"
}

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.9 获取历史人流变化趋势(总数/生熟客,时间粒度为周)(开发中)

请求链接:/passengerFlow/stat/history/getTrendByWeek

接口描述:通过本接口调用,用户可以获取一段时间内的人流变化趋势

接口参数

参数名称是否必须类型说明
shop_idstringSaaS对接店铺标识,SaaS厂商提供
start_timestring筛选开始时间 “YYYY-MM-DD”
end_time string筛选结束时间 “YYYY-MM-DD”

备注:

每次接口调用, 开始时间和结束时间的区间限制为12周

返回值: 

{
    "code": 0, /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "count_list": [
            {
                "time": "2019-09-11",
                "total_count": 0, /* 总数 */
                "regular_count": 0, /* 熟客数量 */
                "stranger_count": 0, /* 生客数量 */
                "member_count": 0 /* 会员数量 */
            },
            {
                "time": "2019-09-11",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0
            }
        ]
    }
}

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.10 获取历史人流变化趋势(总数/生熟客,时间粒度为月)(开发中)

请求链接:/passengerFlow/stat/history/getTrendByMonth

接口描述:通过本接口调用,用户可以获取一段时间内的人流变化趋势

接口参数

参数名称是否必须类型说明
shop_idstringSaaS对接店铺标识,SaaS厂商提供
start_timestring筛选开始时间 “YYYY-MM-DD”
end_time string筛选结束时间 “YYYY-MM-DD”

备注:

每次接口调用, 开始时间和结束时间的区间限制为12个月

返回值: 

{
    "code": 0, /* 其他错误参考错误列表 */
    "msg": "succeed",
    "data": {
        "count_list": [
            {
                "time": "2019-01",
                "total_count": 0, /* 总数 */
                "regular_count": 0, /* 熟客数量 */
                "stranger_count": 0, /* 生客数量 */
                "member_count": 0 /* 会员数量 */
            },
            {
                "time": "2019-12",
                "total_count": 0,
                "regular_count": 0,
                "stranger_count": 0,
                "member_count": 0
            }
        ]
    }
}

错误码:

错误码说明
5000数据库错误
5013未找到数据
5041请求中未找到shop_id参数

4.3.11 获取顾客到店频率分布统计数据

接口描述:通过本接口调用,用户可以获取顾客到店频率分布情况

请求链接: /passengerFlow/stat/history/person/frequency/getList

接口版本:v2.0

接口参数:

参数名称是否必须类型说明示例
sunmi_shop_no string 商米数字店铺平台唯一编号 560279010307
start_timestring 筛选开始时间 “YYYY-MM-DD” (如果需要查询某一天,开始和结束时间相同) 2020-01-01
end_timestring 筛选结束时间 “YYYY-MM-DD” (如果需要查询某一天,开始和结束时间相同,end_time日期需要小于当前日期) 2020-01-16
  • 每次接口调用, 开始时间和结束时间的区间限制为30天

请求示例:

  "method": "POST",
  "url": "https://store.uat.sunmi.com/openapi/passengerFlow/stat/history/person/frequency/getList",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  formData: {
    "sunmi_shop_no": "560279010307",
    "app_id": "LMWWQVTW4QGCC",
    "start_time": "2020-01-01",
    "end_time": "2020-01-16",
    "timestamp": 1581383983,
    "random": "5dsf6698",
    "sign": "33C18A18282733A71F998BB5A5E4319D"
  }

返回值:

{
	"code": 1,
	"msg": "",
	"data": {
		"frequency_list": [{
			"frequency": 1,            /*到店频次*/
			"stranger_uniq_count": 76, /*生客数量(去重)*/
			"regular_uniq_count": 4,   /*熟客数量(去重)*/
			"member_uniq_count": 0     /*会员数量(去重)*/
		}, {
			"frequency": 2,
			"stranger_uniq_count": 13,
			"regular_uniq_count": 2,
			"member_uniq_count": 0
		}, {
			"frequency": 3,
			"stranger_uniq_count": 5,
			"regular_uniq_count": 2,
			"member_uniq_count": 0
		}, {
			"frequency": 4,
			"stranger_uniq_count": 5,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 5,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 6,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 7,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 8,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 9,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 10,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 11,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 12,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 13,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 14,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 15,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 16,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 17,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 18,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 19,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 20,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 21,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 22,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 23,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 24,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 25,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 26,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 27,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 28,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 29,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 30,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 31,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 32,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 33,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 34,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 35,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 36,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 37,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 38,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 39,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 40,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 41,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 42,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 43,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 44,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 45,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 46,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 47,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 48,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 49,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}, {
			"frequency": 50,
			"stranger_uniq_count": 0,
			"regular_uniq_count": 0,
			"member_uniq_count": 0
		}]
	}
}

错误码:

错误码说明
5025时间参数错误
5041 请求中未找到shop_id参数