电商收付通系列⑪ ,下载账单
【摘要】 电商收付通的账单分为交易账单和资金账单,两种账单获取方式相同,这里只举例获取交易账单。微信在次日9点启动生成前一天的对账单,建议商户10点后再获取。
大家好,我是小悟
1、介绍
电商收付通的账单分为交易账单和资金账单,两种账单获取方式相同,这里只举例获取交易账单。微信在次日9点启动生成前一天的对账单,建议商户10点后再获取。
交易账单:微信支付按天提供交易账单文件,文件内包含交易相关的金额、时间、营销等信息,供商户核对订单、退款、银行到账等情况。
微信侧未成功下单的交易不会出现在对账单中。支付成功后撤销的交易会出现在对账单中,跟原支付单订单号一致。对账单接口只能下载三个月以内的账单。
资金账单:微信支付按天提供微信支付账户的资金流水账单文件,文件内包含该账户资金操作相关的业务单号、收支金额、记账时间等信息,供商户进行核对。
业务流程图:
2、简单步骤
第一步:先调用申请交易账单API,获取download_url
public static JSONObject tradebill() {
TradeBillParam param = new TradeBillParam();
param.setBill_date("2020-03-22");
param.setSub_mchid("1564807461");
param.setBill_type("ALL");
param.setTar_type("GZIP");//GZIP
String requestParam = JSON.toJSONString(param);
logger.info("tradebill param:{}",requestParam);
HttpResponse response = HttpUtils.v3HttpExecute("GET", String.format(BillUrl.TRADE_BILL,param.getBill_date(),param.getSub_mchid(),param.getBill_type(),param.getTar_type()),
"自己系统的应用名称","服务商商户号","商户API证书序列号","平台证书序列号","","商户API证书位置.pem",null);
logger.info("tradebill jsonObject:{}",response);
return JSONObject.parseObject(response.body());
}
结果,注意,账单文件的下载地址的有效时间为30s:
{"download_url":"https://api.mch.weixin.qq.com/v3/billdownload/file?token=3qqKHhrJo4nbfoefwB4SyoMaeDzdYua_9-WPLT8aDZaDZAGR2xmgnURg_cdSH8SZ&tartype=gzip","hash_type":"SHA1","hash_value":"bcac7ca40ccdf2b5f025be9aba0e8d27d1ec9824"}
如果超出30s调用,则会报如下错误
{"code":"INVALID_REQUEST","message":"下载链接过期,请重新请求文件下载"}
第二步:再调用下载账单API获取账单数据流
public static JSONObject billdownload(String token) {
logger.info("billdownload param:{}",token);
HttpResponse response = HttpUtils.v3HttpExecute("GET", String.format(BillUrl.BILL_DOWNLOAD,token),
"自己系统的应用名称","服务商商户号","商户API证书序列号","平台证书序列号","","商户API证书位置.pem",null);
logger.info("billdownload jsonObject:{}",response);
return JSONObject.parseObject(response.body());
}
3、结果
您的一键三连,是我更新的最大动力,谢谢
山水有相逢,来日皆可期,谢谢阅读,我们再会
我手中的金箍棒,上能通天,下能探海
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)