创建卡券接口

开发者通过创建卡券接口,将小程序内发放的卡券按照百度卡券模板要求完成导入,以获取卡券 ID 。

开发步骤

创建卡券接口 - 图1

明确卡券 ID 与 Code 码的区别

创建卡券成功后获取百度分配的卡券 ID ,一个卡券 ID 代表一类卡券,包含相应库存数量的 Code 码。

例如:
创建 100 元代金券,获取一个卡券 ID(couponId)用于投放,并需开发者上传对应业务的 Code 码,根据上传 Code 码的数量,百度设置库存 100 万。
用户 A ,领取到商户投放的 50 元代金券时,券面上会有一个唯一的标识码,即 Code 码。每个用户的 Code 码都不相同,所以卡券发放时,百度将会派发 100 万个不同的 Code 码给用户。

卡券详情页字段说明

图片

卡券包-我的优惠券字段说明

图片

步骤一:选取卡券背景色

目前百度提供包括以上 16 种色值供开发者使用,选择适用的背景色,将背景色名称(如 B010)填入 color 字段。
图片

背景色名称背景色值背景色名称背景色值背景色名称背景色值
B010#9857AEB020#5854BEB030#487FCC
B040#288DAFB050#28915EB060#449045
B070#95B250B080#B82C28B090#B85029
B100#B76229B110#B87029B120#B48228
B130#B89028B140#C5AE34B150#282828
B160#5F6062

步骤二:选择卡券类型并创建卡券

百度提供以下 3 种卡券类型,1-代金券,2-折扣券,3-通用优惠券

开发者须知

  1. 一个小程序内全部卡券的 callbackUrl 需为同一个;

  2. description 字段传入文本格式支持富文本标签,如使用<br>换行;

  3. 卡券管理当前不提供更新卡券接口,如有更新需求,需重新创建卡券。

HTTP 请求方式

  1. POST/application-json https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/create?access_token=ACCESS_TOKEN

请求参数

参数说明
access_token调用接口凭证
POST 数据JSON 结构

POST 数据示例

  1. {
  2. "couponType": "DISCOUNT",
  3. "discount": 30,
  4. "leastCost": 100,
  5. "reduceCost": 10,
  6. "baseInfo": {
  7. "title": "卡券标题",
  8. "color": "B080",
  9. "getLimit": 3,
  10. // 当codeType=2时,开发者无需上传Code,quantity要求必传非0且生效,默认使用平台分配的系统code码
  11. "codeType": 2,
  12. // 卡券库存100万
  13. "quantity": 1000000,
  14. "dateInfo": {
  15. "getStartTimestamp": 1574952776,
  16. "getEndTimestamp": 1577544776,
  17. "type": 1,
  18. "beginTimestamp": 1574952776,
  19. "endTimestamp": 1577544776,
  20. "timeUnit": 1,
  21. "timeValue": 22
  22. },
  23. "appRedirectPath": "/pages/index/index"
  24. },
  25. "description": "使用描述",
  26. "callbackUrl": "卡券事件回调地址"
  27. }

返回示例

  1. {
  2. "errno": 0,
  3. "msg": "success",
  4. "data": {
  5. "couponId": "xxxx"
  6. }
  7. }

1- 代金券

参数是否必传类型示例值描述
couponTypeStringCASH卡券类型
leastCostLong1000表示可使用的门槛金额(单位:分),不传默认为 0,即无起用门槛
reduceCostLong500代金券专用,表示减免金额(单位:分)
baseInfoJSON 结构见下面示例基本的卡券数据,见下表,所有卡券通用
descriptionString打开小程序,①在个人中心-我的礼券可查看;②下单时选择该优惠券使用须知:卡券使用方法的介绍
callbackUrlString卡券领取事件推送地址

代码示例

  1. {
  2. "couponType": "CASH",
  3. "leastCost": 100,
  4. "reduceCost": 50,
  5. "baseInfo": {
  6. ················
  7. },
  8. "description": "使用描述",
  9. "callbackUrl": "卡券事件回调地址"
  10. }

2- 折扣券

