模版组件提单页通过本接口从开发者的服务获取可用的相关营销信息,展示给用户。
基本信息 | |
---|---|
HTTP URL | 开发者通过扩展点设置接口设置的 query_marketing_callback 路径 |
HTTP Method | POST |
名称 | 类型 | 是否必填 | 描述 | 示例值 |
---|---|---|---|---|
open_id | string | 是 | 用户 open_id | "123rq0gjhdfoqierug" |
goods_info | list | 是 | 商品信息列表 | [goods1, goods2] |
app_id | string | 是 | 小程序 id | "ttcfdbb96650e33351" |
union_id | string | 否 | 用户的 UnionID | "123rq0gjhdfoqieee" |
callback_data | string | 否 | 透传参数 |
名称 | 类型 | 是否必填 | 描述 | 示例值 |
---|---|---|---|---|
goods_id | string | 是 | 商品 id | "09893085485dasdfa" |
quantity | int | 是 | 商品数量 | 2 |
price | int | 是 | 商品单价,单位[分] | 19900 |
msg 内部结构:
{
"open_id": "123rq0gjhdfoqierug",
"app_id": "ttxxxxxx",
"goods_info": [
{
"goods_id": "7112741589566392364",
"quantity": 3,
"price": 100
}
]
}
扩展服务会校验开发者服务返回的营销信息,校验整体分为 2 类:
字段级别:
业务级别,细化如下:
4 种营销方式、商品可用营销和订单可用营销信息需要一致。
Req/Resp 里商品信息必须保持一致。
原则上,resp 里需要对 req 里的每个商品有回应。
为了方便接入,
举个例子,用户 Z 准备购买 2 杯星冰乐和 1 杯拿铁,总价 100 元;用户 Z 账户下一共有 4 张优惠券,A-星冰乐单品立减 5 元,B-抹茶蛋糕单品立减 3 元,C-订单满 100-10 元,D-订单满 200-30 元
coupon_info 的长度为 4, 分别对应 ABCD 这 4 张优惠券
优惠券 A 对星冰乐可用,优惠券 A 需要在 goods_valid_marketing_info 中
优惠券 C 是订单维度的,满足 100-10 的条件,优惠券 C 需要在 order_valid_marketing_info 中
curl --location --request POST 'http://dev-cn.your-api-server.com/api/v2/query_marketing_info?timestamp=1345678901234&nonce=iuy987q4htafreqw' \
--header 'Signature: irqy39487t092h3fiqufheiufhqyt9q' \
--header 'Content-Type: application/json' \
--data-raw '{
"version": "2.0",
"msg": "{\"open_id\":\"123rq0gjhdfoqierug\",\"app_id\":\"ttxxxxxx\",\"goods_info\":[{\"goods_id\":\"7112741589566392364\",\"quantity\":3,\"total_amount\":100}]}",
"type": "query_marketing_info"
}'
{
"err_no": 0,
"err_tips": "success",
"data": {
"goods_valid_marketing_info": {
"default_marketing_info": [
{
"goods_id": "7112741589566392364",
"valid_marketing_info": {
"activity_ids": ["activity_id_life_12_fen_MOCK_"],
"coupon_ids": ["coupon_id_life_270_fen_MOCK_"],
"membership_ids": ["membership_id_life_3_fen_MOCK_"],
"score_info": [
{
"id": "score_id_life_12_fen_MOCK_",
"name": "与本地生活融合专用积分-12分钱",
"value": 1000
}
]
}
}
],
"valid_marketing_info": [
{
"goods_id": "7112741589566392364",
"valid_marketing_info": {
"activity_ids": ["activity_id_life_12_fen_MOCK_"],
"coupon_ids": ["coupon_id_life_270_fen_MOCK_"],
"membership_ids": ["membership_id_life_3_fen_MOCK_"],
"score_info": [
{
"id": "score_id_life_12_fen_MOCK_",
"name": "与本地生活融合专用积分-12分钱",
"value": 1000
}
]
}
}
]
},
"order_valid_marketing_info": {
"default_marketing_info": {
"activity_ids": [],
"coupon_ids": [],
"membership_ids": [],
"score_info": []
},
"valid_marketing_info": {
"activity_ids": [],
"coupon_ids": [],
"membership_ids": [],
"score_info": []
}
},
"score_info": [
{
"id": "score_id_life_12_fen_MOCK_",
"name": "与本地生活融合专用积分-12分钱",
"value": 1000
}
],
"activity_info": [
{
"end_time": 1666172800000,
"id": "activity_id_life_12_fen_MOCK_",
"name": "满 0.99 减 0.12 元的满减活动",
"rule": "【规则】activity_id = activity_id_life_12_fen_MOCK_ ; 活动名 = 满 0.99 减 0.12 元的满减活动",
"start_time": 1665913600000
}
],
"membership_info": [
{
"desc": "与本地生活融合专用会员-3分钱",
"id": "membership_id_life_3_fen_MOCK_"
}
],
"coupon_info": [
{
"code": "coupon_id_life_270_fen_MOCK_",
"detail_url": "优惠券详情跳转链接",
"discount_amount": 270,
"end_time": 1666172800000,
"id": "coupon_id_life_270_fen_MOCK_",
"name": "立减 2.70 元的立减优惠券",
"receive_time": 1665913601000,
"rule": "【规则】coupon_id 和 coupon_code = coupon_id_life_270_fen_MOCK_ ; 券名 = 立减 2.70 元的立减优惠券",
"start_time": 1665913600000,
"type": 1
}
]
}
}