schm-shuyun-crm-papi

(0 reviews)

中文文档

schm-shuyun-crm-papi

接口描述: 数云 CRM 拟通过开放数据服务 API 接口的方式,处理各子系统的业务数据读写请求。
UAT地址(测试环境): https://schm-api-test.shiseido.cn/schm-shuyun-crm-papi
PROD地址(生产环境): https://schm-api.shiseido.cn/schm-shuyun-crm-papi

1.身份认证

所有请求头必须包含以下键值参数作为身份验证信息。您需要向管理员申请这些信息。

client_id: fa98****3452
client_secret: 108b****41f2

appKey、partyId、time、sign等原有的系统参数不需要客户端手工传递,它们由mulesoft自动添加。

测试环境自动灌装系统参数:

partyId: 65653

appKey: oms-server-client

2.接口总览:

请求接口描述
/member/register用于注册会员
/member/query查询会员信息
/member/extQuery查询会员信息(外部)
/member/loyalty/point用于查询会员积分
/member/loyalty/grade用于查询会员等级
/member/point/records用于查询会员积分变更记录
/member/grade/record用于查询会员等级变更记录
/member/point用于变更会员积分
/member/freezePoint用于冻结会员积分
/member/unfreezePoint用于解冻会员积分
/member/freezeDeductPoint用于消耗会员已冻结积分
/member/update用于修改会员
/member/modify/mobile用于修改会员手机号
/member/modify/policy更新会员隐私条款装填以及隐私条款时间
/member/getAttributs/page查询会员属性接口,可查询联名会员信息
/member/updateMemberStatus修改会员状态
/member/purchase/channel查询会员消费渠道接口
/member/loyalty/grade/nextGradeAmount查询会员下一等级所需金额
/customer/queryByChannelId根据渠道 Id 查询会员基础信息。
/customer/extQueryByChannelId根据渠道 Id 查询会员基础信息,只返回MemberId
/customer/refresh/mobile天猫会员明文手机完善接口(定制)
/member/cancellation用于注销会员
/member/loyalty/accountGrade用于查询指定账户会员等级
/member/accountGrade/record用于查询指定账户会员等级变更记录
/member/past/point用于查询会员往期积分
/member/past/point/records用于查询会员往期积分变更记录
/member/past/pointchange用于变更会员往期积分
/order/{memberType}/page用于查询会员订单信息
/order/{memberType}/{orderId}用于查询主订单以及子订单详情
/order/save用于订单保存或者更新
/offer/project/list用于查询卡券项目列表信息
/offer/project/detail用于查询卡券项目明细信息
/offer/instance/grant用于卡券发放带幂等(单个会员单张)
/offer/coupon/writeoff用于已冻结的卡券核销(单张卡券)
/offer/coupon/anticounting用于卡券反核销
/offer/coupon/frozen用于卡券冻结(单张卡券)
/offer/coupon/thaw用于卡券解冻(单张卡券)
/offer/coupon/use用于卡券核销(单张卡券)
/offer/instance/list用于查询卡券实例列表信息
/offer/coupon/detail用于查询卡券实例明细信息
/offer/coupon/invalid用于卡券失效
/offer/coupon/effective用于卡券生效
/offer/coupon/{couponCode}/{memberType}/extension用于卡券延期
/wechat/member/register用于注册微信会员
/wechat/member/queryByUnionId根据 unionId 查询会员信息以及微信渠道信息,查询不到将抛异常
/wechat/member/queryByOpenId根据 appId 和 openId 查询会员基本信息

目录


3.会员 API

3.1. 会员注册

请求接口: /member/register
接口描述: 用于注册会员
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
RegisterMemberObject
–addressString255联系地址(中文)
-appTypeCodeString64应用类型 code:EBRAND: 会员通, WISDOM: 智慧门店, INTERACT: 互动赢家, WECHAT_OFFICIAL_ACCOUNT: 微信公众号, WECHAT_MINI_PROGRAM: 微信小程序
-appTypeNameString255应用类型名称
-birthDayString会员生日-月日:格式: MM-dd 例:07-05
-birthYearString会员生日-年:格式: yyyy 例:1988
-cardNoString64会员卡号
-channelTypeString20渠道类型
-cityCodeString32市 code
-cityNameString100城市名称
-countryString20国籍
-customerNoString64渠道 ID:渠道唯一标识,用于区分渠道会员。
-districtCodeString32区 code
-districtNameString100区名称
-emailString255邮箱地址
-genderString性别:F:女 M:男 O:其他
-identityCardString20身份证号码
-jobString100职业名称
-memberNameString255会员姓名
-memberTypeString20会员类型
-mobileString20手机号码
-provinceCodeString32省 code
-provinceNameString100省份名称
-registerTimeString注册时间,不传则默认为当前时间格式: yyyy-MM-dd HH:mm:ss
-shopCodeString32注册门店 code
-shopNameString255注册门店名称
-shopTypeCodeString32注册门店类型 code
-customizedProperties{}Object(Map)会员扩展字段:数据结构见下方
-bindingExtProperties{}Object(Map)会员拓展属性扩展字段:数据结构见下方

会员扩展字段结构

字段名称类型必填长度字段描述
registerSourceString100注册来源
customizedTagString1000个性标签:传入 json 字符串
checkPolicyStatusString10会员是否同意隐私授权 1:同意;0:不同意
referrerMobileString20推荐人手机号
isGetInfoByEmailString10是否同意接收邮件 1:同意;0:不同意
isGetInfoBySMSString10是否同意接收短信 1:同意;0:不同意
isGetInfoByServiceSMSString10是否同意接收服务类短信 1:同意;0:不同意
unionIdString64微信 unionid,ECMP调用传入
memberSalutationString100会员称谓:bs 品牌需求新增
memberStatusString20会员状态:bs 品牌需求新增
sportsPreferenceString100运动偏好
makeUpPreferenceString100美妆偏好

会员拓展属性扩展字段结构

字段名称类型必填长度字段描述
unionIdString64微信 unionid,ECMP调用传入

请求参数示例

{
    "memberType": "shuyun",
    "memberName": "会员1",
    "gender": "F",
    "cardNo": "132156",
    "identityCard": "165465",
    "birthYear": "1998",
    "birthDay": "01-01",
    "country": "china",
    "provinceCode": "310000",
    "provinceName": "上海",
    "cityCode": "310100",
    "cityName": "上海市",
    "districtCode": "310107",
    "districtName": "普陀区",
    "address": "上海市徐汇区天钥桥路1001号",
    "job": "teacher",
    "shopCode": "shuyun",
    "shopName": "数云",
    "shopTypeCode": "shuyun",
    "registerTime": "2021-07-13 08:36:03",
    "customizedProperties": {
        "registerSource": "线下活动",
        "customizedTag": "{“爱好”:”篮球”}",
        "checkPolicyStatus": "1",
        "referrerMobile": "15021228866",
        "isGetInfoByEmail": "1",
        "isGetInfoBySMS": "1",
        "isGetInfoByServiceSMS": "1",
        "memberSalutation": "王女士",
        "memberStatus": "FREEZE",
        "sportsPreference": "篮球",
        "makeUpPreference": "口红",
        "desc": "备注",
        "customerSouce": "123",
        "metabolism": "11",
        "resistance": "11"
    },
    "bindingExtProperties": {
        "unionId": "unionId28154751841"
    },
    "mobile": "15021228866",
    "email": "1001@shuyun.com",
    "nick": "shuyun001",
    "channelType": "TAOBAO",
    "appTypeCode": "EBRAND",
    "appTypeName": "会员通",
    "customerNo": "string"
}

响应参数:

字段名称类型字段描述
memberIdString会员 ID
cardNoString会员卡号
statusString注册状态:NEW: 新注册 , BINDING: 添加绑定, REGISTERED: 已注册

返回状态码:

200:请求成功
201:注册会员成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

返回结果示例

响应成功示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"cardNo": "0040a85608844820900558fc2671cb7c",
"status": "NEW"
}

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.2. 查询会员信息

请求接口: /member/query
接口描述: 应用场景及说明: memberId,mobile,cardNo 参数查询顺序. memberId 优先,其次 mobile, 最后 cardNo
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
cardNoString64会员卡号, memberId,mobile,cardNo 三种参数至少输入一
channelTypeString20渠道来源
memberIdString32会员 ID , memberId,mobile,cardNo 三种参数至少输入一
memberTypeString20会员类型
mobileString20手机号码 , memberId,mobile,cardNo 三种参数至少输入一

返回结果:

字段名称类型字段描述
addressstring联系地址(中文)
ageString年龄
birthDaystring会员生日-月日 如:07-05
birthYearstring会员生日-年 1988
cardNostring会员卡号
cityCodestring市 code
cityNamestring城市名称
countrystring国籍
districtCodestring区 code
districtNameboolean区名称
emailstring邮箱地址
firstRegisterChannelTypestring首次注册渠道
firstRegisterChannelTypeDescstring首次注册渠道描述
genderstring性别 F:女 M:男 O:其他
headImgUrlString头像 URL
identityCardString身份证号码
jobString职业名称
memberIdString会员 ID
memberNameString会员姓名
memberTypeString会员类型
mobileString手机号码
provinceCodeString省 code
provinceNameString省份名称
registerTimeString注册时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8
shopCodeString注册门店 code
shopNameString注册门店名称
shopTypeCodeString注册门店类型 code
unionIdStringunionId
wechatNickString微信昵称
memberBindingArray
customizedProperties{}Object(Map)会员扩展属性

MemberBinding:

参数名数据类型必填长度字段描述
appIdString64公众号 appId
appTypeCodeString64应用类型 code EBRAND: 会员通, WISDOM: 智慧门店, INTERACT: 互动赢家,
appTypeNameString255应用类型名称
channelTypeString20渠道类型
customerNoString64客户编号 若创建时未传系统自动生成
memberTypeString20会员类型
mixMobileString64混淆手机号 格式: yyyy-MM-dd’T’HH:mm:ss.SSSXXX
openIdString64客户 openid
relTypeInteger关系类型 0: 注册, 1: 绑定,2: 解绑
shopCodeString32绑定/解绑门店 code
shopNameString255绑定/解绑门店名称
shopTypeCodeString32绑定/解绑门店类型code
unionIdString64微信 union_id(微信专用)

扩展字段结构 :

字段名称类型字段描述
registerSourceString注册来源
customizedTagString个性标签,传入 JSON 字符串
belongBCString所属 BC 工号
belongShopString所属店铺 ID
checkPolicyStatusString会员是否同意隐私授权,1:同意;0:不同意
referrerMobileString推荐人手机号
isGetInfoByEmailString是否同意接收邮件,1:同意;0:不同意
isGetInfoBySMSString是否同意接收短信,1:同意;0:不同意
isGetInfoByServiceSMSString是否同意接收服务类短信,1:同意;0:不同意
wxOpenIdString公众号 openid
isSubscribeString是否关注公众号,1:已关注;2:已取关
memberSalutationString会员称谓,bs 品牌需求新增
memberStatusString会员状态,bs 品牌需求新增
descString备注 tg 品牌需求新增
customerSouceString顾客的了解产品的来源 tg 品牌需求新增
metabolismString顾客的代谢力 tg 品牌需求新增
resistanceString顾客的抵抗力 tg 品牌需求新增