参数是否必传类型示例值描述
couponTypeStringDISCOUNT卡券类型
discountInt80折扣券专用,表示打折力度(格式为百分比),填 80 就是八折。
baseInfoJSON 结构见下面示例基本的卡券数据,见下表,所有卡券通用。
descriptionString打开小程序,①在个人中心-我的礼券可查看;②下单时选择该优惠券使用须知:卡券使用方法的介绍
callbackUrlString卡券领取事件推送地址

代码示例

  1. {
  2. "couponType": "DISCOUNT",
  3. "discount": 80,
  4. "baseInfo": {
  5. ················
  6. },
  7. "description": "使用描述",
  8. "callbackUrl": "卡券事件回调地址"
  9. }

3- 通用优惠券

参数是否必传类型示例值描述
couponTypeStringGENERAL卡券类型,当以上卡券类型无法满足时,可使用通用优惠券类型
baseInfoJSON 结构见下面示例基本的卡券数据,见下表,所有卡券通用。
descriptionString打开小程序,①在个人中心-我的礼券可查看;②下单时选择该优惠券使用须知:卡券使用方法的介绍
callbackUrlString卡券领取事件推送地址

代码示例

  1. {
  2. "couponType": "GENERAL",
  3. "baseInfo": {
  4. ················
  5. },
  6. "description": "使用描述",
  7. "callbackUrl": "卡券事件回调地址"
  8. }

卡券基础信息字段(重要)

参数是否必传类型示例值描述
titleString京东5元现金红包优惠券名称,不能超出 10 个字
colorStringB080卡券背景色,支持范围: [B010 ~ B160]
dateInfoJSON 结构见以下示例使用日期,有效期的信息。
typeInt1券使用时间类型:1:开发者设置使用开始和结束时间;2:领取之后,多久可使用;当类型为 1 时,beginTimestamp 和 endTimestamp 必传;当类型为 2 时,timeUnit 和 timeValue 必传
codeTypeInt2卡券 Code 码类型,默认为 1,1:开发者自定义 code 码,当 codeType=1 时,需要通过「上传 code 码」接口导入 Code,否则影响领券;2:系统分配 Code 码,当 codeType=2 时,开发者无需上传 Code ,quantity 要求必传非 0 且生效
quantityLong1000000卡券库存,默认为 0,当 codeType=2 时,quantity 要求必传且生效
beginTimestampLong1574952776使用开始时间,当 type 为 1 时,beginTimestamp 必传且生效;
endTimestampLong1577544776使用结束时间,当 type 为 1 时,endTimestamp 必传且生效;
timeUnitInt2时间单位:1-时;2-天;3-月;当 type 为 2 时,timeUnit 必传且生效;
timeValueInt30时间值;当 type 为 2 时,timeValue 必传且生效;
getStartTimestampLong1574952776开始领取时间
getEndTimestampLong1577544776结束领取时间
getLimitInt2每人领取次数限制
appRedirectPathStringpages/index/index已领取的卡券,从详情頁点击「立即使用」打开小程序页面地址,不传默认打开首页
callbackUrlString卡券领取事件推送地址

步骤三:上传 Code 码(可选)

HTTP 请求方式

  1. POST/form https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/code/batchUpload?access_token=ACCESS_TOKEN

请求参数

参数说明类型是否必传备注
couponId卡券 IDString
couponCodes卡券 Code 码列表String使用,隔开,最多传 100

返回示例

  1. {
  2. "errno": 0,
  3. "msg": "success",
  4. "data": {
  5. "successNum": 5,
  6. // 重复导入的code会忽略
  7. "failNum": 2
  8. }
  9. }

步骤四:上传卡券 Banner 图(可选)

上传图片接口
为了保证开发者的卡券在用户的能快速、稳定地加载出图片素材,我们强烈建议开发者将卡券素材先调用接口导入百度服务器。
开发者需调用该接口上传商户图标至百度服务器,获取相应 picUrl(卡券 Banner 图片)。请求参数为file,上传图片后,获取返回 url。

开发者须知

  1. 图片尺寸:1032 * 144px 。
  2. 当前一个卡券 ID 仅支持创建一个 Banner 。

