微信对账单功能开发(V2)

下载交易账单接口开发

应用场景:

商户可以通过该接口下载历史交易清单。比如掉单、系统错误等导致商户侧和微信侧数据不一致,通过对账单核对后可校正支付状态。

注意:

1、微信侧未成功下单的交易不会出现在对账单中。支付成功后撤销的交易会出现在对账单中,跟原支付单订单号一致;

2、微信在次日9点启动生成前一天的对账单,建议商户10点后再获取;

3、对账单中涉及金额的字段单位为“元”。

4、对账单接口只能下载三个月以内的账单。

5、对账单是以商户号维度来生成的,如一个商户号与多个appid有绑定关系,则使用其中任何一个appid都可以请求下载对账单。对账单中的appid取自交易时候提交的appid,与请求下载对账单时使用的appid无关。

6、自2018年起入驻的商户默认是开通免充值券后的结算对账单,且汇总数据为总交易单数,应结订单总金额,退款总金额,充值券退款总金额,手续费总金额,订单总金额,申请退款总金额。

接口链接

https://api.mch.weixin.qq.com/pay/downloadbill

1.传入的参数:

 

基本代码如下:

 String nonceStr = sdf.format(date).toString();wx.setAppid(wechatAPIConstant.APP_ID);// APPidwx.setMch_id(wechatAPIConstant.MCH_ID);// 商户id//加密类型wx.setSign_type("MD5");wx.setNonce_str(nonceStr);//查询日期wx.setBill_date(qDate.replace("-", ""));wx.setBill_type("ALL");//MD5加密String MD5 = getEncryptionMD5(wx);//加密签名//设置签名wx.setSign(MD5);//转换为xml类型String xml = changeToXML(wx);log.info("debug对账单xml: xml={}", xml);//向微信平台发送xml数据StringBuffer buffer = HttpUtil.httpsRequest(wechatAPIConstant.WX_API_CHECK_ACCOUNT, "POST", xml);//微信平台账单数据String s = buffer.toString();// 去掉汇总数据,并且去掉'`'String tradeInfo = s.substring(0, s.indexOf("总")).replace("`", "");//以27个数据为一组int rowNum = 27;//以日期来分割数据List<String> splitGroup = Arrays.asList(tradeInfo.split(qDate));List<WechatBillAcount> billGroup =new ArrayList<>();for (int i = 0; i < splitGroup.size(); i++) {//把第一行表头去掉if (i == 0) {continue;}//取到微信账单数据List<String> tempSplit = Arrays.asList(splitGroup.get(i).split(","));WechatBillAcount bill = new WechatBillAcount();bill.setDate(qDate + tempSplit.get(0));bill.setAppId(tempSplit.get(1));bill.setMch_id(tempSplit.get(2));bill.setSubMch_id(tempSplit.get(3));bill.setDevice_info(tempSplit.get(4));bill.setWeiXinOrderNo(tempSplit.get(5));bill.setMchOrderNo(tempSplit.get(6));bill.setUserId(tempSplit.get(7));bill.setType(tempSplit.get(8));bill.setStatus(tempSplit.get(9));bill.setBank(tempSplit.get(10));bill.setCurrency(tempSplit.get(11));bill.setAmount(tempSplit.get(12));bill.setEnvelopeAmount(tempSplit.get(13));bill.setWxRefundNo(tempSplit.get(14));bill.setBusinessRefundNo(tempSplit.get(15));bill.setRefundAmount(tempSplit.get(16));bill.setRedEnvelopesRefundAmount(tempSplit.get(17));bill.setRefundType(tempSplit.get(18));bill.setRefundStatus(tempSplit.get(19));bill.setName(tempSplit.get(20));bill.setPacket(tempSplit.get(21));BigDecimal poundage = new BigDecimal(tempSplit.get(22));bill.setPoundage(poundage);bill.setRate(tempSplit.get(23));BigDecimal orderAmount = new BigDecimal(tempSplit.get(24));bill.setOrderAmount(orderAmount);bill.setAskRefundAmount(tempSplit.get(25));billGroup.add(bill);}addVOToEntity(billGroup);}

以xml形式传给微信对账单接口而后接口会返回值:

<xml><appid>wx2421b1c4370ec43b</appid><bill_date>20141110</bill_date><bill_type>ALL</bill_type><mch_id>10000100</mch_id><nonce_str>21df7dc9cd8616b56919f20d9f679233</nonce_str><sign>332F17B766FC787203EBE9D6E40457A1</sign>
</xml>

失败示例:

<xml><return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[require POST method]]></return_msg>
<error_code><![CDATA[20001]]></error_code></xml>

成功示例:

交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额,代金券或立减优惠金额,微信退款单号,商户退款单号,退款金额,代金券或立减优惠退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率
`2014-11-1016:33:45,`wx2421b1c4370ec43b,`10000100,`0,`1000,`1001690740201411100005734289,`1415640626,`085e9858e3ba5186aafcbaed1,`MICROPAY,`SUCCESS,`CFT,`CNY,`0.01,`0.0,`0,`0,`0,`0,`,`,`被扫支付测试,`订单额外描述,`0,`0.60%
`2014-11-1016:46:14,`wx2421b1c4370ec43b,`10000100,`0,`1000,`1002780740201411100005729794,`1415635270,`085e9858e90ca40c0b5aee463,`MICROPAY,`SUCCESS,`CFT,`CNY,`0.01,`0.0,`0,`0,`0,`0,`,`,`被扫支付测试,`订单额外描述,`0,`0.60%
总交易单数,总交易额,总退款金额,总代金券或立减优惠退款金额,手续费总金额
`2,`0.02,`0.0,`0.0,`0

最后解析响应的数据即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18951.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

财务报表分析

财务报表分析的概念 1.以了解企业盈利能力为主要目标 2.企业投资风险分析 3.未来盈利预测 4.估计企业的内在价值 财务报告的构成 财务报告是指公司对外提供的反映公司某一特定日期财务状况和某以会计期间经营成果、现金流量的文件。 财务报告包括【财务报表、财务情况说…

python分析财务报表

前言 其实这也是老师要求我们分析的一个项目&#xff0c;所以记录下分析的过程。 财务大数据作为大数据方向的一个热门方向&#xff0c;如果能学好&#xff0c;对于我们的今后工作是会有很大帮助的&#xff0c;同时目前市场人才需求也是很大的。 实验目的 利用python构建…

用chatGPT写一个SAP的资产负债表

最近爆火的ChatGpt相信大家都不陌生&#xff0c;听说它还能写代码&#xff0c;而且能力不凡。 chatGPT能用来干什么&#xff1f; 它可以自动生成文本对话&#xff0c;因此可以用来实现聊天机器人等应用。 例如&#xff0c;您可以利用ChatGPT构建一个聊天机器人&#xff0c;用…

ChatGPT 提示的艺术 — 编写清晰有效提示指南

术语解释 所谓 ChatGPT 提示&#xff08;Prompt&#xff09;&#xff0c;就是你与 ChatGPT 对话的时候在输入框输入的文本内容&#xff0c;例如&#xff1a; 红框内的文本就是这段对话中提供给 ChatGPT 的提示。 如果你还没有 ChatGPT 账号&#xff0c;请参考这篇教程获取&…

3个ChatGPT插件自动写书爆火,更多躺着赚钱玩法可以问AI自己!

梦晨 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT插件数量大爆发&#xff01;总数已达390个&#xff0c;与刚开放时的74个相比&#xff0c;增长超过400%。 而且有网友指出&#xff0c;其中112个都是在6月11日这一天冒出来的…… 虽然早期插件质量参差不齐体验一般&#xff0c;但…

Java进阶 - 易错知识点整理(待更新)

Java进阶 - 易错知识点整理&#xff08;待更新&#xff09; Note&#xff1a;这里根据 CSDN Java进阶技能树 整理的Java易错题&#xff08;不带问&#xff09;&#xff0c;并摘录了博主"哪吒" 的Java面试题整理&#xff08;带问&#xff09;、牛客网的Java面试题库&…

java八股文面试总结

** 面试题总结&#xff08;简略回答&#xff0c;方便记忆以及面试回答&#xff09; ** 计算机网络 什么时候选择 TCP,什么时候选 UDP? 答&#xff1a; UDP 一般用于即时通信&#xff0c;比如&#xff1a; 语音、 视频 、直播等等。这些场景对传输数据的准确性要求不是特别高…

【AIGC】BaiChuan7B开源大模型介绍、部署以及创建接口服务

模型介绍 baichuan-7B是由百川智能开发的一个开源的大规模预训练模型。基于Transformer结构&#xff0c;在大约1.2万亿tokens上训练的70亿参数模型&#xff0c;支持中英双语&#xff0c;上下文窗口长度为4096。在标准的中文和英文权威benchmark&#xff08;C-EVAL/MMLU&#x…

为什么AI检测器认为美国宪法是由人工智能编写的

人工智能写作检测器可信吗&#xff1f; 我们深入探讨它们背后的理论。 一、背景 如果你将美国最重要的法律文件——美国宪法——输入一个旨在检测类似ChatGPT的AI模型所写文本的工具中&#xff0c;那么它会告诉你该文件几乎肯定是由AI撰写的。但除非詹姆斯麦迪逊是时间旅行者&…

【ARM-Trustzone-TEE-ATF-SOC群】周刊 第一期:开篇

快速链接: . &#x1f449;&#x1f449;&#x1f449; 个人博客笔记导读目录(全部) &#x1f448;&#x1f448;&#x1f448; 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 背景 很多小伙伴也都知…

AI 时代的学习方式: 和文档对话

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;蚂蚁集团高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。 热门文章推荐…

chatgpt概述性分享:大家是如何用chatgpt的?

简述 训练方式 在一个比较强的BaseModel&#xff08;GPT3.5&#xff09;上继续用数据微调(SFT)&#xff0c;但这次的微调还引入了一种学习方式叫RLHF&#xff08;Reinforcement Learning from Human Feedback&#xff0c;人类反馈强化学习&#xff09;。 所以可以简单总结为…

利用AI润色简历和模拟面试 - ChatCV

ChatCV是什么 chatCV是一个智能简历优化和面试模拟平台&#xff0c;它利用chatpt来分析用户的简历和职位要求&#xff0c;并让chatgpt站在专业的招聘经理的角度来给出建议和反馈。用户上传自己的简历后&#xff0c;就可以开始和AI对话了。AI会根据简历内容&#xff0c;提出修改…

〖程序员的自我修养 - 精炼面试篇③〗- 如何通过「自我介绍」更好的推销自己

简介&#xff1a;应 850 小伙伴要求&#xff0c; 无论你是迷茫的在校生还是已经就业的老司机&#xff0c;该专栏都值得你订阅&#xff0c;它会让你成就更好的自己&#xff01;说明&#xff1a;该文属于 程序员的自我修养 专栏&#xff0c;购买任意白宝书体系化专栏可加入易编程…

对接腾讯广告平台系统开发(半自动化广告投放系统)

这是我最近刚弄完上线的一套比较有意思的比较大型的系统&#xff0c;因此特意记录一下。 先说这套玩意获得的效果&#xff1a;竞品的投放团队运营团队就算有一百个人&#xff0c;天天996&#xff0c;007加班不睡觉&#xff0c;投放效率也没有我们四五个人的高&#xff0c;这个…

ChatGPT 会取代人的哪些工作?哪些人群的职业规划需要转变?

ChatGPT 会取代人的哪些工作&#xff1f;哪些人群的职业规划需要转变&#xff1f; 作为一个人工智能&#xff0c;ChatGPT 可以用于许多自动化和智能化的工作领域。以下是 ChatGPT 可能会取代人的一些工作&#xff1a; 客服和客户支持&#xff1a;ChatGPT 可以接管一些基本的客户…

怎样写毕业论文的开题报告和任务书?

在开始一份毕业论文之前&#xff0c;任务书和开题报告是每一位同学都绕不开的&#xff0c;总有小伙伴为此头疼不已。为了让大家清楚地了解到什么是毕业论文的开题报告和任务书&#xff0c;以及如何写好开题报告和任务书&#xff0c;我总结了一篇大约2000字的文章&#xff0c;将…

开题报告的选题依据怎么写?

宝子们&#xff01;是不是导师在催你的开题报告啦~导师给你选了一个选题&#xff0c;是不是你还没琢磨好这个选题想表达点啥&#xff1f;到底有什么依据选这个选题&#xff1f;选题依据由什么组成&#xff1f;且先不说如何把选题写的足够出彩&#xff0c;但能不能找到一个合适的…

论文开题报告怎么写?

同学们&#xff0c;是不是又到了一年一度写开题报告的时候呀&#xff1f;是不是还在为不知道论文的开题报告怎么写而苦恼? Take it easy!我带着倾尽我所有开题报告写作经验总结出来的最强保姆级开题报告解说来啦&#xff0c;一定让你脱胎换骨&#xff0c;顺利拿下开题报告这个…

开题报告中的研究目的与研究内容怎么写?

导师帮你选好题目以后&#xff0c;是不是自己也还在纠结到底怎样快速先明确出整个初稿的内容和结论呢&#xff1f;开题报告的研究目的和研究内容怎么样才能被导师一眼看中呢&#xff1f;别犯愁啦~这一篇保准手拿把掐地教会你&#xff01;一起往下看看吧~ 这里是小目录喔~&#…