返回结果示例

{
"memberType": "shuyun",
"memberName": "会员 1",
"gender": "F",
"cardNo": "132156",
"identityCard": "165465",
"birthYear": "1998",
"birthDay": "01-01",
"country": "china",
"provinceCode": "310000",
"provinceName": "上海",
"cityCode": "310100",
"cityName": "上海市",
"districtCode": "310107",
"districtName": "普陀区",
"address": "上海市徐汇区天钥桥路 1001 号",
"job": "teacher",
"shopCode": "shuyun",
"shopName": "数云",
"shopTypeCode": "shuyun",
"registerTime": "2021-10-13T12:26:58.386+08:00",
"customizedProperties": {
"registerSource": "线下活动",
"customizedTag": "{“爱好”:”篮球”}",
"belongBC": "10001",
"belongShop": "10001",
"checkPolicyStatus": "1",
"referrerMobile": "15021228866",
"isGetInfoByEmail": "1",
"isGetInfoBySMS": "1",
"isGetInfoByServiceSMS": "1",
"wxOpenId": "NJkoIOJNBUOh",
"isSubscribe": "1"
"memberSalutation": "王女士",
"memberStatus": "FREEZE""sportsPreference": "篮球""makeUpPreference": "口红"
},
"mobile": "15021228866",
"email": "1001@shuyun.com",
"memberId": "0040a85608844820900558fc2671cb7c",
"memberBinding": [
{
"memberType": "shuyun",
"customerNo": "1001",
"mixMobile": "5608844820900558fc2671cb7c",
"appId": "appId28154751841",
"openId": "o3_wb5J_b7llpR5sWiDmRWZZnWes",
"shopCode": "shopcode1001",
"shopName": "01 门店",
"shopTypeCode": "01shop",
"appTypeCode": "EBRAND",
"appTypeName": "会员通",
"channelType": "TAOBAO",
"relType": 0,
"unionId": "string"
}
],
"firstRegisterChannelType": "POS",
"firstRegisterChannelTypeDesc": "线下",
"age": 18,
"wechatNick": "清风",
"headImgUrl": "http://111xx",
"unionId": "o-shjxsjidsdih"
}

返回状态码:

200:请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.2E. 查询会员信息(外部)

请求接口: /member/extQuery
接口描述: 与查询会员信息相同,只返回特定字段,通过hasMobile返回是否绑定手机
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
cardNoString64会员卡号, memberId,mobile,cardNo 三种参数至少输入一
channelTypeString20渠道来源
memberIdString32会员 ID , memberId,mobile,cardNo 三种参数至少输入一
memberTypeString20会员类型

返回结果:

字段名称类型字段描述
memberIdString会员 ID
memberNameString会员姓名
birthDaystring会员生日-月日 如:07-05
birthYearstring会员生日-年 1988
registerTimeString注册时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8
firstRegisterChannelTypestring首次注册渠道
belongShopString所属门店编码

返回结果示例

{
    "memberName": "会员 1",
    "birthYear": "1998",
    "birthDay": "01-01",
    "memberId": "0040a85608844820900558fc2671cb7c",
    "registerTime": "2021-10-13T12:26:58.386+08:00"
}

返回状态码:

200:请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.3. 查询会员积分

请求接口: /member/loyalty/point
接口描述: 用于查询会员积分
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道来源
memberIdString32memberId, mobile 二者必须传入一个
memberTypeString20会员类型
mobileString20memberId, mobile 二者必须传入一个

返回结果:

字段名称类型字段描述
pointInteger积分

返回结果示例

{
 "point": 100
}

返回状态码:

200:请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.4. 查询会员等级

请求接口: /member/loyalty/grade
接口描述: 用于查询会员等级
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道来源
memberIdString32memberId, mobile 二者必须传入一个
memberTypeString20会员类型
mobileString20memberId, mobile 二者必须传入一个

返回结果:

字段名称类型字段描述
effectiveTimeString等级生效时间格式: yyyy-MMdd'T'HH:mm:ss.SSSXXX 时区:GMT+8 ,2021-10-13T12:26:58.386+08:00
expiredTimeString等级过期时间格式: yyyy-MMdd'T'HH:mm:ss.SSSXXX 时区:GMT+8 ,2021-10-13T12:26:58.386+08:00
idString等级 ID
nameString等级名称

返回结果示例

{
 "effectiveTime": "2021-10-13T12:26:58.386+08:00",
 "expiredTime": "2021-10-13T12:26:58.386+08:00",
 "id": 0,
 "name": "string"
}

返回状态码:

200:请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.5. 查询会员积分变更记录

请求接口: /member/point/records
接口描述: 用于查询会员积分变更记录
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString20变更渠道
endTimeString结束时间 格式:yyyy-MM-dd HH:mm:ss
memberIdString32会员ID,memberId,mobile两种参数至少输入一个
memberTypeString20会员类型
mobileString20手机号码,memberId,mobile两种参数至少输入一个
pageInteger当前页码,默认:1
pageSizeInteger当页数量,默认:20,上限:100
recordTypeString20积分变更类型,可选值:SEND(立即发放)、DELAY_SEND(延迟发放)、EXPIRE(过期)、FREEZE(冻结)、UNFREEZE(取消冻结)、DEDUCT(扣减)、LOCK(预扣)、UNLOCK(解锁)、ABOLISH(作废)、TIMER(定时)、RECALCULATE(废弃重算)、SPECIAL_DEDUCT(特殊扣除)、SPECIAL_FREEZE(特殊冻结)、SPECIAL_UNFREEZE(特殊解冻)、SPECIAL_ABOLISH(特殊废弃)、MANUAL_ABOLISH(手动废弃)
startTimeString起始时间 格式:yyyy-MM-dd HH:mm:ss

返回结果:

字段名称类型字段描述
PointRecordArray结构体如下

PointRecord:

字段名称类型必填长度字段描述
changeModeString50变更方式
changeTimeString积分变更时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8 2021-10-13T12:26:58.386+08:00
changeTypeString20积分变更类型,可选值:END(立即发放)、DELAY_SEND(延迟发放)、EXPIRE(过期)、FREEZE(冻结)、UNFREEZE(取消冻结)、DEDUCT(扣减)、LOCK(预扣)、UNLOCK(解锁)、ABOLISH(作废)、TIMER(定时)、RECALCULATE(废弃重算)、SPECIAL_DEDUCT(特殊扣除)、SPECIAL_FREEZE(特殊冻结)、SPECIAL_UNFREEZE(特殊解冻)、SPECIAL_ABOLISH(特殊废弃)、MANUAL_ABOLISH(手动废弃)
channelString20渠道类型
descriptionString255备注
effectiveTimeString积分生效时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8 2021-10-13T12:26:58.386+08:00
expiredTimeString积分过期时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8 2021-10-13T12:26:58.386+08:00
memberIdstring32会员ID
pointInteger变更积分
totalPointString历史总积分
traceIdString255追溯id
KZZD1String255积分类型
KZZD2String255积分来源
KZZD3String255变更事件类型code

返回结果示例

[
{
"memberId": "string",
"point": 0,
"totalPoint": "string",
"changeType": "SEND",
"description": "备注",
"effectiveTime": "2021-10-13T12:26:58.386+08:00",
"expiredTime": "2021-10-13T12:26:58.386+08:00",
"changeTime": "2021-10-13T12:26:58.386+08:00",
"changeMode": "MANUAL",
"id": "12dwdw",
"traceId": "12dwdw",
"channel": "TAOBAO",
"KZZD1": "活动积分",
"KZZD2": " 线下活动",
"KZZD3": " E0001"
}
]

返回状态码:

200:请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.6. 查询会员等级变更记录

请求接口: /member/grade/record
接口描述: 用于查询会员等级变更记录
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString20变更渠道
endTimeString结束时间 格式:yyyy-MM-dd HH:mm:ss
memberIdString32会员ID,memberId,mobile两种参数至少输入一个
memberTypeString20会员类型
mobileString20手机号码,memberId,mobile两种参数至少输入一个
pageInteger当前页码,默认:1
pageSizeInteger当页数量,默认:20,上限:100
startTimeString起始时间 格式:yyyy-MM-dd HH:mm:ss

返回结果:

字段名称类型字段描述
GradeRecordArray结构体如下

GradeRecord:

字段名称类型必填长度字段描述
changeTimeString等级变更时间
changeTypeString20等级变更类型,可选值:UPGRADE(升级)、DEGRADE(降级)、HOLD_BACK_GRADE(保级)
effectiveTimeString变更后等级生效时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8 2021-10-13T12:26:58.386+08:00
expiredTimeString变更后等级过期时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8 2021-10-13T12:26:58.386+08:00
gradeIdString64变更后等级ID
gradeNameString255变更后等级名称
memberIdString32会员ID
originEffectiveTimeString变更前等级生效时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8 2021-10-13T12:26:58.386+08:00
originExpiredTimestring变更前等级过期时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8 2021-10-13T12:26:58.386+08:00
originalGradeIdInteger64变更前等级ID
originalGradeNameString255变更前等级名称

返回结果示例

[
 {
 "changeTime": "2021-10-13T12:26:58.386+08:00",
 "changeType": "UPGRADE",
 "effectiveTime": "2021-10-13T12:26:58.386+08:00",
 "expiredTime": "2021-10-13T12:26:58.386+08:00",
 "gradeId": 0,
 "gradeName": "string",
 "memberId": "0040a85608844820900558fc2671cb7c",
 "originEffectiveTime": "2021-10-13T12:26:58.386+08:00",
 "originExpiredTime": "2021-10-13T12:26:58.386+08:00",
 "originalGradeId": 0,
 "originalGradeName": "string"
 }
]

返回状态码:

200:请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.7. 变更会员积分

请求接口: /member/point
接口描述: 用于变更会员积分
请求类型: HTTP PUT

请求参数:

字段名称类型必填长度字段描述
X-Business-TokenString请求头(request header)里需要传:X-BusinessToken, 不同请求对应 X-Business-Token 值确保唯一;若同一请求,请求多次,确保 X-Business-Token 值是一样,如兑礼订单,需要在此字段传入兑礼订单号。
Body:
字段名称类型必填长度字段描述
changeTypeString积分变更类型,可选值:SEND(立即发放)、DEDUCT(扣减)
channelTypeString20渠道类型
descriptionString255备注,包括事件类型、事件等信息,JSON字符串
effectTimeString积分生效时间,为空时立即生效,格式: yyyy-MM-dd HH:mm:ss
expiredTimeString积分过期时间,格式: yyyy-MM-dd HH:mm:ss
memberIdString32会员ID
memberTypeString20会员类型
pointNumber积分
shopCodeString32店铺code
KZZD1String255积分类型
KZZD2String255积分来源
KZZD3String255变更事件类型code

