通用场景
用于向商家同步凭证的触发事件,如发放、核销、取消核销、退款等
商家需要通过监听此消息通知获取凭证在支付宝域内的触发事件,并根据action字段识别通知类型,并进行相应的商家侧业务处理。
公共请求参数
参数 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
notify_id | string | 必选 | 50 | 通知id | 5608cccc09ddb39d41c2e3c06e3d9fejh2 |
utc_timestamp | string | 必选 | 13 | 消息发送时的服务端时间 | 1514210452731 |
msg_method | string | 必选 | 100 | 消息接口名称 | alipay.marketing.certificate.certification.notify |
app_id | string | 必选 | 20 | 消息接受方的应用id | 2014060600164699 |
version | string | 必选 | 5 | 版本号(1.1版本为标准消息) | 1.0或者1.1 |
biz_content | string | 必选 | 消息报文 | 参见消息属性 | |
sign | string | 必选 | 签名 | wco t3d8kg71dtlkwn7r9pzuoxeabjwp8/fousxcuskxsovyxbpsaidpryscjhcjmaglncjokjqlj28/asl93jotw39fx6i07lxhnbpknezalwmvpdnqui01hzszf9v1i6ggzjbiad5lg8bzttxzoj87ub2i9guj3nr/nuc9vey= | |
sign_type | string | 必选 | 10 | 签名类型 | rsa2 |
charset | string | 必选 | 10 | 编码集,该字符集为验签和解密所需要的字符集 | utf-8 |
消息属性
action|凭证的触发事件必选string(32)
【描述】此参数用来表示凭证的触发事件,用来表示凭证在支付宝域内已完成的业务动作,如用户在支付宝域内购买本地生活商品后会协同商户完成权益凭证发放,并在发放成功后通过此消息通知告诉商家凭证已发放完成。商家需要根据此字段识别凭证被触发的动作
【枚举值】
发放凭证: send
核销凭证: use
取消核销凭证: cancel_use
【示例值】send
order_id|支付宝订单id必选string(64)
【描述】购买商家业务主体时的营销订单号,如购买本地生活商品的订单号。
【示例值】2015042321001004720200028594
biz_time|业务触发时间必选string(32)
【描述】业务触发时间,如在发放事件中是完成发放的时间。
【示例值】1683273353000
code|商家发放的三方码值必选string(64)
【描述】服务商发奖后返回的券码列表. 限制: 单个code最长64位。 商户上传的券code列表,code允许包含的字符有0-9、a-z、a-z、-、_、 、=、|。 如果发生券码后校验不通过.支付宝内部不会进行发奖。针对这种case会通知服务商进行整改,该笔交易支付宝内部不会发奖成功。
【示例值】123aaa
certificate_id|三方码关联的支付宝侧id必选string(32)
【描述】三方码关联的支付宝侧id,支付宝侧的唯一标识。
【示例值】2023050500422001809100003190
item_id|支付宝商品id必选string(32)
【描述】支付宝商品id
【示例值】20230101300000202301234
以下参数 二选一 传入必选
user_id|用户idstring(32)
【描述】用户uid
新商户建议使用open_id替代该字段。对于新商户,user_id字段未来计划逐步回收,存量商户可继续使用。如使用open_id,请确认 应用-开发配置-openid配置管理 已启用。无该配置项,可查看openid配置申请。
【示例值】2088xxxx
open_id|开放用户idstring(128)
【描述】开放id,基于商家appid生成的用户id。 详情可查看 openid简介
【示例值】074a1cctg1lelxke4xqc0zgndid0nxi95b5lsnpazwyoco5
total_count|凭证总共可使用次数可选string(10)
【描述】凭证总共可使用次数
【示例值】2
used_count|凭证已使用次数可选string(10)
【描述】凭证已使用次数
【示例值】1
usable_count|凭证剩余可用次数可选string(10)
【描述】凭证剩余可用次数
【示例值】1
certificate_serial_no_list|本次操作涉及的凭证次序号可选string[](3200)
【描述】本次操作涉及的凭证次序号
【示例值】["2023100100445016538200364374"]
消息示例
默认示例
curl -x post 'notify_url' \
--header 'content-type: application/x-www-form-urlencoded; charset=utf-8' \
--data-urlencode 'charset=utf-8' \
--data-urlencode 'biz_content={
"certificate_id":"2023050500422001809100003190",
"code":"123aaa",
"usable_count":"1",
"user_id":"2088xxxx",
"open_id":"074a1cctg1lelxke4xqc0zgndid0nxi95b5lsnpazwyoco5",
"item_id":"20230101300000202301234",
"used_count":"1",
"total_count":"2",
"biz_time":"1683273353000",
"action":"send",
"certificate_serial_no_list":[
"2023100100445016538200364374"
],
"order_id":"2015042321001004720200028594"
}' \
--data-urlencode 'utc_timestamp=${now}' \
--data-urlencode 'sign=${sign}' \
--data-urlencode 'app_id=${appid}' \
--data-urlencode 'version=1.1' \
--data-urlencode 'sign_type=rsa2' \
--data-urlencode 'notify_id=${notify_id}' \
--data-urlencode 'msg_method=alipay.marketing.certificate.certification.notify'
说明:notify_url是开发者在开放平台控制台上设置的应用网关地址
通知应答
响应报文 | 描述 | 是否重试 | 是否区分大小写 |
---|---|---|---|
success | 消息处理成功 | 否 | 否 |
fail | 消息处理失败 | 是 | 否 |
说明:消息服务会根据响应报文判断商户系统是否已经成功处理消息。如果http同步响应报文返回 success 字符串,消息服务则认为消息已经处理成功,停止投递,如果返回 fail ,表示消息获取失败,支付宝会根据投递重试策略重新发送消息到应用网关地址;
投递重试策略:一般情况下,25 小时以内完成 8 次通知,除了第一次是实时投递外,后续的每次重试都会间隔一段时间,间隔频率一般是:2m、10m、10m、1h、2h、6h、15h(第二次消息投递是在第一次投递失败后的 2 分钟;第三次投递是在第二次投递失败后的 10 分钟,以此类推)
接口工具
消息服务文档
获取sdk