微信支付之下载账单

2024-05-31 17:18
文章标签 微信 支付 下载 账单

本文主要是介绍微信支付之下载账单,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

应用场景

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


官方在线文档:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=9_6

注意:

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

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

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

接口链接

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

参考代码如下

package com.wingo.action.config;

 

import java.util.SortedMap;

import java.util.TreeMap;

 

import com.wingo.util.CommonUtil;

import com.wingo.util.ConfigUtil;

import com.wingo.util.PayCommonUtil;

 

/**

 *

 * @author 李欣桦

 * @date 2015-1-6下午5:13:34

 *

 * 对账接口

 */

public class DownloadBillAction {

    /*注意:

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

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

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

     * 该接口对应的数据为服务号--->微信支付---->订单流水(退款订单的日期不是发起退订请求的日期,目前没测出是哪个日期)

     */

     /*第一行数据:

     * 当日所有订单 :

     * 交易时间, 公众账号ID, 商户号, 子商户号, 设备号, 微信订单号, 商户订单号, 用户标识,交易类型, 交易状态, 付款银行, 货币种类, 总金额, 现金券金额, 微信退款单号, 商户退

     * 款单号, 退款金额, 现金券退款金额, 退款类型, 退款状态, 商品名称, 商户数据包, 手续费,费率

     *

     * 当日成功支付的订单:

     * 交易时间, 公众账号ID, 商户号, 子商户号, 设备号, 微信订单号, 商户订单号, 用户标识,交易类型, 交易状态, 付款银行, 货币种类, 总金额, 现金券金额, 商品名称, 商户数据包,

     * 手续费, 费率

     *

     * 当日退款的订单:

     * 交易时间, 公众账号ID, 商户号, 子商户号, 设备号, 微信订单号, 商户订单号, 用户标识,交易类型, 交易状态, 付款银行, 货币种类, 总金额, 现金券金额, 退款申请时间, 退款成功

     * 时间, 微信退款单号, 商户退款单号, 退款金额, 现金券退款金额,退款类型,退款状态,商品名称, 商户数据包, 手续费, 费率

     *

     */

   

     /*

     * 第二行为数据记录,各参数以逗号分隔,参数前增加`符号,为标准键盘 1 左边键的字符,字段顺序与表头一致

     *

     */

   

     /*

     * 倒数第二行为订单统计标题,最后一行为统计数据,顺序:总交易单数,总交易额,总退款金额,总现金券退款金额,手续费总金额

     */

    public static void main(String[]args) throws Exception {

        SortedMap<Object,Object> parameters =new TreeMap<Object,Object>();

        parameters.put("appid",ConfigUtil.APPID);

        parameters.put("mch_id",ConfigUtil.MCH_ID);

//     parameters.put("device_info", "");//微信支付分配的终端设备号,填写此字段,只下载该设备号 的对账单

        parameters.put("nonce_str",PayCommonUtil.CreateNoncestr());

        parameters.put("bill_date","20141231");//下载对账单的日期,格式:20140603,日期不可为当天。

        //bill_type:ALL返回当日所有订单信息,默认值SUCCESS返回当日成功支付的订单。REFUND,返回当日退款订单

        parameters.put("bill_type","ALL");

        String sign =PayCommonUtil.createSign("utf-8", parameters);

        parameters.put("sign", sign);

        String reuqestXml =PayCommonUtil.getRequestXml(parameters);

        

        String result=CommonUtil.httpsRequest(ConfigUtil.DOWNLOAD_BILL_URL, "POST",reuqestXml);

        if(result.startsWith("<xml>")){//查询日期为当天时,错误信息提示日期无效

            System.out.println(result);

            System.out.println("无订单");

        }else {  

           String tradeMsg =  result.substring(result.indexOf("`"));

           String tradeInfo =  tradeMsg.substring(0,tradeMsg.indexOf("总"));

           String tradeTotalMsg =tradeMsg.substring(tradeMsg.indexOf("总"));

           String tradeTotalInfo =tradeTotalMsg.substring(tradeTotalMsg.indexOf("`"));

          

           System.out.println(result);

           System.out.println(tradeMsg);

           System.out.println(tradeInfo);

           System.out.println(tradeTotalMsg);

           System.out.println(tradeTotalInfo);

       }

    }

}


上述代码中相关工具类的下载地址如下:

http://download.csdn.net/detail/u011160656/8354883


这篇关于微信支付之下载账单的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1018554

相关文章

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o