参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"point": 20,
"effectTime": "2021-07-13 08:36:03",
"expiredTime": "2021-07-13 08:36:03",
"changeType": "SEND",
"description": "备注",
"channelType": "POS",
"memberType": "shuyun",
"shopCode": "10001",
"KZZD1": "活动积分",
"KZZD2": ”线下活动",
"KZZD3": "E0001"
}

返回状态码:

200:请求成功
201: Created
204: 修改会员积分成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.8. 冻结会员积分

请求接口: /member/freezePoint
接口描述: 用于冻结会员积分
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
X-Business-TokenString请求头(request header)里需要传:X-BusinessToken, 不同请求对应 X-Business-Token 值确保唯一;若同一请求,请求多次,确保 X-Business-Token 值是一样。
Body:
字段名称类型必填长度字段描述
channelTypeString20渠道类型
descriptionString255备注,包括事件类型、事件等信息,JSON字符串
memberIdString32会员ID
memberTypeString20会员类型
pointNumber积分
shopCodeString32店铺code

参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"description": "备注",
"channelType": "SHUYUN",
"memberType": "shuyun",
"shopCode": "string",
"idempotentMode": 0,
"point": 20
}

返回状态码:

200:请求成功
201: Created
204: 操作积分成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.9. 解冻会员积分

请求接口: /member/unfreezePoint
接口描述: 用于解冻会员积分
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
X-Business-TokenString请求头(request header)里需要传:X-BusinessToken, 不同请求对应 X-Business-Token 值确保唯一;若同一请求,请求多次,确保 X-Business-Token 值是一样(解冻时需要与对应冻结积分的 token 一致)。
Body:
字段名称类型必填长度字段描述
channelTypeString20渠道类型
descriptionString255备注,包括事件类型、事件等信息,JSON字符串
memberIdString32会员ID
memberTypeString20会员类型
shopCodeString32店铺code

参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"description": "备注",
"channelType": "SHUYUN",
"memberType": "shuyun",
"shopCode": "string",
"idempotentMode": 0
}

返回状态码:

200:请求成功
201: Created
204: 操作积分成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.10. 消耗会员已冻结积分

请求接口: /member/freezeDeductPoint
接口描述: 用于消耗会员已冻结积分
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
X-Business-TokenString请求头(request header)里需要传:X-BusinessToken, 不同请求对应 X-Business-Token 值确保唯一;若同一请求,请求多次,确保 X-Business-Token 值是一样(消耗冻结积分时需要与冻结积分时的 token一致)
Body:
字段名称类型必填长度字段描述
channelTypeString20渠道类型
descriptionString255备注,包括事件类型、事件等信息,JSON字符串
memberIdString32会员ID
memberTypeString20会员类型
shopCodeString32店铺code

参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"description": "备注",
"channelType": "SHUYUN",
"memberType": "shuyun",
"shopCode": "string",
"idempotentMode": 0
}

返回状态码:

200:请求成功
201: Created
204: 操作积分成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.11. 修改会员信息

请求接口: /member/update
接口描述: 用于修改会员
请求类型: HTTP PUT

请求参数:

字段名称类型必填长度字段描述
updateMemberObject结构体如下

updateMember:

字段名称类型必填长度字段描述
addressString255联系地址(中文)
birthDayString会员生日-月日,格式: MM-dd,例:07-05
birthYearString会员生日-年,格式: yyyy,例:1988
channelTypeString20渠道类型
cityCodeString32市code
cityNameString100城市名称
contactTelString20联系电话
countryString20国籍,例:china
districtCodeString32区code
districtNameString100区名称
emailString255邮箱地址
genderString性别,可选值:F(女)、M(男)、O(其他)
headImgUrlString头像链接
identityCardString20身份证号码
jobString100职业名称
memberIdString32会员ID
memberNameString255会员姓名
memberTypeString20会员类型
provinceCodeString32省code
provinceNameString100省份名称
customizedProperties{}Object会员扩展属性

扩展字段结构:

字段名称类型必填长度字段描述
registerSourceString100注册来源
customizedTagString1000个性标签,传入JSON字符串
belongBCString100所属BC工号
belongShopString100所属店铺id
checkPolicyStatusString10会员是否同意隐私授权,可选值:1(同意)、2(不同意)
referrerMobileString20推荐人手机号
isGetInfoByEmailString10是否同意接收邮件,可选值:1(同意)、0(不同意)
isGetInfoBySMSString10是否同意接收短信,可选值:1(同意)、0(不同意)
isGetInfoByServiceSMSString10是否同意接收服务类短信,可选值:1(同意)、0(不同意)
memberSalutationString100会员称谓,品牌需求新增
sportsPreferenceString100运动偏好
makeUpPreferenceString100美妆偏好

参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"channelType": "TAOBAO",
"memberType": "shuyun",
"memberName": "数云",
"gender": "F",
"email": "1001@shuyun.com",
"identityCard": "101100",
"birthYear": "1900",
"birthDay": "01-01",
"country": "china",
"provinceCode": "310000",
"provinceName": "上海",
"cityCode": "310100",
"cityName": "上海市",
"districtCode": "310107",
"districtName": "普陀区",
"address": "上海市徐汇区天钥桥路 1001 号",
"job": "teacher",
"contactTel": "18500002312",
"headImgUrl": "http://www.xxx.com/url?id=101",
"customizedProperties": {
"registerSource": "线下活动",
"customizedTag": "{“爱好”:”篮球”}",
"belongBC": "10001",
"belongShop": "10001"
"checkPolicyStatus": "1",
"referrerMobile": "15021228866",
"isGetInfoByEmail": "1",
"isGetInfoBySMS": "1",
"isGetInfoByServiceSMS": "1",
"memberSalutation": "王女士""sportsPreference": "篮球""makeUpPreference": "口红"
}
}

返回状态码:

201: Created
204: 修改会员成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.12. 修改会员手机号

请求接口: /member/modify/mobile
接口描述: 用于修改会员手机号,仅允许修改为未注册过的手机号
请求类型: HTTP PUT

请求参数:

字段名称类型必填长度字段描述
memberTypeString20会员类型
newMobileString20新手机号码
memberIdString32会员 ID

参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"memberType": "cpbomni",
"newMobile": "13100000000"
}

返回状态码:

200: 修改成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.13. 更新会员隐私条款(定制)

请求接口: /member/modify/policy
接口描述: 更新会员隐私条款装填以及隐私条款时间
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
memberTypeString20会员类型
memberIdString32会员ID
checkPolicyStatusString20会员是否同意隐私政策,可选值:1(同意)、0(不同意)
policyStatusUpdateTimedataTime隐私协议修改时间(不填默认为当前时间)

参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"memberType": "shuyun",
"checkPolicyStatus": "1",
"policyStatusUpdateTime": "2021-07-13 08:36:03"
}

返回状态码:

200: 请求成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.14. 查询会员属性接口(定制)

请求接口: /member/getAttributs/page
接口描述: 查询会员属性接口,可查询联名会员信息
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
memberTypeString20会员类型
memberIdString32会员ID
currentPageinteger当前页数,默认为1
pageSizeinteger分页容量,默认为20

返回结果:

字段名称类型字段描述
memberAttributsArray会员属性集合

memberAttributs:

字段名称类型必填长度字段描述
memberIdString32会员ID
memberTypeString20会员类型
attributeCodeString64属性编码
attributeNameString200属性名称
createTimedateTime创建时间
updateTimedateTime更新时间

返回结果示例

[
{
 "memberId": "0040a85608844820900558fc2671cb7c ",
 "memberType": "shuyun",
 "attributeCode": "huadi",
 "attributeName": "华帝联名会员",
 "updateTime": "2021-10-13T12:26:58.386+08:00",
 "createTime": "2021-10-13T12:26:58.386+08:00"
}
]

返回状态码:

200: 请求成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.15. 修改会员状态接口(定制)

请求接口: /member/updateMemberStatus
接口描述: 修改会员状态
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
memberTypeString20会员类型
memberIdString32会员ID
memberStatusString20会员状态

返回状态码:

200: 请求成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.16. 查询会员消费渠道接口(定制)

请求接口: /member/purchase/channe
接口描述: 查询会员消费渠道接口
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
memberTypeString20会员类型
memberIdString32会员ID

返回结果:

字段名称类型字段描述
memberIdString会员 ID
purchaseChannelArray会员消费渠道列表

返回结果示例

{
 "memberId": "M1140ZRS59S3G",
 "purchaseChannel": ["TAOBAO","POS","ECMP","GW","ECMPcom"]
}

返回状态码:

200: 请求成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.17. 查询会员下一等级所需金额接口(定制)

请求接口: /member/loyalty/grade/nextGradeAmount
接口描述: 查询会员下一等级所需金额
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
memberTypeString20会员类型
memberIdString32会员ID

返回结果:

字段名称类型字段描述
currentGradeIdInteger当前等级 id
currentGradeNameString当前等级名称
memberIdString会员 ID
consumeAmountNumber当前累计消费金额
needAmountNumber升级所需金额
nextGradeIdInteger下一等级 id
nextGradeNameString下一等级名称
nextGradeNeedAmountNumber下一等级所需消费金额
updatedTimeDateTime更新时间

返回结果示例

{
 "currentGradeId": 60040,
 "currentGradeName": "银钻卡",
 "memberId": "M1140ZRS59S3G",
 "consumeAmount": 170.0,
 "needAmount": 2830.0,
 "nextGradeId": "60041",
 "nextGradeName": "金卡",
 "nextGradeNeedAmount": 3000.0,
 "updatedTime": "2022-04-16T17:44:24.055+08:00"
}

返回状态码:

200: 请求成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.18. 根据渠道查询会员信息(定制)

请求接口: /customer/queryByChannelId
接口描述: 根据渠道 Id 查询会员基础信息
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
memberTypeString会员类型
channelTypeString渠道类型
customerNoString渠道ID,例如:淘宝渠道-麒麟ID;京东-OpenID;微信-AppID_OpenID;其他渠道唯一ID等

返回结果:

字段名称类型字段描述
SimpleMemberDtoObject结构体如下

SimpleMemberDto:

字段名称类型必填长度字段描述
cardNoString64会员卡号
emailString255邮箱
memberIdString64会员ID
memberNameString255会员名称
memberTypeString20会员类型
mobileString20手机号
registerTimeString注册时间
shopCodeString64店铺code
shopNameString255店铺名称
dateOfBirthString出生年月日

返回结果示例

