异步通知
系统会根据业务异步通知地址,通过POST
请求的形式将支付结果通知到合作方平台系统。
当理账狮SaaS接收到上报订单后,会把相关处理结果发送给商户,商户需要接收处理,并返回应答。
接口正常处理完通知后必须输出“success
”。(不包含引号且小写)
如果理账狮SaaS收到商户的应答不是成功或超时,理账狮SaaS认为通知失败,理账狮SaaS会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但理账狮SaaS不保证通知最终能成功(通知频率为:10s/30s/1h/2h/8h,共5次
)。
*注意:同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。
推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
在提现接口中上传参数“
notifyUrl
”以开通该功能
如果链接无法访问,商户将无法接收到理账狮SaaS通知。
通知url必须为直接可访问的url,可以携带GET
参数。
示例:notifyUrl:“https://xxx.com/notify”
约定规范
- 通知采用 POST 方式发送,消息体格式为 json
- AES解密(见签名说明);
- 商户正常处理完通知后必须输出“success”(不包含引号且小写);
- 签名原文未经URL Encoding;
- 如果商户处理通知没有输出“success”,则服务器会不断重发通知,重试时间间隔为:
10s/30s/1h/2h/8h
(共通知5次后不再通知) - 同样的通知可能会多次发送给商户系统。商户系统必须处理幂等
通知响应参数
参数 | 类型(长度) | 是否必填 | 描述 |
---|---|---|---|
content | string | 不可空 | 业务参数集加密后的字符串,通过AES加密 [见AES加密] |
以下为解密后的JSON业务参数 | |||
outerTradeNo | string(32) | 不可空 | 商户业务订单号 |
empNum | string(32) | 可空 | 自定义员工编号(商户系统中用户唯一编号) |
empName | string(32) | 不可空 | 收款人户名 |
empPhone | string(11) | 不可空 | 收款人手机号(税务局报税要求必填) |
licenseType | string(10) | 不可空 | 收款人证件类型 [见附录【证件类型】] |
licenseId | string(32) | 不可空 | 收款人证件号码 |
settleType | string(10) | 不可空 | 交易类型(bankcard:银行卡,alipay:支付宝,wechatpay:微信支付) |
payAccount | string(32) | 不可空 | 收款账号,交易类型为支付宝时,为支付宝账号 |
bankName | string(32) | 可空 | 收款人银行名称 (无需细到支行名称) |
payAmount | Number(12) | 不可空 | 交易金额(实际到账金额) |
tradeStatus | string(10) | 不可空 | 交易状态 [见附录【交易状态】] |
tradeTime | string(32) | 可空 | 交易时间 |
frontLogNo | string(32) | 可空 | 银行交易流水号 |
tradeFailCode | string(10) | 可空 | 交易失败code |
响应示例
正常:
{
"data": {
"content":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
对应解密后的JSON格式:
{
"outerTradeNo": "f2cb9c91f3c3637fb41ea5b647836dfe",
"empName": "aloqog7355",
"empPhone": "18801270000",
"licenseType": "ID_CARD",
"licenseId": "990809198508017900",
"settleType": "alipay",
"payAccount": "aloqog7355@sandbox.com",
"positionName": "音视频服务费",
"payAmount": 10.01,
"tradeStatus": "success",
"tradeTime": "2020-11-11 11:11:11",
"frontLogNo": "232748927498434343"
}