ソースを参照

新增 账单示例

Roc 5 年 前
コミット
87a62c6c19

+ 81 - 0
samples/WebApplicationSample/Controllers/WeChatPayV3Controller.cs

@@ -312,5 +312,86 @@ namespace WebApplicationSample.Controllers
             ViewData["response"] = response.Body;
             return View();
         }
+
+        /// <summary>
+        /// 申请交易账单
+        /// </summary>
+        [HttpGet]
+        public IActionResult TradeBill()
+        {
+            return View();
+        }
+
+        /// <summary>
+        /// 申请交易账单
+        /// </summary>
+        /// <param name="viewModel"></param>
+        [HttpPost]
+        public async Task<IActionResult> TradeBill(WeChatPayTradeBillViewModel viewModel)
+        {
+            var request = new WeChatPayBillTradeBillRequest
+            {
+                BillDate = viewModel.BillDate
+            };
+
+            var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
+
+            ViewData["response"] = response.Body;
+            return View();
+        }
+
+        /// <summary>
+        /// 申请资金账单
+        /// </summary>
+        [HttpGet]
+        public IActionResult FundflowBill()
+        {
+            return View();
+        }
+
+        /// <summary>
+        /// 申请资金账单
+        /// </summary>
+        /// <param name="viewModel"></param>
+        [HttpPost]
+        public async Task<IActionResult> FundflowBill(WeChatPayFundflowBillViewModel viewModel)
+        {
+            var request = new WeChatPayBillFundflowBillRequest
+            {
+                BillDate = viewModel.BillDate
+            };
+
+            var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
+
+            ViewData["response"] = response.Body;
+            return View();
+        }
+        
+        /// <summary>
+        /// 下载账单
+        /// </summary>
+        [HttpGet]
+        public IActionResult BillDownload()
+        {
+            return View();
+        }
+
+        /// <summary>
+        /// 下载账单
+        /// </summary>
+        /// <param name="viewModel"></param>
+        [HttpPost]
+        public async Task<IActionResult> BillDownload(WeChatPayBillDownloadViewModel viewModel)
+        {
+            var request = new WeChatPayBillDownloadRequest
+            {
+                DownloadUrl = viewModel.DownloadUrl
+            };
+
+            var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
+
+            ViewData["response"] = response.Body;
+            return View();
+        }
     }
 }

+ 21 - 0
samples/WebApplicationSample/Models/WeChatPayV3ViewModel.cs

@@ -102,4 +102,25 @@ namespace WebApplicationSample.Models
         [Display(Name = "out_trade_no")]
         public string OutTradeNo { get; set; }
     }
+
+    public class WeChatPayTradeBillViewModel
+    {
+        [Required]
+        [Display(Name = "bill_date")]
+        public string BillDate { get; set; }
+    }
+
+    public class WeChatPayFundflowBillViewModel
+    {
+        [Required]
+        [Display(Name = "bill_date")]
+        public string BillDate { get; set; }
+    }
+
+    public class WeChatPayBillDownloadViewModel
+    {
+        [Required]
+        [Display(Name = "download_url")]
+        public string DownloadUrl { get; set; }
+    }
 }

+ 33 - 0
samples/WebApplicationSample/Views/WeChatPayV3/BillDownload.cshtml

