创建卡券接口
开发者通过创建卡券接口,将小程序内发放的卡券按照百度卡券模板要求完成导入,以获取卡券 ID 。
开发步骤
明确卡券 ID 与 Code 码的区别
创建卡券成功后获取百度分配的卡券 ID ,一个卡券 ID 代表一类卡券,包含相应库存数量的 Code 码。
例如:
创建 100 元代金券,获取一个卡券 ID(couponId)用于投放,并需开发者上传对应业务的 Code 码,根据上传 Code 码的数量,百度设置库存 100 万。
用户 A ,领取到商户投放的 50 元代金券时,券面上会有一个唯一的标识码,即 Code 码。每个用户的 Code 码都不相同,所以卡券发放时,百度将会派发 100 万个不同的 Code 码给用户。
卡券详情页字段说明
卡券包-我的优惠券字段说明
步骤一:选取卡券背景色
目前百度提供包括以上 16 种色值供开发者使用,选择适用的背景色,将背景色名称(如 B010)填入 color 字段。
背景色名称 | 背景色值 | 背景色名称 | 背景色值 | 背景色名称 | 背景色值 |
---|---|---|---|---|---|
B010 | #9857AE | B020 | #5854BE | B030 | #487FCC |
B040 | #288DAF | B050 | #28915E | B060 | #449045 |
B070 | #95B250 | B080 | #B82C28 | B090 | #B85029 |
B100 | #B76229 | B110 | #B87029 | B120 | #B48228 |
B130 | #B89028 | B140 | #C5AE34 | B150 | #282828 |
B160 | #5F6062 |
步骤二:选择卡券类型并创建卡券
百度提供以下 3 种卡券类型,1-代金券,2-折扣券,3-通用优惠券。
开发者须知:
一个小程序内全部卡券的 callbackUrl 需为同一个;
description 字段传入文本格式支持富文本标签,如使用
<br>
换行;卡券管理当前不提供更新卡券接口,如有更新需求,需重新创建卡券。
HTTP 请求方式
POST/application-json https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/create?access_token=ACCESS_TOKEN
请求参数
参数 | 说明 |
---|---|
access_token | 调用接口凭证 |
POST 数据 | JSON 结构 |
POST 数据示例
{
"couponType": "DISCOUNT",
"discount": 30,
"leastCost": 100,
"reduceCost": 10,
"baseInfo": {
"title": "卡券标题",
"color": "B080",
"getLimit": 3,
// 当codeType=2时,开发者无需上传Code,quantity要求必传非0且生效,默认使用平台分配的系统code码
"codeType": 2,
// 卡券库存100万
"quantity": 1000000,
"dateInfo": {
"getStartTimestamp": 1574952776,
"getEndTimestamp": 1577544776,
"type": 1,
"beginTimestamp": 1574952776,
"endTimestamp": 1577544776,
"timeUnit": 1,
"timeValue": 22
},
"appRedirectPath": "/pages/index/index"
},
"description":"使用描述",
"callbackUrl":"卡券事件回调地址"
}
返回示例
{
"errno": 0,
"msg": "success",
"data": {
"couponId": "xxxx"
}
}
1- 代金券
参数 | 是否必传 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
couponType | 是 | String | CASH | 卡券类型 |
leastCost | 否 | Long | 1000 | 表示可使用的门槛金额(单位:分),不传默认为 0 ,即无起用门槛 |
reduceCost | 是 | Long | 500 | 代金券专用,表示减免金额(单位:分) |
baseInfo | 是 | JSON 结构 | 见下面示例 | 基本的卡券数据,见下表,所有卡券通用 |
description | 是 | String | 打开小程序,①在个人中心-我的礼券可查看;②下单时选择该优惠券 | 使用须知:卡券使用方法的介绍 |
callbackUrl | 是 | String | 卡券领取事件推送地址 |
代码示例
{
"couponType": "CASH",
"leastCost": 100,
"reduceCost": 50,
"baseInfo": {
················
},
"description": "使用描述",
"callbackUrl": "卡券事件回调地址"
}
2- 折扣券
参数 | 是否必传 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
couponType | 是 | String | DISCOUNT | 卡券类型 |
discount | 是 | Int | 80 | 折扣券专用,表示打折力度(格式为百分比),填 80 就是八折。 |
baseInfo | 是 | JSON 结构 | 见下面示例 | 基本的卡券数据,见下表,所有卡券通用 |
description | 是 | String | 打开小程序,①在个人中心-我的礼券可查看;②下单时选择该优惠券 | 使用须知:卡券使用方法的介绍 |
callbackUrl | 是 | String | 卡券领取事件推送地址 |
代码示例
{
"couponType": "DISCOUNT",
"discount": 80,
"baseInfo": {
················
},
"description": "使用描述",
"callbackUrl": "卡券事件回调地址"
}
3- 通用优惠券
参数 | 是否必传 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
couponType | 是 | String | GENERAL | 卡券类型,当以上卡券类型无法满足时,可使用通用优惠券类型 |
baseInfo | 是 | JSON 结构 | 见下面示例 | 基本的卡券数据,见下表,所有卡券通用 |
description | 是 | String | 打开小程序,①在个人中心-我的礼券可查看;②下单时选择该优惠券 | 使用须知:卡券使用方法的介绍 |
callbackUrl | 是 | String | 卡券领取事件推送地址 |
代码示例
{
"couponType": "GENERAL",
"baseInfo": {
················
},
"description": "使用描述",
"callbackUrl": "卡券事件回调地址"
}
卡券基础信息字段(重要)
参数 | 是否必传 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
title | 是 | String | 京东5元现金红包 | 优惠券名称,不能超出 10 个字 |
color | 是 | String | B080 | 卡券背景色,支持范围: [B010 ~ B160] |
dateInfo | 是 | JSON 结构 | 见以下示例 | 使用日期,有效期的信息 |
type | 是 | Int | 1 | 券使用时间类型:1:开发者设置使用开始和结束时间;2:领取之后,多久可使用;当类型为 1 时,beginTimestamp 和 endTimestamp 必传;当类型为 2 时,timeUnit 和 timeValue 必传 |
codeType | 否 | Int | 2 | 卡券 Code 码类型,默认为 1 ,1:开发者自定义 code 码,当 codeType = 1 时,需要通过「上传 code 码」接口导入 Code ,否则影响领券;2:系统分配 Code 码,当 codeType = 2 时,开发者无需上传 Code ,quantity 要求必传非 0 且生效 |
quantity | 否 | Long | 1000000 | 卡券库存,默认为 0 ,当 codeType = 2 时,quantity 要求必传且生效 |
beginTimestamp | 是 | Long | 1574952776 | 使用开始时间(单位:秒)。当 type 为 1 时,beginTimestamp 必传且生效;不为空时必须大于券领取时间 |
endTimestamp | 是 | Long | 1577544776 | 使用结束时间(单位:秒)。当 type 为 1 时,endTimestamp 必传且生效;不为空时必须大于券领取时间 |
timeUnit | 是 | Int | 2 | 时间单位:1-时;2-天;3-月;当 type 为 2 时,timeUnit 必传且生效 |
timeValue | 是 | Int | 30 | 时间值;当 type 为 2 时,timeValue 必传且生效 |
getStartTimestamp | 是 | Long | 1574952776 | 开始领取时间(单位:秒) |
getEndTimestamp | 是 | Long | 1577544776 | 结束领取时间(单位:秒) |
getLimit | 是 | Int | 2 | 每人领取次数限制,必须大于0 |
appRedirectPath | 否 | String | pages/index/index | 已领取的卡券,从详情頁点击「立即使用」打开小程序页面地址,不传默认打开首页 |
callbackUrl | 是 | String | 卡券领取事件推送地址 |
步骤三:上传 Code 码(可选)
HTTP 请求方式
POST/form https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/code/batchUpload?access_token=ACCESS_TOKEN
请求参数
参数 | 说明 | 类型 | 是否必传 | 备注 |
---|---|---|---|---|
couponId | 卡券 ID | String | 是 | |
couponCodes | 卡券 Code 码列表 | String | 是 | 使用, 隔开,最多传 100 |
返回示例
{
"errno": 0,
"msg": "success",
"data": {
"successNum":5,
// 重复导入的code会忽略
"failNum":2
}
}
步骤四:上传卡券 Banner 图(可选)
上传图片接口
为了保证开发者的卡券在用户的能快速、稳定地加载出图片素材,我们强烈建议开发者将卡券素材先调用接口导入百度服务器。
开发者需调用该接口上传商户图标至百度服务器,获取相应 picUrl(卡券 Banner 图片)。请求参数为file
,上传图片后,获取返回 url 。
开发者须知
- 图片尺寸:1032 * 144px 。
- 当前一个卡券 ID 仅支持创建一个 Banner 。
HTTP 请求方式
POST/form-data https://openapi.baidu.com/file/2.0/smartapp/v1.0/coupon/upload/image?access_token=ACCESS_TOKEN
返回示例
{
"errno": 0,
"msg": "success",
"data": {
"url": "https://b.bdstatic.com/searchbox/mappconsole/image/20191128/8d382c36-2b85-4f2c-b6d1-0d6afbc04dc8.png"
}
}
Banner 创建
HTTP 请求方式
POST/application-json https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/banner/add?access_token=ACCESS_TOKEN
请求参数
参数 | 说明 |
---|---|
access_token | 调用接口凭证 |
POST 数据 | JSON 数据 |
POST 数据示例
{
"couponId":"xxx",
"picUrl":"/index/index",
"title":"卡券标题",
"appRedirectPath":"跳转的小程序页面路径"
}
参数说明
参数 | 说明 | 类型 | 是否必传 |
---|---|---|---|
couponId | 卡券 ID | String | 是 |
picUrl | 卡券 banner 图片 | String | 是 |
title | 卡券 banner 图标题 | String | 是 |
appRedirectPath | banner 图跳转的小程序页面路径 | String | 否 |
返回示例
{
"errno": 0,
"msg": "success",
"data": {
"bannerId": 23830865
}
}
Banner 修改
HTTP 请求方式
POST/application-json https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/banner/update?access_token=ACCESS_TOKEN
请求参数
参数 | 说明 |
---|---|
access_token | 调用接口凭证 |
POST 数据 | JSON 数据 |
POST 数据示例
{
"bannerId":"bannerId",
"couponId":"xxx",
"picUrl":"www.baidu.com",
"title":"标题",
"appRedirectPath":"跳转小程序页面路径"
}
参数说明
参数 | 说明 | 类型 | 是否必传 |
---|---|---|---|
couponId | 卡券 ID | String | 是 |
bannerId | 卡券 banner 记录 id | Long | 是 |
picUrl | 卡券 banner 图片 | String | 是 |
title | 卡券 banner 图标题 | String | 是 |
appRedirectPath | banner 图跳转的小程序页面路径 | String | 否 |
返回示例
{
"errno": 0,
"msg": "success",
"data": true
}
返回参数说明
参数名 | 描述 |
---|---|
errno | 错误码 |
msg | 错误信息 |
data | true 退还成功 false 退还失败 |
Banner 删除
HTTP 请求方式
POST/form https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/banner/delete?access_token=ACCESS_TOKEN
请求参数
参数 | 说明 | 类型 | 是否必传 |
---|---|---|---|
couponId | 卡券 ID | String | 是 |
bannerId | 卡券 banner 记录 id | Long | 是 |
返回示例
{
"errno": 0,
"msg": "success",
"data": true
}
返回参数说明
参数名 | 描述 |
---|---|
errno | 错误码 |
msg | 错误信息 |
data | true 退还成功 false 退还失败 |
Banner 详情查询
HTTP 请求方式
GET https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/banner/get?access_token=ACCESS_TOKEN
请求参数
参数 | 说明 | 类型 | 是否必传 | 备注 |
---|---|---|---|---|
couponId | 卡券 ID | String | 是 | |
bannerIds | 卡券 banner 记录 id | Long | 是 | 用, 分隔多个 bannerId ,最大值限制 20 |
返回示例
{
"errno": 0,
"msg": "success",
"data": [
{
"bannerId": 23830865,
"couponId": "23830866",
"title": "titletest",
"picUrl": "picUrlTest",
"appRedirectPath": "destUrlTest",
"createTime": 1574396789,
"updateTime": 1574396788
}
]
}
Banner 列表批量查询
HTTP 请求方式
GET https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/banner/batchGet?access_token=ACCESS_TOKEN
请求参数
参数 | 说明 | 类型 | 是否必传 | 默认值 |
---|---|---|---|---|
couponId | 券 id | String | 是 | |
picUrl | 卡券图片推广图链接地址 | String | 否 | |
title | 卡券图片推广图标题 | String | 否 | |
pageNum | 页码,默认值为:0 | Int | 否 | 1 |
pageSize | 页大小,默认值为:20 | Int | 否 | 20 |
返回示例
{
"errno": 0,
"msg": "success",
"data": {
// 页码
"pageNo": 1,
// 总数量
"total": 1,
"dataList": [
{
"bannerId": 23830865,
"couponId": "23830866",
"title": "titletest",
"picUrl": "picUrlTest",
"appRedirectPath": "destUrlTest",
"createTime": 1574396789,
"updateTime": 1574396788
}
]
}
}