有赞云开放接口会员相关场景对接说明
一、场景说明
首先明确几个概念:粉丝、客户、用户和会员;
粉丝:有赞没有统一的流量入口,消费者都是从不同的渠道进入有赞,比如微信、微博、APP 等,有赞通过粉丝类型即 fans_type 去标识这些渠道,通过静默授权等方式,有赞拿到不同渠道账号体系对应的用户 ID,生成有赞的粉丝 ID 即 fans_id,粉丝 ID 是粉丝的唯一标识;
客户:粉丝在微商城中主动绑定了手机号,即成为微商城的客户;或者买家通过普通的链接或扫描二维码等方式进入微商城,下单时绑定手机号,也会成为微商城的客户;微商城客户以手机号作为用户标识,并具有唯一的客户 ID;
会员:商家在微商城创建会员卡,将会员卡发放给粉丝或客户,或者粉丝和客户主动领取会员卡,即成为该微商城的会员;
用户:用户关注商家公众号,用户只会出现在粉丝列表(必须商家在微商城店铺绑定公众号),即等同于粉丝概念;
本文档主要介绍了外部系统和有赞微商城对接时,如何打通会员信息及会员附带的一些基础权益,如优惠券、积分等。需要注意的是,会员数据打通之前需要双方约定好会员规则,会员规则一致才可以打通。会员数据对接主要涉及的接口有客户创建接口、商家创建会员卡、给用户发放会员卡、获取商家会员卡列表、会员卡对应的会员列表、创建优惠券、发放优惠券优惠码、核销优惠券优惠码、给用户加积分、给用户减积分、全量同步用户积分等。
二、场景接口对接说明
1、客户信息同步场景
场景描述:商家有第三方系统的客户信息需要同步到有赞,可以在微商城客户管理中手动录入,也可以通过接口同步;
方法 1:通过手动添加的方式录入客户信息;微商城后台 - 客户 - 客户管理 - 添加客户,输入客户的一些基本信息保存即可;
——如果想在录入客户信息的同时将客户设置为会员,添加客户信息时勾选“会员”,并选择对应的会员卡即可;
方法 2:通过模板导入的方式录入客户信息;微商城后台 - 客户 - 客户管理 - 批量导入,点击后,按照提示下载模板,填写客户信息,再进行导入就完成了;
——通过哪个接口可以完成客户信息录入工作?
(1)客户创建接口:youzan.scrm.customer.create
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-405/detail/api/0/92;
(3)重要字段说明:
》》birthday:客户生日,格式为 XXXX-XX-XX;
》》contact_address:联系地址,包含 address 详细地址和 area_code 地域编码,地域编码为国家统一发布的地域编码,百度即可查询;
》》gender:性别,性别,0 表示未知,1 表示男,2 表示女;
》》name:姓名,没有强制要求,建议是填写真实姓名;
》》mobile:手机号,用户注册有赞账号时使用的手机号;如果第三方系统中的账户系统是以手机号作为用户标识的,将此手机号作为传参即可;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
DefaultYZClient yzClient = new DefaultYZClient();
YouzanScrmCustomerCreateParams youzanScrmCustomerCreateParams = new YouzanScrmCustomerCreateParams();
YouzanScrmCustomerCreate youzanScrmCustomerCreate = new YouzanScrmCustomerCreate();
youzanScrmCustomerCreate.setAPIParams(youzanScrmCustomerCreateParams);
YouzanScrmCustomerCreateParams.YouzanScrmCustomerCreateParamsCustomercreate customerCreateParamsCustomercreate = new YouzanScrmCustomerCreateParams.YouzanScrmCustomerCreateParamsCustomercreate();
customerCreateParamsCustomercreate.setBirthday("1990-09-09");
Short girl=1;
customerCreateParamsCustomercreate.setGender(girl);
customerCreateParamsCustomercreate.setName("蒋依依");
YouzanScrmCustomerCreateParams.YouzanScrmCustomerCreateParamsContactaddress address=new YouzanScrmCustomerCreateParams.YouzanScrmCustomerCreateParamsContactaddress();
address.setAddress("杭州市西湖区黄龙时代");
customerCreateParamsCustomercreate.setContactAddress(address);
youzanScrmCustomerCreateParams.setCustomerCreate(customerCreateParamsCustomercreate);
youzanScrmCustomerCreateParams.setMobile("13599683456");
2、会员信息同步场景
场景描述:买家在微商城购物时,商家想要买家享受到一些会员权益,比如包邮、折扣、送积分等,如何在微商城创建对应权益的会员卡并发放给客户?如何通过接口实现外部系统会员信息和有赞的打通?
——微商城后台 - 客户 - 会员卡 - 会员卡管理,可选择无门槛会员卡、按规则发放的会员卡或需购买的会员卡形式创建会员卡,此处以无门槛会员卡为例进行说明:
——微商城后台 - 客户 - 客户管理,在客户信息的最右边,点击设置会员卡即可给会员发放会员卡;
——选择对应的会员卡进行保存即可;
——也可以在会员卡界面点击“发卡”,让用户点击链接或扫码领卡;
——通过哪个接口可以在微商城创建会员卡?
(1)商家创建会员卡:youzan.scrm.card.create.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-323/detail/api/0/292;
(3)重要字段说明:
》》grant_condition:领取条件,目前支持三种规则设置,amount_limit:累积消费金额(单位是分),points_limit:累积获取积分,trade_limit:累积下单成功笔数,达成任一条件即可领取会员卡;
》》level:规则卡的等级,当会员卡类型设置为规则卡时才需要设置;
》》type:权益类型,1: 包邮,2: 折扣,3: 送现金券,4:送积分;
》》discount:折扣权益字段,折数 ,1 表示 0.01 折,10 标识 0.1 折,以此类推,范围选择:1-100(权益 type 为 2 时必传);
》》points:积分权益字段,开卡赠送的积分数量(权益 type 为 4 时必传);
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
DefaultYZClient yzClient = new DefaultYZClient();
YouzanScrmCardCreate youzanScrmCardCreate = new YouzanScrmCardCreate();
//创建参数对象,并设置参数
YouzanScrmCardCreateParams youzanScrmCardCreateParams = new YouzanScrmCardCreateParams();
youzanScrmCardCreate.setAPIParams(youzanScrmCardCreateParams);
YouzanScrmCardCreateResult result = yzClient.invoke(youzanScrmCardCreate, token, YouzanScrmCardCreateResult.class);
——通过哪个接口可以查看商家在微商城中已经创建好的会员卡有哪些?
(1)获取商家会员卡列表:youzan.scrm.card.list
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-323/detail/api/0/97 ;
(3)重要字段说明:
》》page:页码,设置需要拉取的页码,返回结果中,默认每页会显示 30 张会员卡的基本信息;
一般商家创建的会员卡类型不会很多,因此此接口为了调用了方便性,只设置了“页码”入参,商家在调用接口时可不传参,直接调用即可;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
YouzanScrmCardList youzanScrmCardList = new YouzanScrmCardList();
//创建参数对象,并设置参数
YouzanScrmCardListParams youzanScrmCardListParams = new YouzanScrmCardListParams();
youzanScrmCardListParams.setPage(1);
youzanScrmCardList.setAPIParams(youzanScrmCardListParams);
try {
YouzanScrmCardListResult result = yzClient.invoke(youzanScrmCardList, token, YouzanScrmCardListResult.class);
——通过哪个接口可以将商家创建好的会员卡发放给指定客户?
(1)给用户发放会员卡:youzan.scrm.customer.card.grant.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-323/detail/api/0/90 ;
(3)重要字段说明:
》》card_alias:商家会员卡的唯一标识,通过上面讲过的接口“获取商家会员卡列表:youzan.scrm.card.list”可以获取到;
》》fans_type:粉丝类型,自有粉丝: fans_type = 1,用于标识粉丝的来源渠道,非必须;
》》fans_id:粉丝 ID,从各渠道进入微商城后,粉丝在微商城中的唯一 ID,如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》mobile:手机号,如果用户主动绑定了手机号,或是直接通过手机号注册的方式进入微商城,后台会优先以手机号作为用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》open_user_id:三方用户 ID,此 ID 只出现在 APPSDK 开店业务场景中,在登录态打通过程中,三方将 open_user_id 传给有赞,作为三方 APP 用户在微商城中的用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》目前只支持无门槛和规则卡,所有的入参都是必填的;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
YouzanScrmCustomerCardGrantParams youzanScrmCustomerCardGrantParams = new YouzanScrmCustomerCardGrantParams();
youzanScrmCustomerCardGrantParams.setCardAlias("Y3693xvtep3v5c");
youzanScrmCustomerCardGrantParams.setMobile("18250667536");
youzanScrmCustomerCardGrantParams.setFansId(0L);
youzanScrmCustomerCardGrantParams.setOpenUserId("0");
Short fanstype=1;
youzanScrmCustomerCardGrantParams.setFansType(fanstype);
youzanScrmCustomerCardGrant.setAPIParams(youzanScrmCustomerCardGrantParams);
YouzanScrmCustomerCardGrantResult result = yzClient.invoke(youzanScrmCustomerCardGrant, token, YouzanScrmCustomerCardGrantResult.class);
3、会员卡及会员信息管理场景
场景描述:商家需要对拥有不同权益的会员进行管理,如何在微商城查询某一张会员卡下都有哪些会员?或者说如何查看某一张会员卡都发放给了哪些人?
——方式一,微商城后台 - 客户 - 客户管理,在查询筛选条件后选择对应的会员卡,即可查询出该会员卡下有哪些会员;
——方式二,微商城后台 - 客户 - 会员卡,点击会员卡上的“查看成员”,即可一键跳转到会员卡会员查询页面,也就是上述方式一的界面;
——通过哪个接口可以查询出某张会员卡下会员有哪些?
(1)会员卡对应的会员列表:youzan.scrm.customer.search.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-323/detail/api/0/94 ;
(3)重要字段说明:
》》card_alias: 商家会员卡的唯一标识,通过上面讲过的接口“获取商家会员卡列表:youzan.scrm.card.list”可以获取到;
》》page:页码,每页默认显示 20 条,最大支持 500 页;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
YouzanScrmCustomerSearch youzanScrmCustomerSearch = new YouzanScrmCustomerSearch();
//创建参数对象,并设置参数
YouzanScrmCustomerSearchParams youzanScrmCustomerSearchParams = new YouzanScrmCustomerSearchParams();
youzanScrmCustomerSearchParams.setCardAlias("Y3693xvtep3v5c");
youzanScrmCustomerSearchParams.setPage(1);
youzanScrmCustomerSearch.setAPIParams(youzanScrmCustomerSearchParams);
YouzanScrmCustomerSearchResult result = yzClient.invoke(youzanScrmCustomerSearch, token, YouzanScrmCustomerSearchResult.class);
4、优惠券同步场景
场景描述:商家为了提高销量或吸粉,需要创建一些优惠券发放给用户,如何在微商城中完成优惠券的创建并发放给用户?如何实现外部系统的优惠券和有赞的打通?
——微商城后台 - 营销 - 营销概况 - 营销玩法 - 优惠券,点击绿色的按钮“新建优惠券”,即可创建对应权益的优惠券;
——微商城后台 - 营销 - 营销概况 - 营销玩法 - 优惠券界面,可以查看已经创建好的优惠券的推广方式及领取情况;
——点击“推广”后,获取优惠券的推广链接、二维码或小程序码;用户点击链接,扫描二维码或小程序码均可以领取优惠券;
——通过哪个接口可以在微商城创建对应权益的优惠券?
(1)创建优惠券:youzan.ump.promocard.add
(2)链接地址:https://www.youzanyun.com/apilist/detail/group_ump/coupon/youzan.ump.promocard.add ;
(3)重要字段说明:
》》at_least:如果 is_at_least 为 1,该字段表示订单必须满这个价格,优惠券才可用,即满多少元可用;单位:元,精确到分,例如 5.20 元;
》》end_at:优惠券有效期结束时间,时间格式 yyyy-MM-dd HH🇲🇲ss,避免因时间格式不对造成的调用失败问题;
》》is_at_least:是否设置满多少元可用,0 表示不限制,1 表示限制;
》》need_user_level:是否限制领用者的等级,0 表示不限制,大于 0 表示领用者必须是这个等级 ID,才有资格领取该优惠券;比如该参数入参为 4,某用户持有的会员卡等级为 3,则该用户是没有资格领取该优惠券的;
》》quota:限领个数,为 0 则表示不限制,入参 2、3、4…分别表示每人最多领取 2、3、4 个…,以此类推;
》》start_at:优惠券生效时间,时间格式 yyyy-MM-dd HH🇲🇲ss,避免因时间格式不对造成的调用失败问题;
》》total:总库存,即优惠券的总发放个数;如果 quota 字段的入参不为 0,则优惠券发放完毕后,实际领取人数会比优惠券的总数少;
》》is_random:是否是随机优惠券,0 表示不随机,1 表示随机,用户领取到的优惠券面额是商家设置的面额范围内的随机值,面额范围由下面提到的 value 和 value_random_to 字段确定;
》》value:如果 is_random 为 1,则该字段表示随机金额的下限;单位:元,精确到分;
》》value_random_to: 如果 is_random 为 1,则该字段表示随机金额的上限,单位:元,精确到分;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
YouzanUmpPromocardAdd youzanUmpPromocardAdd = new YouzanUmpPromocardAdd();
//创建参数对象,并设置参数
YouzanUmpPromocardAddParams youzanUmpPromocardAddParams = new YouzanUmpPromocardAddParams();
Float.parseFloat("100");
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-ddHH🇲🇲ss");
Date startat= null;
Date endat = null;
try {
startat = date.parse("2019-07-01 19:00:00");
endat=date.parse("2020-07-01 20:00:00");
} catch (ParseException e) {
e.printStackTrace();
}
youzanUmpPromocardAddParams.setAtLeast(Float.parseFloat("100"));
youzanUmpPromocardAddParams.setStartAt(startat);
youzanUmpPromocardAddParams.setEndAt(endat);
youzanUmpPromocardAddParams.setIsAtLeast(0);
youzanUmpPromocardAddParams.setTitle("来吧来吧");
youzanUmpPromocardAddParams.setQuota(0);
youzanUmpPromocardAddParams.setValue(20);
youzanUmpPromocardAddParams.setTotal(100);
youzanUmpPromocardAddParams.setRangeType("ALL");
youzanUmpPromocardAdd.setAPIParams(youzanUmpPromocardAddParams);
YouzanUmpPromocardAddResult result = yzClient.invoke(youzanUmpPromocardAdd, token, YouzanUmpPromocardAddResult.class);
——通过哪个接口可以将创建好的优惠券发放给客户?
(1)发放优惠券 / 优惠码:youzan.ump.coupon.take.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-341/detail/api/0/155;
(3)重要字段说明:
》》coupon_group_id:优惠券码组 ID,通过优惠券或优惠码创建接口创建成功后返回,也可以通过接口https://doc.youzanyun.com/doc#/content/API/1-341/detail/api/0/159 ”分页查询优惠券 / 优惠码列表“来获取,也可以通过接口https://doc.youzanyun.com/doc#/content/API/1-341/detail/api/0/160 ”获取所有未结束的优惠券 / 优惠码列表“;两者的主要区别有两点,一是前者是获取所有优惠券信息,包括过期的和失效的,后者只获取可用的;二是后者可以自定义字段来查询信息,比如只想查询 coupon_group_id,则入参只传 coupon_group_id 字段名即可;
》》fans_id:粉丝 ID,从各渠道进入微商城后,粉丝在微商城中的唯一 ID,如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》mobile:手机号,如果用户主动绑定了手机号,或是直接通过手机号注册的方式进入微商城,后台会优先以手机号作为用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》open_user_id:三方用户 ID,此 ID 只出现在 APPSDK 开店业务场景中,在登录态打通过程中,三方将 open_user_id 传给有赞,作为三方 APP 用户在微商城中的用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》weixin_openid:微信用户对应的 openid,fans_id 与 weixin_openid 存在一个即可;
注意:当入参 fans_id/weixin_openid、mobile、open_user_id 均有时,首先会通过 mobile 查找用户,其次是 fans_id/weixin_openid,最后是 open_user_id;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
YouzanUmpCouponTakeParams youzanUmpCouponTakeParams = new YouzanUmpCouponTakeParams();
YouzanUmpCouponTake youzanUmpCouponTake = new YouzanUmpCouponTake();
youzanUmpCouponTakeParams.setMobile(18989899333L);
youzanUmpCouponTakeParams.setCouponGroupId(989898933L);
youzanUmpCouponTake.setAPIParams(youzanUmpCouponTakeParams);
YouzanUmpCouponTakeResult result = yzClient.invoke(youzanUmpCouponTake,token,YouzanUmpCouponTakeResult.class);
5、优惠券核销场景
场景描述:当买家在线下商店或者在和有赞对接的其他商城系统里使用了优惠券,使用哪个接口可以同步的将用户在有赞店铺里的优惠券核销掉?
(1)核销优惠券 / 优惠码:youzan.ump.coupon.consume.verify.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-341/detail/api/0/144;
(3)重要字段说明:
》》code:买家端的优惠券 / 优惠码核销码,一般买家在线下商店使用或是在其他和有赞对接的商城系统中使用时可以获取到该核销码,不需要单独通过接口获取;如果需要通过接口获取,可以使用接口https://doc.youzanyun.com/doc#/content/API/1-341/detail/api/0/205获取买家名下持有的优惠券核销码;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
YouzanUmpCouponConsumeVerifyParams youzanUmpCouponConsumeVerifyParams = new YouzanUmpCouponConsumeVerifyParams();
youzanUmpCouponConsumeVerifyParams.setCode("858173768132");
YouzanUmpCouponConsumeVerify youzanUmpCouponConsumeVerify = new YouzanUmpCouponConsumeVerify();
youzanUmpCouponConsumeVerify.setAPIParams(youzanUmpCouponConsumeVerifyParams);
YouzanUmpCouponConsumeVerifyResult result = yzClient.invoke(youzanUmpCouponConsumeVerify,token,YouzanUmpCouponConsumeVerifyResult.class);
6、积分同步场景
场景描述:为了提高客户的粘性,商家会给一些客户发放积分用于兑换商品;或者在微商城设置一些积分规则,买家达到相应要求就会获得积分。如何在微商城设置积分规则给用户增加积分?如何实现外部系统的用户积分和有赞的打通?
——微商城后台 - 客户 - 客户管理,在用户信息的右侧点击给积分即可手动给用户增加或扣除积分,保存后刷新页面以显示最新数据;
——微商城后台 - 客户 - 积分管理,点击”设置通用规则“可以设置微商城中积分的一些通用规则,主要包括积分有效期、每日积分获取限制、积分保护期等;
——微商城后台 - 客户 - 积分管理,点击”新建积分规则“可以新增一些积分的获取规则,用户达成这些规则后即可获得对应积分,规则集主要包括关注微信公众号、每成功交易 X 笔、每消费 X 元等;
——通过哪个接口可以将外部系统的积分同步到有赞?
(1)全量同步用户积分:youzan.crm.customer.points.sync.3.1.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-371/detail/api/0/85;
(3)重要字段说明:
》》fans_id:粉丝 ID,从各渠道进入微商城后,粉丝在微商城中的唯一 ID,如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》fans_type:粉丝类型 (自有粉丝: fans_type = 1),与 fans_id 同时存在,当没有 fans_id 时,则 fans_id 与 fans_type 需要同时置为 0;
》》mobile:手机号,如果用户主动绑定了手机号,或是直接通过手机号注册的方式进入微商城,后台会优先以手机号作为用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》open_user_id:三方用户 ID,此 ID 只出现在 APPSDK 开店业务场景中,在登录态打通过程中,三方将 open_user_id 传给有赞,作为三方 APP 用户在微商城中的用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》points:积分值,该接口是全量同步用户积分的接口,无论该用户原来的积分数值是多少,通过该接口更新后,用户的积分值会变为 points 的入参;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
DefaultYZClient yzClient = new DefaultYZClient();
YouzanCrmCustomerPointsSyncParams youzanCrmCustomerPointsSyncParams = new YouzanCrmCustomerPointsSyncParams();
YouzanCrmCustomerPointsSync youzanCrmCustomerPointsSync = new YouzanCrmCustomerPointsSync();
youzanCrmCustomerPointsSyncParams.setAccountId("18250667566");
youzanCrmCustomerPointsSyncParams.setAccountType(3);
youzanCrmCustomerPointsSyncParams.setPoints(20);
youzanCrmCustomerPointsSyncParams.setReason("test");
youzanCrmCustomerPointsSync.setAPIParams(youzanCrmCustomerPointsSyncParams);
YouzanCrmCustomerPointsSyncResult result = yzClient.invoke(youzanCrmCustomerPointsSync,token,YouzanCrmCustomerPointsSyncResult.class);
7、积分增加 / 扣减场景
——买家在外部系统获得了积分,通过哪个接口可以给买家在有赞店铺里的对应账户增加积分?
(1)给用户加积分:youzan.crm.customer.points.increase.3.1.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-371/detail/api/0/14 ;
(3)重要字段说明:
》》fans_id:粉丝 ID,从各渠道进入微商城后,粉丝在微商城中的唯一 ID,如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》fans_type:粉丝类型 (自有粉丝: fans_type = 1),与 fans_id 同时存在,当没有 fans_id 时,则 fans_id 与 fans_type 需要同时置为 0;
》》mobile:手机号,如果用户主动绑定了手机号,或是直接通过手机号注册的方式进入微商城,后台会优先以手机号作为用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》open_user_id:三方用户 ID,此 ID 只出现在 APPSDK 开店业务场景中,在登录态打通过程中,三方将 open_user_id 传给有赞,作为三方 APP 用户在微商城中的用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》points:积分值,此处传入的积分值就是用户积分的增加值;比如用户原有积分 20,points 入参 15,接口调用成功后,用户积分为 35;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
YouzanCrmCustomerPointsIncreaseParams youzanCrmCustomerPointsIncreaseParams = new YouzanCrmCustomerPointsIncreaseParams();
youzanCrmCustomerPointsIncreaseParams.setAccountId("18250667566");
youzanCrmCustomerPointsIncreaseParams.setAccountType(3);
youzanCrmCustomerPointsIncreaseParams.setPoints(20);
youzanCrmCustomerPointsIncreaseParams.setReason("test");
youzanCrmCustomerPointsIncrease.setAPIParams(youzanCrmCustomerPointsIncreaseParams);
YouzanCrmCustomerPointsIncreaseResult result = yzClient.invoke(youzanCrmCustomerPointsIncrease, token, YouzanCrmCustomerPointsIncreaseResult.class);
——买家在外部系统使用了积分,通过哪个接口可以给买家在有赞店铺里的对应账户扣除积分?
(1)给用户减积分:youzan.crm.customer.points.decrease.3.1.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-371/detail/api/0/88 ;
(3)重要字段说明:
》》fans_id:粉丝 ID,从各渠道进入微商城后,粉丝在微商城中的唯一 ID,如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》fans_type:粉丝类型 (自有粉丝: fans_type = 1),与 fans_id 同时存在,当没有 fans_id 时,则 fans_id 与 fans_type 需要同时置为 0;
》》mobile:手机号,如果用户主动绑定了手机号,或是直接通过手机号注册的方式进入微商城,后台会优先以手机号作为用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》open_user_id:三方用户 ID,此 ID 只出现在 APPSDK 开店业务场景中,在登录态打通过程中,三方将 open_user_id 传给有赞,作为三方 APP 用户在微商城中的用户标识;如果没有写 0,mobile/fans_id/open_user_id 三选一传入;
》》points:积分值,此处传入的积分值就是用户积分的扣除值;比如用户原有积分 20,points 入参 15,接口调用成功后,用户积分为 5;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
YouzanCrmCustomerPointsDecrease youzanCrmCustomerPointsDecrease = new YouzanCrmCustomerPointsDecrease();
youzanCrmCustomerPointsDecreaseParams.setAccountId("18250667566");
youzanCrmCustomerPointsDecreaseParams.setAccountType(3);
youzanCrmCustomerPointsDecreaseParams.setPoints(5);
youzanCrmCustomerPointsDecreaseParams.setReason("test");
youzanCrmCustomerPointsDecrease.setAPIParams(youzanCrmCustomerPointsDecreaseParams);
YouzanCrmCustomerPointsDecreaseResult result = yzClient.invoke(youzanCrmCustomerPointsDecrease,token,YouzanCrmCustomerPointsDecreaseResult.class);
——买家在有赞店铺中消耗或增加积分,外部系统通过哪个接口获取最新的用户积分数值?
(1)检索用户积分及积分变更记录:youzan.crm.customer.points.changelog.search.3.0.0
(2)链接地址:https://doc.youzanyun.com/doc#/content/API/1-371/detail/api/0/13;
(3)重要字段说明:
》》fans_id:粉丝 ID,从各渠道进入微商城后,粉丝在微商城中的唯一 ID,mobile/fans_id/open_user_id 三选一传入;
》》mobile:手机号,如果用户主动绑定了手机号,或是直接通过手机号注册的方式进入微商城,后台会优先以手机号作为用户标识;mobile/fans_id/open_user_id 三选一传入;
》》open_user_id:三方用户 ID,此 ID 只出现在 APPSDK 开店业务场景中,在登录态打通过程中,三方将 open_user_id 传给有赞,作为三方 APP 用户在微商城中的用户标识;mobile/fans_id/open_user_id 三选一传入;
(4)调用格式,通过(2)中链接访问后:
(5)HTTP 调用示例:
(6)JAVA 调用示例:
YouzanCrmCustomerPointsChangelogSearch youzanCrmCustomerPointsChangelogSearch = new YouzanCrmCustomerPointsChangelogSearch();
//创建参数对象,并设置参数
YouzanCrmCustomerPointsChangelogSearchParams youzanCrmCustomerPointsChangelogSearchParams = new YouzanCrmCustomerPointsChangelogSearchParams();
youzanCrmCustomerPointsChangelogSearchParams.setAccountId("18250667566");
youzanCrmCustomerPointsChangelogSearchParams.setAccountType(3);
youzanCrmCustomerPointsChangelogSearchParams.setPage(1);
youzanCrmCustomerPointsChangelogSearchParams.setPageSize(20);
youzanCrmCustomerPointsChangelogSearch.setAPIParams(youzanCrmCustomerPointsChangelogSearchParams);
YouzanCrmCustomerPointsChangelogSearchResult result = yzClient.invoke(youzanCrmCustomerPointsChangelogSearch, token, YouzanCrmCustomerPointsChangelogSearchResult.class);
8、会员信息变更有赞主动推送场景
场景描述:会员信息涉及到客户基础信息、会员权益信息、优惠券信息、积分信息等,当这些关键信息的变化是发生在有赞端的时候,如何能实现有赞实时、主动的将变动信息推送给外部系统?
——通过对接有赞的消息推送服务来解决这个问题,以下以积分消息的推送配置为例做说明,其他场景的配置可做参考;
(1)积分消息推送说明:https://doc.youzanyun.com/doc#/content/27027/27085;
(2)积分推送字段说明:
》》fans_id:粉丝 ID,从各渠道进入微商城后,粉丝在微商城中的唯一 ID;
》》mobile:手机号,若粉丝主动绑定了手机号,则推送消息中 fans_id 和 mobile 都会有值,若没有绑定手机号,则只会有 fans_id 或 open_user_id;
》》open_user_id:三方用户 ID,此 ID 只出现在 APPSDK 开店业务场景中,在登录态打通过程中,三方将 open_user_id 传给有赞,作为三方 APP 用户在微商城中的用户标识;
》》amount:积分变动值,若为正数表示增加,若为负数表示扣除;
》》total:积分变动后的值,若外部系统只需同步变动后的积分值的话,只需取 total 字段的值即可;
(3)推送的配置:
登录有赞云https://diy.youzanyun.com/application/list ,在有赞云控制台 - 消息推送配置中,打开”推送服务“,并勾选对应的消息;
三、使用 API 接口调试工具排查接口调用问题
调用有赞 API 接口出现问题时,可以使用 API 接口调试工具对调用参数进行检查,以此来确认是否是调用参数的问题。由于目前有赞云还未上线 API 接口调试工具,建议您可使用 postman 工具测试接口调用。如果您的应用是有赞开放平台的,可以继续使用开放平台 API 调试工具。
Postman 工具下载地址:https://www.getpostman.com/
开放平台 API 调试工具地址:https://www.youzanyun.com/docs/debugger ;
Postman 调试工具调用示例:获取用户积分
我想咨询一下关于粉丝,用户的这一系列基本概念。
1). 首先关于粉丝,按照文章中描述,是否可以理解为,不同的渠道,在有赞内部会生成不同的 fans_id,该 fans_id 仅针对渠道内唯一,同一个实际用户可能会对应多条 fans_id 记录?
2). 关于微信粉丝 openid。如果商家没有在微商城中绑定公众号,设置公众号入口,那么https://open.youzanyun.com/api/youzan.users.weixin.follower.get/3.0.0 这个接口根据 fans_id 是否就无法获取到 open_id 等信息?
3). 只要粉丝在微商城中下单,有赞是否将下单所留手机号作为客户唯一标识?还是下单的时候有具体的绑定操作指引?
4). 关联问题 1. 粉丝如果分渠道,客户,会员,用户,是不是都是要分渠道的去看?