标题:
微信对账单地址:
链接:https://pay.weixin.qq.com/wiki/doc/api/app/app_jw.php?chapter=9_6&index=8
功能:
<< 商户可以通过该接口下载历史交易清单。比如掉单、系统错误等导致商户侧和微信侧数据不一致,通过对账单核对后可校正支付状态。
注意:
1、微信侧未成功下单的交易不会出现在对账单中。支付成功后撤销的交易会出现在对账单中,跟原支付单订单号一致;
2、微信在次日9点启动生成前一天的对账单,建议商户10点后再获取;
3、对账单中涉及金额的字段单位为“元”。
4、对账单接口只能下载三个月以内的账单。
5、对账单是以商户号纬度来生成的,如一个商户号与多个appid有绑定关系,则使用其中任何一个appid都可以请求下载对账单。对账单中的appid取自交易时候提交的appid,与请求下载对账单时使用的appid无关。
6、自2018年起入驻的商户默认是开通免充值券后的结算对账单。
代码实现:
pom文件
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency>
实体类
package com.lwjwlkj.common.pojo.mysql.bill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 微信对账单
*
*
* @date:2020-06-23 17:14:15
*/
@Data
public class SysWechatBillRecord implements Serializable {
private static final long serialVersionUID = 1L;
public SysWechatBillRecord() {
super();
}
private Integer id;
/**
* 交易时间
*/
@ApiModelProperty(value = "交易时间")
@Column(name = "trade_time")
private Date tradeTime;
/**
* 公众号ID
*/
@ApiModelProperty(value = "公众号ID")
@Column(name = "app_id")
private String appId;
/**
* 商户号
*/
@ApiModelProperty(value = "商户号")
@Column(name = "mch_id")
private String mchId;
/**
* 子商户号
*/
@ApiModelProperty(value = "子商户号")
@Column(name = "mch_app_id")
private String mchAppId;
/**
* 设备号
*/
@ApiModelProperty(value = "设备号")
@Column(name = "device_info")
private String deviceInfo;
/**
* 微信订单号
*/
@ApiModelProperty(value = "微信订单号")
@Column(name = "transaction_id")
private String transactionId;
/**
* 商户订单号
*/
@ApiModelProperty(value = "商户订单号")
@Column(name = "out_trad_no")
private String outTradNo;
/**
* 用户标识
*/
@ApiModelProperty(value = "用户标识")
@Column(name = "open_id")
private String openId;
/**
* 交易类型(JSAPI:JSAPI支付(或小程序支付,NATIVE:Native支付,APP:app支付,MWEB:H5支付,MICROPAY:付款码支付,PAP:委托代扣)
*/
@ApiModelProperty(value = "交易类型(JSAPI:JSAPI支付(或小程序支付,NATIVE:Native支付,APP:app支付,MWEB:H5支付,MICROPAY:付款码支付,PAP:委托代扣)")
@Column(name = "trade_type")
private String tradeType;
/**
* 交易状态(SUCCESS:支付成功,REFUND:转入退款,REVOKED:已撤销)
*/
@ApiModelProperty(value =