HTTP 请求方式

  1. POST/form-data https://openapi.baidu.com/file/2.0/smartapp/v1.0/coupon/upload/image?access_token=ACCESS_TOKEN

返回示例

  1. {
  2. "errno": 0,
  3. "msg": "success",
  4. "data": {
  5. "url": "https://b.bdstatic.com/searchbox/mappconsole/image/20191128/8d382c36-2b85-4f2c-b6d1-0d6afbc04dc8.png"
  6. }
  7. }

Banner 创建

HTTP 请求方式

  1. 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 数据示例

  1. {
  2. "couponId": "xxx",
  3. "picUrl": "/index/index",
  4. "title": "卡券标题",
  5. "appRedirectPath": "跳转的小程序页面路径"
  6. }

参数说明

参数说明类型是否必传
couponId卡券 IDString
picUrl卡券 banner 图片String
title卡券 banner 图标题String
appRedirectPathbanner 图跳转的小程序页面路径String

返回示例

  1. {
  2. "errno": 0,
  3. "msg": "success",
  4. "data": {
  5. "bannerId": 23830865
  6. }
  7. }

Banner 修改

HTTP 请求方式

  1. 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 数据示例

  1. {
  2. "bannerId": "bannerId",
  3. "couponId": "xxx",
  4. "picUrl": "www.baidu.com",
  5. "title": "标题",
  6. "appRedirectPath": "跳转小程序页面路径"
  7. }

参数说明

参数说明类型是否必传
couponId卡券 IDString
bannerId卡券 banner 记录 idLong
picUrl卡券 banner 图片String
title卡券 banner 图标题String
appRedirectPathbanner 图跳转的小程序页面路径String

返回示例

  1. {
  2. "errno": 0,
  3. "msg": "success",
  4. "data": true
  5. }

返回参数说明

参数名描述
errno错误码
msg错误信息
datatrue 退还成功 false 退还失败

Banner 删除

HTTP 请求方式

  1. POST/form https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/banner/delete?access_token=ACCESS_TOKEN

请求参数

参数说明类型是否必传
couponId卡券 IDString
bannerId卡券 banner 记录 idLong

返回示例

  1. {
  2. "errno": 0,
  3. "msg": "success",
  4. "data": true
  5. }

返回参数说明

参数名描述
errno错误码
msg错误信息
datatrue 退还成功 false 退还失败

Banner 详情查询

HTTP 请求方式

  1. GET https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/banner/get?access_token=ACCESS_TOKEN

请求参数

参数说明类型是否必传备注
couponId卡券 IDString
bannerIds卡券 banner 记录 idLong,分隔多个 bannerId ,最大值限制 20

返回示例

  1. {
  2. "errno": 0,
  3. "msg": "success",
  4. "data": [
  5. {
  6. "bannerId": 23830865,
  7. "couponId": "23830866",
  8. "title": "titletest",
  9. "picUrl": "picUrlTest",
  10. "appRedirectPath": "destUrlTest",
  11. "createTime": 1574396789,
  12. "updateTime": 1574396788
  13. }
  14. ]
  15. }

Banner 列表批量查询

HTTP 请求方式

  1. GET https://openapi.baidu.com/rest/2.0/smartapp/v1.0/coupon/banner/batchGet?access_token=ACCESS_TOKEN

请求参数

参数说明类型是否必传默认值
couponId券 idString
picUrl卡券图片推广图链接地址String
title卡券图片推广图标题String
pageNum页码,默认值为:0Int1
pageSize页大小,默认值为:20Int20

返回示例

  1. {
  2. "errno": 0,
  3. "msg": "success",
  4. "data": {
  5. // 页码
  6. "pageNo": 1,
  7. // 总数量
  8. "total": 1,
  9. "dataList": [
  10. {
  11. "bannerId": 23830865,
  12. "couponId": "23830866",
  13. "title": "titletest",
  14. "picUrl": "picUrlTest",
  15. "appRedirectPath": "destUrlTest",
  16. "createTime": 1574396789,
  17. "updateTime": 1574396788
  18. }
  19. ]
  20. }
  21. }