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