@@ -0,0 +1,33 @@
+@model WeChatPayBillDownloadViewModel
+@{
+    ViewData["Title"] = "下载账单";
+}
+<nav aria-label="breadcrumb">
+    <ol class="breadcrumb">
+        <li class="breadcrumb-item"><a asp-controller="WeChatPayV3" asp-action="Index">微信支付</a></li>
+        <li class="breadcrumb-item active" aria-current="page">@ViewData["Title"]</li>
+    </ol>
+</nav>
+<br />
+<div class="card">
+    <div class="card-body">
+        <form asp-controller="WeChatPayV3" asp-action="BillDownload">
+            <div asp-validation-summary="All" class="text-danger"></div>
+            <div class="form-group">
+                <label asp-for="DownloadUrl"></label>
+                <input type="text" class="form-control" asp-for="DownloadUrl" />
+            </div>
+            <button type="submit" class="btn btn-primary">提交请求</button>
+        </form>
+        <hr />
+        <form class="form-horizontal">
+            <div class="form-group">
+                <label>Response:</label>
+                <textarea class="form-control" rows="10">@ViewData["response"]</textarea>
+            </div>
+        </form>
+    </div>
+</div>
+@section Scripts {
+    @{await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}

+ 33 - 0
samples/WebApplicationSample/Views/WeChatPayV3/FundflowBill.cshtml

@@ -0,0 +1,33 @@
+@model WeChatPayFundflowBillViewModel
+@{
+    ViewData["Title"] = "申请交易账单";
+}
+<nav aria-label="breadcrumb">
+    <ol class="breadcrumb">
+        <li class="breadcrumb-item"><a asp-controller="WeChatPayV3" asp-action="Index">微信支付</a></li>
+        <li class="breadcrumb-item active" aria-current="page">@ViewData["Title"]</li>
+    </ol>
+</nav>
+<br />
+<div class="card">
+    <div class="card-body">
+        <form asp-controller="WeChatPayV3" asp-action="FundflowBill">
+            <div asp-validation-summary="All" class="text-danger"></div>
+            <div class="form-group">
+                <label asp-for="BillDate"></label>
+                <input type="text" class="form-control" asp-for="BillDate" />
+            </div>
+            <button type="submit" class="btn btn-primary">提交请求</button>
+        </form>
+        <hr />
+        <form class="form-horizontal">
+            <div class="form-group">
+                <label>Response:</label>
+                <textarea class="form-control" rows="10">@ViewData["response"]</textarea>
+            </div>
+        </form>
+    </div>
+</div>
+@section Scripts {
+    @{await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}

+ 18 - 0
samples/WebApplicationSample/Views/WeChatPayV3/Index.cshtml

@@ -66,5 +66,23 @@
             <td><a href="https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transactions/chapter3_6.shtml" target="_blank">https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{out_trade_no}/close</a></td>
             <td><a asp-controller="WeChatPayV3" asp-action="OutTradeNoClose">立即测试</a></td>
         </tr>
+        <tr>
+            <th scope="row">9</th>
+            <td>申请交易账单</td>
+            <td><a href="https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/bill/chapter3_1.shtml" target="_blank">https://api.mch.weixin.qq.com/v3/bill/tradebill</a></td>
+            <td><a asp-controller="WeChatPayV3" asp-action="TradeBill">立即测试</a></td>
+        </tr>
+        <tr>
+            <th scope="row">10</th>
+            <td>申请资金账单</td>
+            <td><a href="https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/bill/chapter3_2.shtml" target="_blank">https://api.mch.weixin.qq.com/v3/bill/fundflowbill</a></td>
+            <td><a asp-controller="WeChatPayV3" asp-action="FundflowBill">立即测试</a></td>
+        </tr>
+        <tr>
+            <th scope="row">11</th>
+            <td>下载账单</td>
+            <td><a href="https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/bill/chapter3_3.shtml" target="_blank">https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx</a></td>
+            <td><a asp-controller="WeChatPayV3" asp-action="BillDownload">立即测试</a></td>
+        </tr>
     </tbody>
 </table>

+ 33 - 0
samples/WebApplicationSample/Views/WeChatPayV3/TradeBill.cshtml

@@ -0,0 +1,33 @@
+@model WeChatPayTradeBillViewModel
+@{
+    ViewData["Title"] = "申请交易账单";
+}
+<nav aria-label="breadcrumb">
+    <ol class="breadcrumb">
+        <li class="breadcrumb-item"><a asp-controller="WeChatPayV3" asp-action="Index">微信支付</a></li>
+        <li class="breadcrumb-item active" aria-current="page">@ViewData["Title"]</li>
+    </ol>
+</nav>
+<br />
+<div class="card">
+    <div class="card-body">
+        <form asp-controller="WeChatPayV3" asp-action="TradeBill">
+            <div asp-validation-summary="All" class="text-danger"></div>
+            <div class="form-group">
+                <label asp-for="BillDate"></label>
+                <input type="text" class="form-control" asp-for="BillDate" />
+            </div>
+            <button type="submit" class="btn btn-primary">提交请求</button>
+        </form>
+        <hr />
+        <form class="form-horizontal">
+            <div class="form-group">
+                <label>Response:</label>
+                <textarea class="form-control" rows="10">@ViewData["response"]</textarea>
+            </div>
+        </form>
+    </div>
+</div>
+@section Scripts {
+    @{await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}