{
 "memberType": "shuyun",
 "memberId": "shuyun",
 "memberName": "小小",
 "gender": "F",
 "identityCard": "101100",
 "dateOfBirth": "1998-01-01",
 "mobile": "18909890000",
 "cardNo": "1727832",
 "email": "1001@shuyun.com",
 "marriageStatus": "Y",
 "registerTime": "2021-12-30T02:24:02.202Z",
 "shopCode": "shopcode1001",
 "shopName": "01 门店"
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.18E. 根据渠道查询会员信息(定制)

请求接口: /customer/extQueryByChannelId
接口描述: 根据渠道 Id 查询会员基础信息,只返回MemberId
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
memberTypeString会员类型
channelTypeString渠道类型
customerNoString渠道ID,例如:淘宝渠道-麒麟ID;京东-OpenID;微信-AppID_OpenID;其他渠道唯一ID等

返回结果:

字段名称类型字段描述
SimpleMemberDtoObject结构体如下

SimpleMemberDto:

字段名称类型必填长度字段描述
memberIdString64会员ID

返回结果示例

{
 "memberId": "shuyun"
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.19. 天猫会员明文手机完善接口(定制)

请求接口: /customer/refresh/mobile
接口描述: 用于查询会员当月即将过期积分
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
memberTypeString必填20会员类型,固定值,各品牌不同,需向数云申请
MobileString必填20新手机号码
memberIdString必填32会员ID

返回结果示例

{
 "memberId": "0040a85608844820900558fc2671cb7c",
 "memberType": "bsomni",
 "mobile": "13100000000"
}

返回状态码:

200: 请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

3.20. 注销会员(定制)

请求接口: /member/cancellation
接口描述: 用于注销会员
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
memberIdString必填32会员ID
memberTypeString必填20会员类型

请求参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"memberType": "shuyun"
}

返回状态码:

200: 请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

4.会员集雅荟等级 API(定制)

4.1. 查询会员集雅荟等级

请求接口: /member/loyalty/accountGrade
接口描述: 用于查询指定账户会员等级
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道来源
memberIdString32会员ID,memberId和mobile二者必须传入一个
memberTypeString必填20会员类型
mobileString20手机号,memberId和mobile二者必须传入一个
accountTypeString必填20账户类型,例如集雅荟账户类型为JYHGRADE

返回结果:

字段名称类型字段描述
effectiveTimeString等级生效时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8 2021-10-13T12:26:58.386+08:00
expiredTimeString等级过期时间 格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时区:GMT+8 2021-10-13T12:26:58.386+08:00
idInteger等级 ID
nameString等级名称

返回结果示例

{
 "effectiveTime": "2021-10-13T12:26:58.386+08:00",
 "expiredTime": "2021-10-13T12:26:58.386+08:00",
 "id": 0,
 "name": "string"
}

返回状态码:

200: 请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

4.2. 查询会员集雅荟等级变更记录

请求接口: /member/accountGrade/record
接口描述: 用于查询指定账户会员等级变更记录
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString20变更渠道
endTimeString结束时间,格式为yyyy-MM-dd HH:mm:ss
memberIdString32会员ID,memberId和mobile两种参数至少输入一个
memberTypeString必填20会员类型
mobileString20手机号码,memberId和mobile两种参数至少输入一个
pageInteger当前页码,默认为1
pageSizeInteger当页数量,默认为20,上限为100
startTimeString起始时间,格式为yyyy-MM-dd HH:mm:ss
accountTypeString必填20账户类型,例如集雅荟账户类型为JYHGRADE

返回结果:

字段名称类型字段描述
GradeRecordArray结构体如下

GradeRecord:

字段名称类型必填长度字段描述
changeTimeString等级变更时间
changeTypeString20等级变更类型,可选值为UPGRADE(升级),DEGRADE(降级),HOLD_BACK_GRADE(保级)
effectiveTimeString变更后等级生效时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
expiredTimeString变更后等级过期时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
gradeIdString64变更后等级ID
gradeNameString255变更后等级名称
memberIdString32会员ID
originEffectiveTimeString变更前等级生效时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
originExpiredTimeString变更前等级过期时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
originalGradeIdInteger64变更前等级ID
originalGradeNameString255变更前等级名称

返回结果示例

[
 {
 "changeTime": "2021-10-13T12:26:58.386+08:00",
 "changeType": "UPGRADE",
 "effectiveTime": "2021-10-13T12:26:58.386+08:00",
 "expiredTime": "2021-10-13T12:26:58.386+08:00",
 "gradeId": 0,
 "gradeName": "string",
 "memberId": "0040a85608844820900558fc2671cb7c",
 "originEffectiveTime": "2021-10-13T12:26:58.386+08:00",
 "originExpiredTime": "2021-10-13T12:26:58.386+08:00",
 "originalGradeId": 0,
 "originalGradeName": "string"
 }
]

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

5.会员往期积分 API

5.1. 查询会员往期积分

请求接口: /member/past/point
接口描述: 用于查询会员往期积分
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
accountTypeString必填20积分账户类型,例如往期积分为CPBPAST
memberIdString必填32会员ID
memberTypeString必填20会员类型

返回结果:

字段名称类型字段描述
pointInteger积分值

返回结果示例

{
 "point": 100
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

5.2. 查询会员往期积分变更记录

请求接口: /member/past/point/records
接口描述: 用于查询会员往期积分变更记录
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
accountTypeString必填20积分账户类型,例如往期积分为CPBPAST
channelTypeString20变更渠道
endTimeString结束时间,格式为yyyy-MM-dd HH:mm:ss
memberIdString必填32会员ID
memberTypeString必填20会员类型
pageInteger当前页码,默认为1
pageSizeInteger当页数量,默认为20,上限为100
recordTypeString20积分变更类型,可选值为SEND(立即发放),DELAY_SEND(延迟发放),EXPIRE(过期),FREEZE(冻结),UNFREEZE(取消冻结),DEDUCT(扣减),LOCK(预扣),UNLOCK(解锁),ABOLISH(作废),TIMER(定时),RECALCULATE(废弃重算),SPECIAL_DEDUCT(特殊扣除),SPECIAL_FREEZE(特殊冻结),SPECIAL_UNFREEZE(特殊解冻),SPECIAL_ABOLISH(特殊废弃),MANUAL_ABOLISH(手动废弃)
startTimeString起始时间,格式为yyyy-MM-dd HH:mm:ss

返回结果:

字段名称类型字段描述
PointRecordArray结构体如下

PointRecord:

字段名称类型必填长度字段描述
changeModeString50变更方式
changeTimeString积分变更时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
changeTypeString20积分变更类型,可选值为END(立即发放),DELAY_SEND(延迟发放),EXPIRE(过期),FREEZE(冻结),UNFREEZE(取消冻结),DEDUCT(扣减),LOCK(预扣),UNLOCK(解锁),ABOLISH(作废),TIMER(定时),RECALCULATE(废弃重算),SPECIAL_DEDUCT(特殊扣除),SPECIAL_FREEZE(特殊冻结),SPECIAL_UNFREEZE(特殊解冻),SPECIAL_ABOLISH(特殊废弃),MANUAL_ABOLISH(手动废弃)
channelString20渠道类型
descriptionString255备注
effectiveTimeString积分生效时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
expiredTimeString积分过期时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
memberIdstring32会员ID
pointInteger变更积分
totalPointString历史总积分
traceIdString255追溯ID
KZZD1String255积分类型
KZZD2String255积分来源
KZZD3String255变更事件类型code

返回结果示例

[
{
"memberId": "string",
"point": 0,
"totalPoint": "string",
"changeType": "SEND",
"description": "备注",
"effectiveTime": "2021-10-13T12:26:58.386+08:00",
"expiredTime": "2021-10-13T12:26:58.386+08:00",
"changeTime": "2021-10-13T12:26:58.386+08:00",
"changeMode": "MANUAL",
"id": "12dwdw",
"traceId": "12dwdw",
"channel": "TAOBAO",
"KZZD1": "活动积分",
"KZZD2": " 线下活动",
"KZZD3": " E0001"
}
]

返回状态码:

200: 请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

5.3. 变更会员往期积分

请求接口: /member/past/pointchange
接口描述: 用于变更会员往期积分
请求类型: HTTP PUT

请求参数:

字段名称类型必填长度字段描述
X-Business-TokenString请求头(request header)里需要传:X-BusinessToken, 不同请求对应 X-Business-Token 值确保唯一;若同一请求,请求多次,确保 X-Business-Token 值是一样如兑礼订单,需要在此字段传入兑礼订单号。
Body:
字段名称类型必填长度字段描述
accountTypeString必填20积分账户类型,例如往期积分为CPBPAST
changeTypeString必填积分变更类型,可选值为SEND(立即发放),DEDUCT(扣减)
channelTypeString必填20渠道类型
descriptionString必填255备注,包括事件类型、事件等信息,使用JSON字符串格式
effectTimeString积分生效时间,格式为yyyy-MM-dd HH:mm:ss,为空时表示立即生效
expiredTimeString积分过期时间,格式为yyyy-MM-dd HH:mm:ss
memberIdString必填32会员ID
memberTypeString必填20会员类型
pointNumber必填积分
shopCodeString32店铺code
KZZD1String255积分类型
KZZD2String255积分来源
KZZD3String必填255变更事件类型code

参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"accountType": "CPBPAST",
"point": 20,
"effectTime": "2021-07-13 08:36:03",
"expiredTime": "2021-07-13 08:36:03",
"changeType": "SEND",
"description": "备注",
"channelType": "POS",
"memberType": "shuyun",
"shopCode": "10001",
"KZZD1": "活动积分",
"KZZD2": ”线下活动",
"KZZD3": "E0001"
}

返回状态码:

200: 请求成功
201: Created
204: 修改会员积分成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

6.会员订单 API

6.1. 查询会员订单列表

请求接口: /order/{memberType}/page
接口描述: 用于查询会员订单信息
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
currentPageinteger当前页数,默认为1
keyTypeString搜索类型
keyWordString搜索关键字
memberIdString32会员ID,与mobile二选一,如果两个都有,则以memberId为主
memberTypeString必填20会员类型
mobileString20手机号,与memberId二选一
orderBeginTimeString搜索此时间之后的订单,格式为yyyy-MM-dd HH:mm:ss
orderEndTimeString搜索此时间之前的订单,格式为yyyy-MM-dd HH:mm:ss
pageSizeInteger分页容量,默认为20
statusString20订单状态

返回结果:

字段名称类型字段描述
currentPageInteger当前页
dataArray分页数据
pageSizeInteger分页容量
totalCountInteger总记录数
totalPageInteger总页数

返回结果示例

{
"currentPage": 0,
"pageSize": 0,
"totalCount": 0,
"totalPage": 0,
"data": [
{
"memberType": "shuyun",
"orderId": "087989aaf6af4e58897794d18axxxxx",
"originOrderId": "087989aaf6af4e58897794d18axxxxx",
"customerNo": "T000001",
"shopCode": "SHOP001",
"shopName": "SHOP001",
"memberId": "1c25f18ad274493882d01660e3exxxxx",
"shopTypeCode": "TAOBAO",
"orderType": "NORMAL",
"orderStatus": "FINISHED",
"channelType": "TAOBAO",
"totalQuantity": 1,
"totalFee": 85,
"payment": 85,
"freight": 10,
"discountRate": 0.85,
"discountFee": 15,
"receiverName": "abc",
"receiverMobile": "18900000000",
"receiverTelephone": "18900000000",
"receiverProvince": "上海",
"receiverCity": "上海",
"receiverDistrict": "浦东新区",
"receiverAddress": "南京东路 100 号",
"receiverZipCode": "200000",
"couponNo": "C123456",
"couponFee": 15,
"guideCode": "001",
"description": "无",
"orderTime": "2021-10-13T12:26:58.386+08:00",
"payTime": "2021-10-13T12:26:58.386+08:00",
"finishTime": "2021-10-13T12:26:58.386+08:00",
"receiveTime": "2021-10-13T12:26:58.386+08:00",
"shippingTime": "2021-10-13T12:26:58.386+08:00",
"exchangeTime": "2021-10-13T12:26:58.386+08:00",
"refundTime": "2021-10-13T12:26:58.386+08:00",
"pointFlag": 1,
"orderItems": [
{
"orderItemId": "bf3a654f1afa4859bb5c0e8846bxxxxx",
"originOrderItemId": "bf3a654f1afa4859bb5c0e8846bxxxxx",
"productCode": "P001",
"productName": "P001",
"totalFee": 85,
"payment": 85,
"quantity": 1,
"channelType": "TAOBAO",
"status": "FINISHED",
"skuId": "S001",
"shopTypeCode": "TAOBAO",
"tagPrice": 100,
"retailPrice": 100,
"discountRate": 0.85,
"discountFee": 15,
"orderType": "NORMAL",
"finishTime": "2021-10-13T12:26:58.386+08:00",
"payTime": "2021-10-13T12:26:58.386+08:00",
"orderTime": "2021-10-13T12:26:58.386+08:00",
"picture": [
"https://allpro.saas.top/FsB-uzzX4WtCzpDuVuwqp2OdNbQ?e=1547742055&token=yNjhOp7gnH4St9yP72OlwuQ6JUNQf49pxAuGWYFt
:1eZIUjRKIekGuMGG-c-s7UqNF1Y=;"
],
"customizedProperties": {
"string": "update"
}
}
],
"customizedProperties": {
 "ticketNum": "123456789",
 "salesMode": "123456789",
 "presaleFlag": "123456789",
 "presaleStoreId": "123456789",
 "presalePosId": "123456789",
 "presaleBillNo": "123456789",
 "presaleReturnStoreId": "123456789",
 "presaleReturnPosId": "123456789",
 "presaleReturnBillNo": "123456789",
 "orderSource": "10"
},
"id": "string"
}
]
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

6.2. 查询会员订单详情

请求接口: /order/{memberType}/{orderId}
接口描述: 用于查询主订单以及子订单详情
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString必填20会员类型
orderIdString必填32订单ID
orderTypeString必填20订单类型,可选值为NORMAL(正常单),REFUND(退单)

返回结果:

字段名称类型字段描述
orderInfoObject结构体如下

orderInfo:

字段名称类型必填长度字段描述
channelTypeString20渠道
couponFeeNumber优惠劵金额
couponNoString64优惠劵码
customerNoString64渠道ID,渠道唯一标识,用于区分渠道会员
descriptionString255订单备注
discountFeeNumber折扣金额
discountRateNumber折扣率(小于等于1)
exchangeTimeString订单换货时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
freightNumber运费
guideCodeString32订单对应导购
lastSyncString数据同步时间
memberIdString32会员ID
memberTypeString20会员类型
orderIdString32订单ID
orderItemsArray正常订单子订单
orderStatusString20订单状态
orderTimeString下单时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
orderTypeString20订单类型,可选值为NORMAL(正常单)、REFUND(退单)
originOrderIdString32原始订单ID,退单时传
payTimeString订单付款时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
paymentNumber实付金额
pointFlaginteger是否计算积分,0-不计算积分,1-计算积分
receiveTimeString订单收货时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
finishTimeString订单完成时间,格式为yyyy-MM-dd HH:mm:ss
receiverAddressString255收货人地址
receiverCityString100
receiverDistrictString100区/县
receiverMobileString20收货人手机号
receiverNameString100收货人姓名
receiverProvinceString100
receiverTelephoneString20收货人固定电话
receiverZipCodeString20邮编
refundTimeString订单退货时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
shippingTimeString订单发货时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
shopCodeString32注册门店code
shopNameString255注册门店名称
shopTypeCodeString32注册门店类型code
totalFeeNumber应付金额
totalQuantityinteger商品总数
updateTimeString更新时间
customizedProperties{}Object(Map)扩展字段

扩展字段结构:

|ticketNum|String| |100|小票号|
|salesMode|String| |10|销售类型,可选值为0(常规销售)、1(团购)|
|presaleFlag|String| |10|预售区分,可选值为0(普通)、1(预售)、2(提货)|
|presaleStoreId|String| |32|预售店铺编号|
|presalePosId|String| |32|预售POS机号|
|presaleBillNo|String| |32|预售小票号|
|presaleReturnStoreId|String| |32|预售退货店铺编号|
|presaleReturnPosId|String| |32|预售退货POS机号|
|presaleReturnBillNo|String| |32|预售退货小票号|
|orderSource|String| |64|订单来源,枚举类型字段,具体枚举值参考枚举字典文档|

返回结果示例

{
 "memberType": "shuyun",
 "orderId": "087989aaf6af4e58897794d18axxxxx",
 "originOrderId": "087989aaf6af4e58897794d18axxxxx",
 "customerNo": "T000001",
 "shopCode": "SHOP001",
 "shopName": "SHOP001",
 "memberId": "1c25f18ad274493882d01660e3exxxxx",
 "shopTypeCode": "TAOBAO",
 "orderType": "NORMAL",
 "orderStatus": "FINISHED",
 "channelType": "TAOBAO",
 "totalQuantity": 1,
 "totalFee": 85,
 "payment": 85,
 "freight": 10,
 "discountRate": 0.85,
 "discountFee": 15,
 "receiverName": "abc",
 "receiverMobile": "18900000000",
 "receiverTelephone": "18900000000",
 "receiverProvince": "上海",
 "receiverCity": "上海",
 "receiverDistrict": "浦东新区",
 "receiverAddress": "南京东路 100 号",
 "receiverZipCode": "200000",
 "couponNo": "C123456",
 "couponFee": 15,
 "guideCode": "001",
 "description": "无",
 "orderTime": "2021-10-13T12:26:58.386+08:00",
 "payTime": "2021-10-13T12:26:58.386+08:00",
 "finishTime": "2021-10-13T12:26:58.386+08:00",
 "receiveTime": "2021-10-13T12:26:58.386+08:00",
 "shippingTime": "2021-10-13T12:26:58.386+08:00",
 "exchangeTime": "2021-10-13T12:26:58.386+08:00",
 "refundTime": "2021-10-13T12:26:58.386+08:00",
 "pointFlag": 1,
"orderItems": [
 {
 "orderItemId": "bf3a654f1afa4859bb5c0e8846bxxxxx",
 "originOrderItemId": "bf3a654f1afa4859bb5c0e8846bxxxxx",
 "productCode": "P001",
 "productName": "P001",
 "totalFee": 85,
 "payment": 85,
 "quantity": 1,
 "channelType": "TAOBAO",
 "status": "FINISHED",
 "skuId": "S001",
 "shopTypeCode": "TAOBAO",
 "tagPrice": 100,
 "retailPrice": 100,
 "discountRate": 0.85,
 "discountFee": 15,
 "orderType": "NORMAL",
 "finishTime": "2021-10-13T12:26:58.386+08:00",
 "payTime": "2021-10-13T12:26:58.386+08:00",
 "orderTime": "2021-10-13T12:26:58.386+08:00",
 "picture": [
 "https://allpro.saas.top/FsB-uzzX4WtCzpDuVuwqp2OdNbQ?e=1547742055&token=yNjhOp7gnH4St9yP72OlwuQ6JUNQf49pxAuGWYFt
:1eZIUjRKIekGuMGG-c-s7UqNF1Y=;"
 ],
 "customizedProperties": {
 "string": "update"
 }
 }
 ],
 "customizedProperties": {
 "ticketNum": "123456789",
 "salesMode": "123456789",
 "presaleFlag": "123456789",
 "presaleStoreId": "123456789",
 "presalePosId": "123456789",
 "presaleBillNo": "123456789",
 "presaleReturnStoreId": "123456789",
 "presaleReturnPosId": "123456789",
 "presaleReturnBillNo": "123456789",
 "orderSource": "10"
 },
 "id": "string"
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

6.3. 订单保存或者更新

请求接口: /order/save
接口描述: 用于订单保存或者更新
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
OrderObject必填结构体如下

Order:

字段名称类型必填长度字段描述
channelTypeString必填20渠道
couponFeeNumber优惠劵金额
couponNoString32优惠劵码
customerNoString64客户编号
descriptionString255订单备注
discountFeeNumber折扣金额
discountRateNumber折扣率(小于等于1)
exchangeTimeString订单换货时间,格式为yyyy-MM-dd HH:mm:ss
freightNumber运费
guideCodeString32订单对应导购
memberIdString32会员ID
memberTypeString必填20会员类型
orderIdString必填32订单ID
orderItemsArray正常订单子订单
orderStatusString必填20订单状态
orderTimeString下单时间,格式为yyyy-MM-dd HH:mm:ss
orderTypeString必填20订单类型,可选值为NORMAL(正常单)、REFUND(退单)
originOrderIdString32原始订单ID,退单时传
payTimeString订单付款时间,格式为yyyy-MM-dd HH:mm:ss
paymentNumber必填实付金额
pointFlagInteger是否计算积分,0-不计算积分,1-计算积分
receiveTimeString订单收货时间,格式为yyyy-MM-dd HH:mm:ss
receiverAddressString255收货人地址
receiverCityString100
receiverDistrictString100区/县
receiverMobileString20收货人手机号
receiverNameString100收货人姓名
receiverProvinceString100
receiverTelephoneString20收货人固定电话
receiverZipCodeString20邮编
refundTimeString订单退货时间,格式为yyyy-MM-dd HH:mm:ss
shippingTimeString订单发货时间,格式为yyyy-MM-dd HH:mm:ss
finishTimeString订单完成时间,格式为yyyy-MM-dd HH:mm:ss
shopCodeString必填32下单门店code
shopNameString必填255下单门店名称
shopTypeCodeString32下单门店类型code
totalFeeNumber必填应付金额
totalQuantityInteger必填商品总数
customizedProperties{}Object(Map)扩展字段,数据结构见下方

扩展字段结构:

字段名称类型必填长度字段描述
ticketNumString100小票号
salesModeString10销售类型,可选值为0(常规销售)、1(团购)
presaleFlagString10预售区分,可选值为0(普通)、1(预售)、2(提货)
presaleStoreIdString32预售店铺编号
presalePosIdString32预售POS机号
presaleBillNoString32预售小票号
presaleReturnStoreIdString32预售退货店铺编号
presaleReturnPosIdString32预售退货POS机号
presaleReturnBillNoString32预售退货小票号
orderSourceString64订单来源,枚举类型字段,具体枚举值参考枚举字典文档

参数示例

{
"memberType": "shuyun",
"orderId": "087989aaf6af4e58897794d18axxxxx",
"originOrderId": "087989aaf6af4e58897794d18axxxxx",
"customerNo": "T000001",
"shopCode": "SHOP001",
"shopName": "SHOP001",
"memberId": "1c25f18ad274493882d01660e3exxxxx",
"shopTypeCode": "TAOBAO",
"orderType": "NORMAL",
"orderStatus": "FINISHED",
"channelType": "TAOBAO",
"totalQuantity": 1,
"totalFee": 85,
"payment": 85,
"freight": 10,
"discountRate": 0.85,
"discountFee": 15,
"receiverName": "abc",
"receiverMobile": "18900000000",
"receiverTelephone": "18900000000",
"receiverProvince": "上海",
"receiverCity": "上海",
"receiverDistrict": "浦东新区",
"receiverAddress": "南京东路 100 号",
"receiverZipCode": "200000",
"couponNo": "C123456",
"couponFee": 15,
"guideCode": "001",
"description": "无",
"orderTime": "2021-07-13 08:36:03",
"payTime": "2021-07-13 08:36:03",
"finishTime": "2021-07-13 08:36:03",
"receiveTime": "2021-07-13 08:36:03",
"shippingTime": "2021-07-13 08:36:03",
"exchangeTime": "2021-07-13 08:36:03",
"refundTime": "2021-07-13 08:36:03",
"pointFlag": 1,
"orderItems": [
{
"orderItemId": "bf3a654f1afa4859bb5c0e8846bxxxxx",
"originOrderItemId": "bf3a654f1afa4859bb5c0e8846bxxxxx",
"productCode": "P001",
"productName": "P001",
"totalFee": 85,
"payment": 85,
"quantity": 1,
"channelType": "TAOBAO",
"status": "FINISHED",
"skuId": "S001",
"shopTypeCode": "TAOBAO",
"tagPrice": 100,
"retailPrice": 100,
"discountRate": 0.85,
"discountFee": 15,
"orderType": "NORMAL",
"finishTime": "2021-07-13 08:36:03",
"payTime": "2021-07-13 08:36:03",
"orderTime": "2021-07-13 08:36:03",
"picture": [
"https://allpro.saas.top/FsB-uzzX4WtCzpDuVuwqp2OdNbQ?e=1547742055&token=yNjhOp7gnH4St9yP72OlwuQ6JUNQf49pxAuGWYFt
:1eZIUjRKIekGuMGG-c-s7UqNF1Y=;"
],
"customizedProperties": {
"string": "update"
}
}
],
"customizedProperties": {
"ticketNum": "123456789",
 "salesMode": "123456789",
 "presaleFlag": "123456789",
 "presaleStoreId": "123456789",
 "presalePosId": "123456789",
"presaleBillNo": "123456789",
"presaleReturnStoreId": "123456789",
"presaleReturnPosId": "123456789",
"presaleReturnBillNo": "123456789",
"orderSource": "10"
}
}

返回状态码:

200: 成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.卡券 API

7.1. 查询卡券项目列表信息

请求接口: /offer/project/list
接口描述: 用于查询卡券项目列表信息,实际接口返回字段与券类型定义保持一致
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
channelTypeString必填20渠道类型
currentPageInteger必填当前页,默认为1
memberTypeString必填20会员类型
nameString卡券项目名称
pageSizeInteger必填每页显示数量,默认为10,上限为100
projectIdsArray卡券项目id集合
statusString项目状态,可选值为VALID(已生效)、HAS_FINISHED(已结束)
updateTimeDate修改时间,查询此时间之后的项目,格式为yyyy-MM-dd HH:mm:ss

参数示例

{
 "memberType": "shuyun",
 "channelType": "KYLIN_GUIDE",
 "currentPage": 1,
 "pageSize": 10,
 "status": "VALID",
 "name": "xxx",
 "projectIds": "[11,12]",
 "updateTime": "2021-10-10 11:00:00"
}

返回结果:

字段名称类型字段描述
currentPageInteger当前页
dataArray分页数据
pageSizeInteger分页容量

返回结果示例

{
 "currentPage": 0,
 "pageSize": 0,
 "data": [
 {
 "instanceId": "001",
 "status": "VALID",
 "memberId": "32345464545",
 "projectId": "1001",
 "couponCode": "couponCode",
 "projectType": "CASH",
 "projectName": "新会员券",
 "validTime": "2022-05-30T02:59:48.190Z",
 "expireTime": "2022-05-30T02:59:48.190Z",
 "effectText": "12 元、8.5 折",
 "ruleText": "具体规则",
 "grantTime": "2022-05-30T02:59:48.190Z",
 "useTime": "2022-05-30T02:59:48.190Z",
 "selectorRule": {
 "productScope": [
 "P001",
 "P002",
 "P003"
 ],
 "excludeProduct": [
 "P001",
 "P002",
 "P003"
 ],
 "receiveProductScope": [
 "P001",
 "P002",
 "P003"
 ],
 "applicationShop": [
 "S001",
 "S002",
 "S003"
 ]
 },
 "customizedProperties": {
 "couponType": "Initiative",
 "multiLayer": "0",
 "applicableGrade1": "1",
 "applicableGrade2": "0",
 "applicableGrade3": "0",
 "applicableGrade4": "0",
 "applicableGrade5": "0",
 "ownerShop": "1",
 "limitOwnerShop": "0",
 "orderAmount": 100,
 "orderNumber": 2,
 "points": 100,
 "isMobileCheck": "1",
 "giftName": "精华",
 "giftContent": "精华 20ml",
 "giftValue": "20",
 "activityCounter": "",
 "useRule": "",
 "reminder": "",
 "validyType": "",
 "configuredUsableDays": "",
 "isChangeCoupon": ""
 }
 "presetOrCustomField": {
 "key": "value"
 }
 }
 ]
}

返回状态码:

200: 成功
201: Created
204: 操作积分成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.2. 查询卡券项目明细信息

请求接口: /offer/project/detail
接口描述: 用于查询卡券项目明细信息,实际接口返回字段与券类型定义保持一致
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString必填20渠道类型
memberTypeString必填20会员类型
projectIdString必填32卡券项目id

返回结果:

字段名称类型字段描述
projectObject结构体如下

project:

字段名称类型必填长度字段描述
effectTextString20效果描述,对于代金券为具体的代金金额,对于折扣券为具体的折扣
expireTimeString实例过期时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
nameString255卡券项目名称
projectIdString32卡券项目ID
typeString20卡券项目类型,可选值为DISCOUNT(折扣)、CASH(现金)、EXCHANGE(兑礼)
ruleTextString255使用规则/使用说明
statusString20卡券项目状态
updateTimeString变更时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX
validTimeString实例生效时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
totalCountString可发放总数
selectorRuleObject(Map)选择器规则,会展示在系统前端配置的详细规则字段
customizedPropertiesObject(Map)扩展字段

选择器字段结构(selectorRule):

字段名称类型必填长度字段描述
productScope[]Array订单中包含指定商品的商品范围
excludeProduct[]Array订单中不包含指定商品的商品范围
receiveProductScope[]Array券可领取的商品范围
applicationShop[]Array券适用门店范围

扩展字段结构(customizedProperties):

参数名数据类型是否必填字段描述
couponTypeString卡券类型
multiLayerString是否可叠加使用,可选值为是(1)或否(0)
applicableGrade1String券适用会员等级 1,可选值为是(1)或否(0)
applicableGrade2String券适用会员等级 2,可选值为是(1)或否(0)
applicableGrade3String券适用会员等级 3,可选值为是(1)或否(0)
applicableGrade4String券适用会员等级 4,可选值为是(1)或否(0)
applicableGrade5String券适用会员等级 5,可选值为是(1)或否(0)
ownerShopString商品是否仅会员所属门店可领取,可选值为是(1)或否(0)
limitOwnerShopString商品是否限制会员选择的所属门店领取,可选值为是(1)或否(0)
orderAmountInt订单满足指定金额及以上
orderNumberInt订单满足商品指定件数及以上
pointsInt券可赠送积分
isMobileCheckString券核销是否需要手机验证码验证
giftNameString礼品名称
giftContentString礼品内容
giftValueString礼品价值
activityCounterString活动专柜
useRuleString使用规则
reminderString温馨提示
validyTypeString有效期类型,可选值为absolutely(绝对时间)或relative(相对时间)
configuredUsableDaysString相对失效时间
isChangeCouponString是否可转赠

返回结果示例

{
 "projectId": "001",
 "type": "cashEffect",
 "status": "VALID",
 "name": "数云项目",
 "validTime": "2020-11-30T16:48:03+08:00",
 "expireTime": "2020-11-30T16:48:03+08:00",
 "totalCount": "100",
 "effectText": "12 元、8.5 折",
 "ruleText": "具体规则",
"selectorRule": {
 "productScope": [
 "P001",
 "P002",
 "P003"
 ],
 "excludeProduct": [
 "P001",
 "P002",
 "P003"
 ],
 "receiveProductScope": [
 "P001",
 "P002",
 "P003"
 ],
 "applicationShop": [
 "S001",
 "S002",
 "S003"
 ]
 },
 "customizedProperties": {
 "couponType": "Initiative",
 "multiLayer": "0",
 "applicableGrade1": "1",
 "applicableGrade2": "0",
 "applicableGrade3": "0",
 "applicableGrade4": "0",
 "applicableGrade5": "0",
 "ownerShop": "1",
 "limitOwnerShop": "0",
 "orderAmount": 100,
 "orderNumber": 2,
 "points": 100,
 "isMobileCheck": "1",
 "giftName": "精华",
 "giftContent": "精华 20ml",
 "giftValue": "20",
 "activityCounter": "",
 "useRule": "",
 "reminder": "",
 "validyType": "",
 "configuredUsableDays": "",
 "isChangeCoupon": ""
 },
 "updateTime": "2020-11-30T16:48:03+08:00"
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.3. 卡券发放带幂等(单个会员单张)

请求接口: /offer/instance/grant
接口描述: 用于卡券发放带幂等(单个会员单张)建议发券入参字段限制在【卡券项目】定义的字段范围内,避免后续数据使用时产生误解(卡券接口会记所有 body 及扩展字段中描述的字段,不做限制)
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
X-Request-SequenceString请求头(request header)里需要传:X-Request-Sequence, 不同请求对应 X-Request-Sequence值确保唯一;若同一请求,请求多次,确保X-Request-Sequence 值是一样。
Body:
字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString20会员类型
memberIdString32会员ID
projectIdString32卡券项目ID
params{}Object(Map)发放扩展属性,数据结构见下方
扩展字段结构:
字段名称类型必填长度字段描述
campaignIdString100活动ID
selectShopCodeString32选择门店编码
orderIdString32订单ID
sharedByString32分享人ID
sharedCouponCodeString32分享券ID

参数示例

{
 "channelType": "KYLIN_GUIDE",
 "memberType": "shuyun",
 "memberId": "10001",
 "projectId": "1001",
 "params": {
 "campaignId": "100001",
 "selectShopCode": "100001""orderId": "100001""sharedBy": "100001""sharedCouponCode": "100001"
}
}

返回结果:

字段名称类型字段描述
msgString实例状态更新成功时为空,更新失败时为对应的失败原因
successBoolean是否成功
instanceInfosArray批量请求失败详情

返回结果示例

{
"success": true,
"msg": "xxx",
"instanceIds": "11,22",
"instanceInfos": [
{
 "instanceId": "001",
 "couponCode": "SDSDSZ1",
 "projectId": "1001",
 "status": "GRANTED",
 "grantTime": "2021-12-15T17:10:01.218+08:00"
}
]
}

返回状态码:

200: 请求成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.4. 已冻结卡券核销(单张卡券)

请求接口: /offer/coupon/writeoff
接口描述: 用于已冻结的卡券核销(单张卡券),该接口会对券状态及效期做校验,其它字段不做限制
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString20会员类型
couponCodeString100券码
params{}Object(Map)扩展属性

扩展字段结构:

字段名称类型必填长度字段描述
employeeIdString64核销员工号
counterIdString64核销POS机号
ticketNumString64核销小票号
recordIdString32兑换记录ID
shopCodeString32核销门店编码
productCodeString32核销商品编码

参数示例

{
"channelType": "KYLIN_GUIDE",
"couponCode": "96800081",
"memberType": "shuyun",
"params": {
 "shopCode": "123",
 "employeeId": "123"
 "counterId": "123"
 "ticketNum": "123"
 "recordId": "123"
 "productCode": "123"
}
}

返回结果:

字段名称类型字段描述
msgString实例状态更新成功时为空,更新失败时为对应的失败原因
successBoolean是否成功

返回结果示例

{
 "msg": "xxx",
 "success": true
}

返回状态码:

200: 成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.5. 卡券反核销(单张卡券)

请求接口: /offer/coupon/anticounting
接口描述: 用于卡券反核销
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString20会员类型
couponCodeString100券码
params{}Object(Map)扩展属性

参数示例

{
 "channelType": "KYLIN_GUIDE",
"couponCode": "96800081",
 "memberType": "shuyun",
 "params": {
 "shopCode": "123"
 }
}

返回结果:

字段名称类型字段描述
msgString实例状态更新成功时为空,更新失败时为对应的失败原因
successBoolean是否成功

返回结果示例

{
 "msg": "xxx",
 "success": true
}

返回状态码:

200: 成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.6. 卡券冻结(单张卡券)

请求接口: /offer/coupon/frozen
接口描述: 用于卡券冻结(单张卡券)
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString20会员类型
couponCodeString100券码
params{}Object(Map)扩展属性

参数示例

{
 "channelType": "KYLIN_GUIDE",
"couponCode": "96800081",
 "memberType": "shuyun",
 "params": {
 "shopCode": "123"
 }
}

返回结果:

字段名称类型字段描述
msgString实例状态更新成功时为空,更新失败时为对应的失败原因
successBoolean是否成功

返回结果示例

{
 "msg": "xxx",
 "success": true
}

返回状态码:

200: 成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.7. 卡券解冻(单张卡券)

请求接口: /offer/coupon/thaw
接口描述: 用于卡券解冻(单张卡券)
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString20会员类型
couponCodeString100券码
params{}Object(Map)扩展属性

参数示例

{
 "channelType": "KYLIN_GUIDE",
"couponCode": "96800081",
 "memberType": "shuyun",
 "params": {
 "shopCode": "123"
 }
}

返回结果:

字段名称类型字段描述
msgString实例状态更新成功时为空,更新失败时为对应的失败原因
successBoolean是否成功

返回结果示例

{
 "msg": "xxx",
 "success": true
}

返回状态码:

200: 成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.8. 卡券核销(单张卡券)

请求接口: /offer/coupon/use
接口描述: 用于卡券核销(单张卡券)
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString20会员类型
couponCodeString100券码
params{}Object(Map)扩展属性

参数示例

{
 "channelType": "KYLIN_GUIDE",
"couponCode": "96800081",
 "memberType": "shuyun",
 "params": {
 "shopCode": "123"
 }
}

返回结果:

字段名称类型字段描述
msgString实例状态更新成功时为空,更新失败时为对应的失败原因
successBoolean是否成功

返回结果示例

{
 "msg": "xxx",
 "success": true
}

返回状态码:

200: 成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.9. 查询人券关系列表

请求接口: /offer/instance/list
接口描述: 用于查询卡券实例列表信息,实际接口返回字段包含:发券时传入字段及卡券核销时传入字段;
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
currentPageString当前页,默认为1
memberIdString32会员ID
memberTypeString20会员类型
pageSizeString每页显示数量,默认为10,上限为100
statusString券实例状态:VALID(已生效)、USED(已使用)、EXPIRED(已失效)、GRANTED(已发放)、FROZEN(冻结中)

参数示例

{
"memberType": "shuyun",
"channelType": "KYLIN_GUIDE",
"memberId": "001",
"status": "VALID",
"currentPage": 1,
"pageSize": 10
}

返回结果:

字段名称类型字段描述
currentPageInteger当前页
dataArray分页数据
pageSizeInteger分页容量

返回结果示例

{
"currentPage": 0,
"pageSize": 0,
"data": [
{
"instanceId": "001",
"status": "VALID",
"memberId": "32345464545",
"projectId": "1001",
"couponCode": "couponCode",
"projectType": "CASH",
"projectName": "新会员券",
"validTime": "2022-06-01T04:00:36.761Z",
"expireTime": "2022-06-01T04:00:36.761Z",
"effectText": "12 元、8.5 折",
"ruleText": "具体规则",
"grantTime": "2022-06-01T04:00:36.761Z",
"useTime": "2022-06-01T04:00:36.761Z",
"selectorRule": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"presetOrCustomField": {
 "employeeId":"100001",
 "counterId":"100001",
 "recordId":"100001",
 "ticketNum":"100001",
 "shopCode":"100001",
 "productCode":"100001",
 "campaignId":"100001",
 "selectShopCode":"100001",
 "orderId":"100001""sharedBy": "100001""sharedCouponCode": "100001"
},
"customizedProperties": {
 "key": "value"
}
}
]
}

返回状态码:

200: 成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.10. 查询会员券信息

请求接口: /offer/coupon/detail
接口描述: 用于查询卡券实例明细信息,实际接口返回字段包含:发券时传入字段及卡券核销时传入字段;
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString20会员类型
couponCodeString100卡券实例id

返回结果:

字段名称类型字段描述
instanceInfoDataObject结构体如下

instanceInfoData:

字段名称类型必填长度字段描述
expireTimeString实例过期时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区:GMT+8
grantTimeString发放时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区:GMT+8
couponCodeString必填150优惠券码
memberIdString必填32会员ID
projectIdString必填32卡券项目ID
projectNameString255卡券项目名称
projectTypeString20卡券项目类型-使用效果类型
ruleTextString255使用规则/使用说明
statusString20卡券实例状态:GRANTED(已发放)、VALID(已生效)、EXPIRED(已失效)、USED(已使用)、FROZEN(冻结中)
useTimeString核销时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区:GMT+8
validTimeString实例生效时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区:GMT+8
presetOrCustomFieldObject(Map)扩展属性
instanceIdString32卡券实例ID
effectTextString255效果描述
selectorRuleObject(Map)选择器规则
customizedPropertiesObject(Map)其他规则属性

扩展字段结构:

字段名称类型必填长度字段描述
campaignIdString100活动ID
employeeIdString32核销员工号
counterIdString64核销POS机号
ticketNumString64核销小票号
recordIdString32兑换记录ID
shopCodeString32核销门店编码
productCodeString32核销商品编码
selectShopCodeString32选择门店编码
orderIdString32发放订单ID
sharedByString32分享人
sharedCouponCodeString32分享券ID

返回结果示例

{
 "instanceId": "001",
 "status": "VALID",
 "memberId": "32345464545",
 "projectId": "1001",
 "couponCode": "couponCode",
 "projectType": "CASH",
 "projectName": "新会员券",
 "validTime": "2022-05-30T03:25:56.873Z",
 "expireTime": "2022-05-30T03:25:56.873Z",
 "effectText": "12 元、8.5 折",
 "ruleText": "具体规则",
 "grantTime": "2022-05-30T03:25:56.873Z",
 "useTime": "2022-05-30T03:25:56.873Z",
 "selectorRule": {
 "additionalProp1": {},
 "additionalProp2": {},
 "additionalProp3": {}
 },
 "customizedProperties": {
 "key": "value"
 },
"presetOrCustomField": {
 "employeeId":"100001",
 "counterId":"100001",
 "recordId":"100001",
 "ticketNum":"100001",
 "shopCode":"100001",
 "productCode":"100001",
 "campaignId":"100001",
 "selectShopCode":"100001",
 "orderId":"100001""sharedBy": "100001""sharedCouponCode": "100001"
}
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.11. 卡券失效

请求接口: /offer/coupon/invalid
接口描述: 用于卡券失效,卡券模块不允许对卡券进行二次失效,相关操作会返回操作失败(succsess不为 true)
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString20会员类型
couponCodeString100券码
params{}Object(Map)扩展属性

参数示例

{
 "channelType": "KYLIN_GUIDE",
"couponCode": "96800081",
 "memberType": "shuyun",
 "params": {
 "shopCode": "123"
 }
}

返回结果:

字段名称类型字段描述
msgString实例状态更新成功时为空,更新失败时为对应的失败原因
successBoolean是否成功

返回结果示例

{
 "msg": "xxx",
 "success": true
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.12. 卡券生效

请求接口: /offer/coupon/effective
接口描述: 用于卡券生效
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
channelTypeString20渠道类型
memberTypeString20会员类型
couponCodeString100券码
params{}Object(Map)扩展属性

参数示例

{
 "channelType": "KYLIN_GUIDE",
"couponCode": "96800081",
 "memberType": "shuyun",
 "params": {
 "shopCode": "123"
 }
}

返回结果:

字段名称类型字段描述
msgString实例状态更新成功时为空,更新失败时为对应的失败原因
successBoolean是否成功

返回结果示例

{
 "msg": "xxx",
 "success": true
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

7.13. 卡券延期

请求接口: /offer/coupon/{couponCode}/{memberType}/extension
接口描述: 用于卡券延期
请求类型: HTTP PUT

请求参数:

字段名称类型必填长度字段描述
unitString20相对时间单位:DAY(天)、WEEK(周)、MONTH(月)、YEAR(年)
timeDate具体日期:绝对时间必传,格式为yyyy-MM-dd HH:mm:ss
valueInteger相对时间值:相对时间必传
typeInteger延期时间类型:1-相对时间,2-绝对时间

参数示例

{
 "unit": "DAY",
 "time": "2022-05-17T07:59:11.135Z",
 "value": 0,
 "type": 0
}

返回结果:

字段名称类型字段描述
msgString实例状态更新成功时为空,更新失败时为对应的失败原因
successBoolean是否成功

返回结果示例

{
 "msg": "xxx",
 "success": true
}

返回状态码:

200: 成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

8.微信会员 API

8.1. 注册微信会员

请求接口: /wechat/member/register
接口描述: 用于注册微信会员
请求类型: HTTP POST

请求参数:

字段名称类型必填长度字段描述
wechatMemberObject结构体如下

wechatMember:

字段名称类型必填长度字段描述
addressString255联系地址(中文)
appIdString64微信App ID
appTypeString20应用类型code:WECHAT_MINI_PROGRAM(微信小程序)、WECHAT_OFFICIAL_ACCOUNT(微信公众号)
birthDayString会员生日-月日
birthYearString20会员生日-年
cardNoString64会员卡号
channelTypeString20渠道类型
cityString100用户所在城市名称
countryString20国籍
customerNoString64各渠道的渠道ID,若为空,微信渠道默认为appId_openId
districtString100用户所在区/县名称
emailString255邮箱
genderString2性别:F(女)、M(男)、O(未知)
headImgUrlString头像链接(微信专用)
identityCardString20身份证号
jobString255职业名称
memberNameString255会员名称
memberTypeString20会员类型
mobileString20手机号
nicknameString255微信昵称
openIdString64微信openId
provinceString255用户所在省名称
salesrepIdString64导购编号
shopNameString255会员注册门店名称
shopCodeString32会员注册门店编码
unionIdString64微信union_id(微信专用)
ageInteger32年龄
registerTimeString注册时间,格式为yyyy-MM-dd HH:mm:ss
customizedPropertiesObject(Map)会员扩展属性

扩展字段结构:

字段名称类型必填长度字段描述
registerSourceString100注册来源
customizedTagString1000个性标签,传入JSON字符串
checkPolicyStatusString10会员是否同意隐私授权:1(同意)、0(不同意)
referrerMobileString20推荐人手机号
isGetInfoByEmailString10是否同意接收邮件:1(同意)、0(不同意)
isGetInfoBySMSString10是否同意接收短信:1(同意)、0(不同意)
isGetInfoByServiceSMSString10是否同意接收服务类短信:1(同意)、0(不同意)
memberSalutationString100会员称谓(品牌需求新增)
memberStatusString20会员状态(品牌需求新增)
sportsPreferenceString100运动偏好
makeUpPreferenceString100美妆偏好

参数示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"memberType": "shuyun",
"mobile": "15021425981",
"memberName": "会员 1",
"unionId": "unionId28154751841",
"nickname": "昵称",
"headImgUrl": "http://www.xx.com/url?id=13256",
"gender": "F",
"city": "shanghaishi",
"province": "shanghaishi",
"district": "xuhui",
"country": "china",
"address": "上海市徐汇区天钥桥路 1001 号",
"job": "teacher",
"cardNo": "1001",
"email": "10001@shuyun.com",
"birthYear": "1997",
"birthDay": "01-01",
"age": 25,
"identityCard": "235407195106112745",
"registerTime": "2019-11-12 10:10:10",
"openId": "openId28154751841",
"appId": "appId28154751841",
"appType": "WECHAT_MINI_PROGRAM",
"shopName": "tb001",
"shopCode": "tb001",
"customerNo": "appId_openId",
"customizedProperties": {
"registerSource": "线下活动",
"customizedTag": "{“爱好”:”篮球”}",
"checkPolicyStatus": "1",
"referrerMobile": "15021228866",
"isGetInfoByEmail": "1",
"isGetInfoBySMS": "1",
"isGetInfoByServiceSMS": "1",
"memberSalutation": "王女士",
"memberStatus": "FREEZE""sportsPreference": "篮球""makeUpPreference": "口红"
},
"bindingExtProperties": {
"string": "update"
},
"salesrepId": "TA1002",
"channelType": "WECHAT"
}

返回结果:

字段名称类型字段描述
memberIdString会员 ID
statusString注册状态 NEW: 新注册, BINDING: 添加绑定, REGISTERED: 已注册

返回结果示例

{
 "memberId": "0040a85608844820900558fc2671cb7c",
 "status": "NEW"
}

返回状态码:

200: 成功
201: Created
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

8.2. 查询会员信息

请求接口: /wechat/member/queryByUnionId
接口描述: 根据 unionId 查询会员信息以及微信渠道信息,查询不到将抛异常
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
memberTypeString20会员类型
unionIdString64微信unionId

返回结果:

字段名称类型字段描述
memberIdString会员ID,全渠道唯一
memberTypeString会员类型
mobileString手机号码
memberNameString姓名
unionIdString微信unionId
nicknameString微信昵称
headImgUrlString用户头像
genderString性别:F(女)、M(男)、O(未知)
cityString用户所在城市名称
provinceString用户所在省份名称
districtString用户所在区/县名称
countryString国籍
addressString会员联系地址
jobString会员职业
cardNoString会员卡号
emailString邮箱地址
birthYearString会员生日-年,格式为yyyy
birthDayString会员生日-月日,格式为MM-dd
ageInteger会员年龄
identityCardString会员身份证
registerTimeString注册时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区为GMT+8
memberBindingsArray微信渠道关系数据
customizedPropertiesObject(Map)会员扩展属性,数据结构详见下方

memberBindings:

字段名称类型必填长度字段描述
appIdString20微信appId
openIdString64微信openId
unionIdString64公众平台唯一标识
customerNoString64渠道ID,若为空,则注册时默认为appId_openId

扩展字段结构:

字段名称类型必填长度字段描述
registerSourceString100注册来源
customizedTagString1000个性标签,传入JSON字符串
belongBCString100所属BC工号
belongShopString100所属店铺ID
checkPolicyStatusString10会员是否同意隐私授权:1(同意)、0(不同意)
referrerMobileString20推荐人手机号
isGetInfoByEmailString10是否同意接收邮件:1(同意)、0(不同意)
isGetInfoBySMSString10是否同意接收短信:1(同意)、0(不同意)
isGetInfoByServiceSMSString10是否同意接收服务类短信:1(同意)、0(不同意)
wxOpenIdString32公众号openid
isSubscribeString5是否关注公众号:1(已关注)、2(已取关)
memberSalutationString100会员称谓(品牌需求新增)
memberStatusString20会员状态(品牌需求新增)

返回结果示例

{
"memberId": "0040a85608844820900558fc2671cb7c",
"memberType": "shuyun",
"mobile": "15021425981",
"memberName": "会员 1",
"unionId": "unionId28154751841",
"nickname": "昵称",
"headImgUrl": "http://www.xx.com/url?id=13256",
"gender": "F",
"city": "shanghaishi",
"province": "shanghaishi",
"district": "xuhui",
"country": "china",
"address": "上海市徐汇区天钥桥路 1001 号",
"job": "teacher",
"cardNo": "1001",
"email": "10001@shuyun.com",
"birthYear": "1997",
"birthDay": "01-01",
"age": 25,
"identityCard": "235407195106112745",
"registerTime": "2021-10-13T12:26:58.386+08:00",
"memberBindings": [
{
"appId": "appId28154751841",
"openId": "openId28154751841",
"unionId": "unionId28154751841",
"customerNo": "appId_openId"
}
]
"customizedProperties": {
"registerSource": "线下活动",
"customizedTag": "{“爱好”:”篮球”}",
"checkPolicyStatus": "1",
"referrerMobile": "15021228866",
"isGetInfoByEmail": "1",
"isGetInfoBySMS": "1",
"isGetInfoByServiceSMS": "1",
"wxOpenId": "HBNUJIOBuihUIh",
"isSubscribe": "1",
"memberSalutation": "王女士",
"memberStatus": "FREEZE""sportsPreference": "篮球""makeUpPreference": "口红"
}
}

返回状态码:

200: 请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

8.3. 查询会员基本信息

请求接口: /wechat/member/queryByOpenId
接口描述: 根据 appId 和 openId 查询会员基本信息
请求类型: HTTP GET

请求参数:

字段名称类型必填长度字段描述
memberTypeString20会员类型
appIdString32微信appId
openIdString64微信open_id

返回结果:

字段名称类型字段描述
memberIdString会员ID,全渠道唯一
memberTypeString会员类型
mobileString手机号码
memberNameString姓名
unionIdString微信unionId
nicknameString微信昵称
headImgUrlString用户头像
genderString性别(F:女,M:男,O:未知)
cityString用户所在城市名称
provinceString用户所在省份名称
districtString用户所在区/县名称
countryString国籍
addressString会员联系地址
jobString会员职业
cardNoString会员卡号
emailString邮箱地址
birthYearString会员生日-年(格式: yyyy)
birthDayString会员生日-月日(格式: MM-dd)
ageInteger会员年龄
identityCardString会员身份证
registerTimeString注册时间(格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX,时区:GMT+8)
customizedPropertiesObject(Map)会员扩展属性,数据结构见下方

扩展字段结构:

字段名称类型必填长度字段描述
registerSourceString100注册来源
customizedTagString1000个性标签,传入JSON字符串
belongBCString100所属BC工号
belongShopString100所属店铺ID
checkPolicyStatusString10会员是否同意隐私授权:1(同意)、0(不同意)
referrerMobileString20推荐人手机号
isGetInfoByEmailString10是否同意接收邮件:1(同意)、0(不同意)
isGetInfoBySMSString10是否同意接收短信:1(同意)、0(不同意)
isGetInfoByServiceSMSString10是否同意接收服务类短信:1(同意)、0(不同意)
wxOpenIdString32公众号openid
isSubscribeString5是否关注公众号:1(已关注)、2(已取关)
memberSalutationString100会员称谓(品牌需求新增)
memberStatusString20会员状态(品牌需求新增)

返回结果示例

{
 "memberId": "0040a85608844820900558fc2671cb7c",
 "memberType": "shuyun",
 "mobile": "15021425981",
 "memberName": "会员 1",
 "unionId": "unionId28154751841",
 "nickname": "昵称",
 "headImgUrl": "http://www.xx.com/url?id=13256",
 "gender": "F",
 "city": "shanghaishi",
 "province": "shanghaishi",
 "district": "xuhui",
 "country": "china",
 "address": "上海市徐汇区天钥桥路 1001 号",
 "job": "teacher",
 "cardNo": "1001",
 "email": "10001@shuyun.com",
 "birthYear": "1997",
 "birthDay": "01-01",
 "age": 25,
 "identityCard": "235407195106112745",
 "registerTime": "2021-10-13T12:26:58.386+08:00",
 "memberBindings": [
 {
 "appId": "appId28154751841",
 "openId": "openId28154751841",
 "unionId": "unionId28154751841",
 "customerNo": "appId_openId"
 }
 ]
"customizedProperties": {
"registerSource": "线下活动",
"customizedTag": "{“爱好”:”篮球”}",
"checkPolicyStatus": "1",
"referrerMobile": "15021228866",
"isGetInfoByEmail": "1",
"isGetInfoBySMS": "1",
"isGetInfoByServiceSMS": "1",
"wxOpenId": "HBNUJIOBuihUIh",
"isSubscribe": "1",
"memberSalutation": "王女士",
"memberStatus": "FREEZE""sportsPreference": "篮球""makeUpPreference": "口红"
}
}

返回状态码:

200: 请求成功
401:api-gateway 鉴权失败
403: 禁止访问
404: 请求的 URL 不存在

异常示例

{
 "module": "Solution Package",
 "service": "openapi",
 "code": "010407",
 "desc": "参数异常",
 "uri": "http://..."
}

Reviews