根据状态值更新支付状态(支付成功的单据把对应信息更新到每刻)
接口 /paymenttransaction/update POST JSON
说明
多人收款条件下支持流水号分批次传入,单据的状态依据其流水的状态决定,具体如下:
1、所有流水的状态均为“支付成功”,单据状态:“已支付”
2、所有流水的状态均为“已导出”,单据状态:“已导出”
3、存在“导出失败”的流水,单据状态为:“导出失败”
4、存在“支付失败”的流水,单据状态为:“支付失败”
5、同时存在“导出失败”和“支付失败”,单据状态为“导出失败”
6、只存在“已导出”和“支付成功”的流水,单据状态为:“已导出”
7、存在“导出中”且不存在“导出失败”和“支付失败”的流水,单据状态为:“导出中”
状态转换的限制
“已导出”不能标记为“导出失败”
“已支付”不能标记为其他任何状态
参数
参数 | 类型 | 必须 | 默认值 | 描述 |
---|---|---|---|---|
sequence | long | Y | 支付记录流水号 | |
status | string | Y | 状态可选值:CBS_EXPORTED(已导出), PAY_SUCCESS(支付成功), PAY_FAIL(支付失败), CBS_EXPORT_FAILED(导出失败) | |
paidDate | long | N | 支付时间,到毫秒的时间戳(在将状态更新为支付成功时必填) | |
payerBankAccount | string | N | 支付账号,需要传已经在每刻维护的支付账号(在将状态更新为支付成功时必填) | |
errorMsg | string | N | 错误信息(在将状态更新为支付失败或导出失败时必填) | |
paymentSystemNumber | string | N | 支付系统单号 | |
employeeId | string | N | 员工工号 |
返回参数
该接口采用单条失败的处理方式,即整批数据中,如果只有其中的几条因为各种原因失败,那么只有那几条数据不会被保存;其它的数据仍然会被正常处理;错误数据的流水号(sequence)会被放在errorData里面;只要有数据存在错误返回的code为NACK,整批数据完全没有问题才会返回ACK
errorData为结构题, 包含出错的支付记录流水号(sequence), 以及与之对应的出错信息; 类似 {"1": "部门不存在"}; 具体参见失败实例;
为保持向后兼容, data也会包含有和errorData相同的记录,但后续可能会改变;
示例
请求数据
{
"timestamp": 123456,
"data": [{
"sequence": 0,
"paidDate": 1510107016000,
"payerBankAccount": "519351151351251351",
"status":"PAY_SUCCESS"
}]
}
返回数据
返回数据(成功)
{
"code": "ACK",
"message": "",
}
返回数据(失败)
{
"code": "NACK",
"message": null,
"data": {
"0": "支付记录流水号(0)不存在"
},
"args": null,
"linkDetail": false,
"errorData": {
"0": "支付记录流水号(0)不存在"
},
"warningData": null,
"requestErrorData": [
{
"sequence": 0,
"payerBankAccount": "755915677010711",
"paidDate": 1510107016000,
"status": "CBS_EXPORT_FAILED",
"errorMsg": null,
"paymentSystemNumber": null,
"employeeId": null,
"formCode": null
}
],
"nonBizError": false
}