4.12通知接口


4.12通知接口

通知规范:

交互完成,基础营销平台通过通知接口将结果消息通知给商户。

例如:优惠券核销成功,基础营销平台通过通知接口将核销成功消息通知给商户。
注意:

• 同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是,当商户系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已经处理。如果未处理,则再进行处理;如果已处理,则直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

• 通知存在不稳定性,不能保证每一笔通知都能成功通知,如果在所有通知频率后没有收到基础营销平台侧回调,商户应调用查询接口确认结果。例如,交易完成后如果没有收到结果通知,可调用交易查询接口查询交易状态

特别提醒:商户系统对于开启结果通知的内容一定要做签名验证,并校验通知的信息是否与商户侧的信息一致,防止数据泄露导致出现“假通知”,造成资金损失。

通知规则

业务交互完成后,基础营销平台会把相关结果和信息发送给商户,商户需要接收处理该消息,并返回应答。

通知频率:

对后台通知交互时,如果平台收到商户的应答不符合规范或超时,平台认为通知失败,会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但平台不保证通知最终能成功。通常情况如非特殊说明,

通知频率为15s/15s/30s/3m/10m/20m/30m/30m/30m - 总计 2h4m

通知报文

结果通知是以POST 方法访问商户设置的通知url,通知的数据以JSON 格式通过请求主体(BODY)传输。通知的数据包括了加密的结果详情。

(注:由于涉及到回调加密和解密,商户必须先设置好加密秘钥后才能解密回调通知,秘钥设置文档指引详见应用设置指引)

参数解密

下面详细描述对通知数据进行解密的流程:

1、在商户平台上设置加密密钥,记为key;

2、针对resource.algorithm中描述的加密方式;

3、使用key根据不同的加密算法,对数据密文resource.data进行解密,得到JSON形式的资源对象;

通知签名

加密不能保证通知请求来自基础营销平台。基础营销平台会对发送给商户的通知进行签名,并将签名值放在通知的HTTP头。商户应当验证签名,以确认请求来自基础营销平台,而不是其他的第三方。签名验证同接口签名规范的返回验签规范。

参数

参数名

类型

必填

描述

id

通知ID

String(32)

通知的唯一ID

appid

对接appid

String(16)

对接的appid

create_time

通知创建时间

String(32)

格式:yyyyMMddHHmmss

event_type

通知类型

String(32)

优惠券核销或者回退: mpmuse

活动状态变更通知:actstatechange

encrypt

是否加密

Bool

true:加密

false:不加密

data

通知数据

String

当encrypt为true时,data为密文

当encrypt为false时,data为明文

不同的通知接口data详看每个通知接口的字段说明

algorithm

加密方式

String

当encrypt为空false,为空

AES

SM4

AES算法为AES/ECB/PKCS5Padding

SM4算法为: SM4/ECB/PKCS5Padding

返回参数:

SUCCESS 或者 FAIL

4.12.1活动状态变更通知

参数

参数名

类型

必填

描述

appid

应用id

String[10]

基础营销平台分配

actid

活动id

String[32]

基础营销平台的营销活动id

status

状态

String[8]

WAITCFM-待审核

FAILCFM-审核不通过

RUNNING-投放中

PAUSE-暂停投放

TERMINAL-终止投放

FINISHWO-终止核销

FINAL-完结

update_time

变更时间

String[14]

yyyyMMddHHmmss

4.12.2核销完成/核销回退完成通知

通知处理说明:

场景1:权益正常核销,过一段时间后撤销交易或者全额退款。

核销成功时机构会收到一笔核销通知(notify_type=try),use_traces里都是核销的权益明细(use_type=try);

交易撤销或者全额退款时,机构会收到一笔核销撤销的通知(notify_type=cce),use_traces里是核销撤销的权益明细(use_type=cce);

两笔通知时间间隔较长(取决于交易退款时间),两笔通知的交易单号不一致。

场景2:权益核销成功后最终交易失败(例如权益核销完后,银行返回卡余额不足)。

核销成功时机构会收到一笔核销通知(notify_type=try),use_traces里都是核销的权益明细(use_type=try);

交易失败后,营销平台会回退已核销权益,机构会收到一笔核销撤销的通知(notify_type=cce),use_traces里是核销撤销的权益明细(use_type=cce);

两笔通知时间间隔较短(一般几百毫秒至30秒之间,取决于银行交易结果返回),两笔通知的交易单号(trxid)一致,权益撤销(cce)那笔trxid和fatrxid一致。

场景3:权益核销成功后权益处理失败(例如远端权益核销后,营销平台判断活动预算不足,实时回退权益)

机构会收到一笔失败的核销通知(notify_type=fail),use_traces同时包含核销的权益明细(use_type=try)和撤销的权益明细(use_type=cce),并且一一对应。

参数

参数名

类型

必填

描述

notify_type

通知类型

String[4]

try:权益核销结果通知

cce:权益撤销通知

fail:权益核销失败通知

处理逻辑详见接口说明

trxid

交易单号

String[32]

核销交易单号

fatrxid

原交易单号

String[32]

核销撤销类必填

cusid

核销商户号

String[32]

 

branchno

核销门店号

String[32]

 

trxcode

交易类型

String[32]

与收银宝对齐,例如VSP501

native_amt

原始订单金额

long

券关联的原始金额

userid

用户id

String[32]

基础营销平台的用户编号

use_type

核销类型

String[4]

try: 核销

cce: 核销撤销

移动至use_traces明细,后续版本此字段删除

use_traces

权益明细

List<UseTrace>

权益明细列表

id

核销id

String[32]

兼容,下版本去掉

outid

外部核销流水

String[32]

机构营销平台的核销流水,兼容,下版本去掉

out_userid

外部用户号

String

机构营销平台的用户号

actid

活动id

String[10]

兼容,下版本去掉

cpid

券id

String[32]

券类权益必填 兼容,下版本去掉

tplid

券模版id

String[10]

券类权益必填 兼容,下版本去掉

use_time

完成时间

String[14]

yyyyMMddHHmmss

兼容,下版本去掉

use_amt

核销金额

long

优惠减免金额

兼容,下版本去掉

remark

备注

String[256]

兼容,下版本去掉

其中UseTrace字段如下

参数

参数名

类型

必填

描述

id

核销id

String[32]

 

outid

外部核销流水

String[32]

机构营销平台的核销流水

use_type

核销类型

String[4]

try: 核销

cce: 核销撤销

out_userid

外部用户号

String

机构营销平台的用户号

actid

活动id

String[10]

 

opeid

活动发起方编号

String[32]

 

cpid

券id

String[32]

券类权益必填

tplid

券模版id

String[10]

券类权益必填

use_time

完成时间

String[14]

yyyyMMddHHmmss

use_amt

核销金额

long

减免金额

remark

备注

String[256]

 

陈佳锴chenjk3 2025年4月11日 16:59 收藏文档