Pārlūkot izejas kodu

新增 账单-申请交易账单API

Roc 5 gadi atpakaļ
vecāks
revīzija
d43ef017a0

+ 57 - 0
src/Essensoft.AspNetCore.Payment.WeChatPay/Request/WeChatPayBillTradeBillRequest.cs

@@ -0,0 +1,57 @@
+using Essensoft.AspNetCore.Payment.WeChatPay.Response;
+
+namespace Essensoft.AspNetCore.Payment.WeChatPay.Request
+{
+    /// <summary>
+    /// 账单-申请交易账单API(电商平台、服务商、直连商户)
+    /// 最新更新时间:2019.09.16
+    /// https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/bill/chapter3_1.shtml
+    /// </summary>
+    public class WeChatPayBillTradeBillRequest : IWeChatPayV3GetRequest<WeChatPayBillTradeBillResponse>
+    {
+        /// <summary>
+        /// 账单日期
+        /// 格式YYYY-MM-DD
+        /// 仅支持三个月内的账单下载申请。
+        /// 示例值:2019-06-11
+        /// </summary>
+        public string BillDate { get; set; }
+
+        /// <summary>
+        /// 二级商户号
+        /// 1、若商户是直连商户:无需填写该字段。
+        /// 2、若商户是服务商:
+        /// ● 不填则默认返回服务商下的交易或退款数据。
+        /// ● 如需下载某个子商户下的交易或退款数据,则该字段必填。
+        /// 特殊规则:最小字符长度为8
+        /// 注意:仅适用于电商平台 服务商
+        /// 示例值:1900000001
+        /// </summary>
+        public string SubMchId { get; set; }
+
+        /// <summary>
+        /// 账单类型
+        /// 不填则默认是ALL
+        /// 枚举值:
+        /// ALL:返回当日所有订单信息(不含充值退款订单)
+        /// SUCCESS:返回当日成功支付的订单(不含充值退款订单)
+        /// REFUND:返回当日退款订单(不含充值退款订单)
+        /// 示例值:ALL
+        /// </summary>
+        public string BillType { get; set; }
+
+        /// <summary>
+        /// 压缩类型
+        /// 不填则默认是数据流
+        /// 枚举值:
+        /// GZIP:返回格式为.gzip的压缩包账单
+        /// 示例值:GZIP
+        /// </summary>
+        public string TarType { get; set; }
+
+        public string GetRequestUrl()
+        {
+            return $"{$"https://api.mch.weixin.qq.com/v3/bill/tradebill?bill_date={BillDate}"}{(string.IsNullOrEmpty(SubMchId) ? string.Empty : $"&sub_mchid={SubMchId}")}{(string.IsNullOrEmpty(BillType) ? string.Empty : $"&bill_type={BillType}")}{(string.IsNullOrEmpty(TarType) ? string.Empty : $"&tar_type={TarType}")}";
+        }
+    }
+}

+ 35 - 0
src/Essensoft.AspNetCore.Payment.WeChatPay/Response/WeChatPayBillTradeBillResponse.cs

@@ -0,0 +1,35 @@
+using System.Text.Json.Serialization;
+
+namespace Essensoft.AspNetCore.Payment.WeChatPay.Response
+{
+    /// <summary>
+    /// 账单-申请交易账单API-返回参数(电商平台、服务商、直连商户)
+    /// 最新更新时间:2019.09.16
+    /// https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/bill/chapter3_1.shtml
+    /// </summary>
+    public class WeChatPayBillTradeBillResponse : WeChatPayV3Response
+    {
+        /// 哈希类型
+        /// 从download_url下载的文件的哈希类型,用于校验文件的完整性。
+        /// 示例值:SHA1
+        /// </summary>
+        [JsonPropertyName("hash_type")]
+        public string HashType { get; set; }
+
+        /// <summary>
+        /// 哈希值
+        /// 从download_url下载的文件的哈希值,用于校验文件的完整性。
+        /// 示例值:79bb0f45fc4c42234a918000b2668d689e2bde04
+        /// </summary>
+        [JsonPropertyName("hash_value")]
+        public string HashValue { get; set; }
+
+        /// <summary>
+        /// 账单下载地址
+        /// 供下一步请求账单文件的下载地址,该地址30s内有效。
+        /// 示例值:https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx
+        /// </summary>
+        [JsonPropertyName("download_url")]
+        public string DownloadUrl { get; set; }
+    }
+}