领券事件同步接口
方式一:领券事件推送
卡券被用户领取会触发事件推送,该事件将发送至开发者填写的卡券回调地址callbackUrl
。
百度服务器在 3 秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。
关于重试的消息排重,推荐使用 FromUserName + CreateTime 排重。
假如服务器无法保证在 3 秒内处理并回复,可以直接回复空串,百度服务器不会对此作任何处理,并且不会发起重试。
开发者服务器收到请求必须作出下述回复:
- 开始者回复 success(推荐方式),代码示例:
String result = "success"; return result;
。- 直接回复空串。
用户在领取卡券时,百度会把这个事件推送到开发者填写的callbackUrl
。
推送示例
{
"ToUserName":"app_id",
"FromUserName":"open_id",
"CreateTime":"1472551036",
"MsgType":"event",
"Event":"user_get_coupon",
"CouponId":"pZI8Fjwsy5fVPRBeD78J4RmqVvBc",
"UserCouponCode":"226009850808",
"CouponTakeId":"xxxxx"
}
参数说明
参数 | 说明 |
---|---|
ToUserName | 开发者 app_id |
FromUserName | 领券用户的 OpenID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,event |
Event | 事件类型,user_get_coupon(用户领取卡券) |
CouponId | 卡券 ID |
UserCouponCode | 卡券 Code 码 |
CouponTakeId | 卡券领取标识,调用核销同步接口时必传 |
EncryptData | 加密信息,可用于接口安全认证,平台为开发者提供了 Java 语言的示例代码,点击下载解密包 |
方式二:跳转协议带参数
用户从百度卡券包卡券详情点击「立即使用」时,跳转打开开发者小程序的跳转协议路径页面地址,同时带上该券的领券参数coupon
,开发者拿到参数后,对参数进行解密,可以获取到该用户的领券信息。
注意事项:coupon
为加密信息,需要使用小程序 App Secret (智能小程序密匙)进行解密(小程序开发者平台:设置->开发设置->开发者 ID(App Secret(智能小程序密匙)))
获取参数
开发者需在卡券详情页点击立即使用跳转的页面上,通过 onShow() 获取当前页面路径中的 coupon 参数。
开发者须知
若点击「立即使用」加密信息传递,注意需要在小程序 app.js 文件中增加 onShow 能力开发。
代码示例(放在 app.js 中)
onShow(event) {
let extraData = event.referrerInfo.extraData;
let coupon = extraData.coupon;
swan.showModal({
title: '提示' + coupon,
});
}
解密参数
对 coupon 参数进行解密,获取到用户的领券信息,为用户发券;
使用小程序 App Secret(智能小程序密匙)进行解密(小程序开发者平台:设置->开发设置->开发者 ID(App Secret(智能小程序密匙)))
解密示例
{"open_id":"xxx","coupon_id":"xxx","coupon_code":"xxx","app_key":"xxx","coupon_take_id":"xxx"}
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
open_id | 是 | 用户 openId |
coupon_id | 是 | 卡券 ID |
coupon_code | 是 | 卡券 Code 码,小程序开发者创建时上传的 Code 码 |
app_key | 是 | 小程序 appKey |
coupon_take_id | 是 | 卡券领取标识,调用核销同步接口时必传 |