接入说明
- 账单下载采用的调用方主动请求生成账单的形式实现,需要调用两个接口实现:
- 创建账单下载任务:业务主动请求创建账单下载任务,接口返回任务ID,并后台异步进行账单生成
- 获取账单下载链接:业务再次请求获取账单下载链接,如果账单已生成准备好,则返回对应的账单下载链接;如果账单未准备好,则返回错误提示稍后重试
- 账单下载内容:
- 账单下载文件以压缩包(*.gz)的形式进行传输,节省流量和存储应对将来数据量的剧增。解压后文件以csv格式展示,具体期望内容要求可进行申请沟通
- 接入准备:
账单字段说明
数据格式: csv文件
支持字段: 如下表所示
字段名 | 类型 | 含义 | 举例 |
---|---|---|---|
transcode | string | 公益的支付单号 | e.g. 1465188602202211011900000125 |
bt | string | 业务类型 | e.g. AXC, IOT |
pid | string | 项目id | e.g. 237449 |
money | string | 金额,单位:分 | e.g. 100 |
trans_time | string | 捐款(支付)时间 | e.g. 2022-11-01 04:06:29 |
pay_platform_info.transaction_id | string | 第三方接入支付的单号 | e.g. 16685929251181481715adfAiNeuCux |
pay_platform_info.type | string | 支付平台(wx/qq) | e.g. wx |
busi_code | string | 业务携带透传过来的字段(原含义为一起捐id) | e.g. 1593097381202212184800001792 |
特殊支持字段: 如下表所示
字段名 | 类型 | 含义 | 举例 |
---|---|---|---|
refund_time | string | 退款时间 | e.g. 2024-05-13 13:41:10 |
refund_wx_code | string | 退款订单号(微信支付) | e.g. 50303009432024051375404914032 |
refund_money | string | 退款金额 | e.g. 100 |
- 特殊说明:该表为特殊支持字段,只提供给有必要拉取的第三方下载(非必要不申请)。该表字段不为空时表示退款订单,提供公益订单相应的退款信息。
接口协议
创建账单下载任务
使用场景: 用于与腾讯公益合作的业务下载隔日账单进行对账,由于公益内部也需要进行初步的对账处理,所以建议业务于隔日的下午3点之后进行尝试请求拉取账单。
调用凭证: 应用签名
请求方式: POST(HTTPS)
请求地址: https://oapi.gongyi.qq.com/api/bill_download/CreateBillDownloadTask
请求参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
start_at | string | 是 | 数据导出周期开始时间 |
end_at | string | 是 | 数据导出周期结束时间 |
- 请求示例
{ "start_at": "2023-09-17 00:00:00", "end_at": "2023-09-18 00:00:00" }
返回参数:
参数 | 类型 | 说明 |
---|---|---|
code | int | 返回码:0表示成功,其他值表示错误,请参考错误码说明 |
msg | string | 错误信息 |
data | object | 返回数据 |
task_id | string | 离线任务 ID, 32位长度字符 |
返回示例:
{
"code": 0,
"data": {
"task_id": "a0e1be2e78ee496b56ff2bd9d32ffa5a"
},
"msg": "",
"op_time": 1695028171,
"trace_id": "41ec2010a17242c08a0208c5b040afb6"
}
获取账单下载链接
使用场景: 首次请求完创建账单下载任务接口,间隔等待后台账单生成后(建议间隔不少于2分钟),再进行请求获取账单下载链接接口。如果账单已生成准备好,接口则返回成功;如若报错提示账单未准备好,可以进行重试请求该接口
调用凭证: 应用签名
请求方式: POST(HTTPS)
请求地址: https://oapi.gongyi.qq.com/api/bill_download/GetBillDownloadLink
请求参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
task_id | string | 是 | 请求创建账单下载任务接口返回的离线任务 ID, 32位长度字符 |
- 请求示例
{ "task_id": "a0e1be2e78ee496b56ff2bd9d32ffa5a" }
返回参数:
参数 | 类型 | 说明 |
---|---|---|
code | int | 返回码:0表示成功,其他值表示错误,请参考错误码说明 |
msg | string | 错误信息 |
data | object | 返回数据 |
data.url | array | 数据文件下载连接,时间窗口内访问有效(有效期:2小时) |
返回示例:
{
"code": 0,
"data": {
"url": [
"https://bill-download-test-*******.cos-internal.ap-shanghai.tencentcos.cn/gy_chcs5e1xxxxxxr7152jg/a0e1bexxxxx56ff2bd9d32ffa5a.csv.gz?q-sign-algorithm=sha1\u0026q-ak=******\u0026q-sign-time=1695029052%3B1695036252\u0026q-key-time=1695029052%3B1695036252\u0026q-header-list=host\u0026q-url-param-list=\u0026q-signature=********"
]
},
"msg": "",
"op_time": 1695029052,
"trace_id": "5e7218f8a00f278c2071777b408f09cd"
}
账单下载链接转义:
# 特别注意:接口返回的下载链接进行了编码,需要进行Unicode转义,获得新的链接进行请求下载
https://bill-download-test-*******.cos-internal.ap-shanghai.tencentcos.cn/gy_chcs5e1xxxxxxr7152jg/a0e1bexxxxx56ff2bd9d32ffa5a.csv.gz?q-sign-algorithm=sha1&q-ak=*****&q-sign-time=1695029052;1695036252&q-key-time=1695029052;1695036252&q-header-list=host&q-url-param-list=&q-signature=********
错误码
错误码 | 名称 | 含义 |
---|---|---|
30610001 | ErrBDParamValidate | 传入参数校验失败 |
30610002 | ErrBDParamCheck | 参数范围检查错误(包括对参数时间范围和截止时间的约束检查) |
30610003 | ErrBDAuthcheck | 授权检查错误 |
30610004 | ErrBDBillcheck | 账单对账错误(推荐每隔10分钟重试调用,直至业务侧对账成功) |
30610005 | ErrBDDownloadFile | 下载文件未准备好或不存在 |
30610006 | ErrBDGetSignedUrl | 获取临时预授权url错误 |
30610007 | ErrBDTaskScheduleLimitFail | 任务进度限频失败(推荐稍后重试调用,重新调度创建账单任务) |
30610008 | ErrBDTaskScheduleLimitSuccess | 任务进度限频成功,任务已在进行中 |