From 3a3e7d48d5cb5bd14ce80c200c09fbc54df51bf7 Mon Sep 17 00:00:00 2001 From: "JIANWEIE-WORKPC\\Administrator" Date: Sat, 11 Feb 2023 15:34:48 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=B5=8B=E8=AF=95=E3=80=91=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=95=86=E5=AE=B6=E8=BD=AC=E8=B4=A6=E5=88=B0=E9=9B=B6?= =?UTF-8?q?=E9=92=B1=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CoreCms.Net.Services.csproj | 1 + .../User/CoreCmsUserTocashServices.cs | 91 ++++++++++++++++++- .../CoreCms.Net.Web.WebApi.xml | 2 +- 3 files changed, 90 insertions(+), 4 deletions(-) diff --git a/CoreCms.Net.Services/CoreCms.Net.Services.csproj b/CoreCms.Net.Services/CoreCms.Net.Services.csproj index 47c33b67..a401c409 100644 --- a/CoreCms.Net.Services/CoreCms.Net.Services.csproj +++ b/CoreCms.Net.Services/CoreCms.Net.Services.csproj @@ -15,6 +15,7 @@ + diff --git a/CoreCms.Net.Services/User/CoreCmsUserTocashServices.cs b/CoreCms.Net.Services/User/CoreCmsUserTocashServices.cs index d1d83a2d..91e29e4a 100644 --- a/CoreCms.Net.Services/User/CoreCmsUserTocashServices.cs +++ b/CoreCms.Net.Services/User/CoreCmsUserTocashServices.cs @@ -9,6 +9,7 @@ ***********************************************************************/ using System; +using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; @@ -33,6 +34,9 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using Newtonsoft.Json; +using SKIT.FlurlHttpClient.Wechat.TenpayV3.Settings; +using SKIT.FlurlHttpClient.Wechat.TenpayV3; +using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models; using SqlSugar; using Yitter.IdGenerator; @@ -302,7 +306,13 @@ namespace CoreCms.Net.Services { status = (int)GlobalEnumVars.UserTocashStatus.提现成功; var message = JsonConvert.SerializeObject(response); - var bl = await _dal.UpdateAsync(p => new CoreCmsUserTocash() { status = status, updateTime = DateTime.Now, message = message, type = type }, p => p.id == id && (p.status == (int)GlobalEnumVars.UserTocashStatus.待审核 || p.status == (int)GlobalEnumVars.UserTocashStatus.提现异常)); + var bl = await _dal.UpdateAsync(p => new CoreCmsUserTocash() + { + status = status, + updateTime = DateTime.Now, + message = message, + type = type + }, p => p.id == id && (p.status == (int)GlobalEnumVars.UserTocashStatus.待审核 || p.status == (int)GlobalEnumVars.UserTocashStatus.提现异常)); jm.status = bl; jm.data = status; } @@ -310,7 +320,13 @@ namespace CoreCms.Net.Services { status = (int)GlobalEnumVars.UserTocashStatus.提现异常; var message = JsonConvert.SerializeObject(response); - var bl = await _dal.UpdateAsync(p => new CoreCmsUserTocash() { status = status, updateTime = DateTime.Now, message = message, type = type }, p => p.id == id && (p.status == (int)GlobalEnumVars.UserTocashStatus.待审核 || p.status == (int)GlobalEnumVars.UserTocashStatus.提现异常)); + var bl = await _dal.UpdateAsync(p => new CoreCmsUserTocash() + { + status = status, + updateTime = DateTime.Now, + message = message, + type = type + }, p => p.id == id && (p.status == (int)GlobalEnumVars.UserTocashStatus.待审核 || p.status == (int)GlobalEnumVars.UserTocashStatus.提现异常)); jm.status = bl; jm.data = status; } @@ -363,12 +379,81 @@ namespace CoreCms.Net.Services break; } + case (int)GlobalEnumVars.UserTocashType.商家转账到零钱: + { + var user = await _userServices.QueryByIdAsync(info.userId); + if (user == null) + { + jm.msg = "用户信息获取失败"; + return jm; + } + var weChatUserInfo = await _weChatInfoServices.QueryByClauseAsync(p => p.userId == info.userId); + if (weChatUserInfo == null) + { + jm.msg = "微信用户数据获取失败"; + return jm; + } + //按分计算 + var amount = Convert.ToInt16((info.money - info.withdrawals) * 100); + + var palpay = _optionsAccessor.Value; + + var manager = new InMemoryCertificateManager(); + var options = new WechatTenpayClientOptions() + { + MerchantId = palpay.MchId, + MerchantV3Secret = palpay.APIv3Key, + MerchantCertificateSerialNumber = "微信商户证书序列号", + MerchantCertificatePrivateKey = "-----BEGIN PRIVATE KEY-----微信商户证书私钥,即 `apiclient_key.pem` 文件内容-----END PRIVATE KEY-----", + PlatformCertificateManager = manager // 证书管理器的具体用法请参阅下文的高级技巧与加密、验签有关的章节 + }; + var client = new WechatTenpayClient(options); + + var request = new CreateTransferBatchRequest(); + request.AppId = palpay.AppId; + request.OutBatchNumber = "ut" + info.createTime.ToString("yyyyMMddHHmmss"); + request.BatchName = info.id + "用户提现处理"; + request.BatchRemark = info.id + "用户提现处理"; + request.TotalAmount = amount; + request.TotalNumber = 1; + request.TransferDetailList = new List(); + //转账明细列表 + var t = new CreateTransferBatchRequest.Types.TransferDetail + { + OutDetailNumber = "ut" + info.id, + TransferAmount = amount, + TransferRemark = "用户提现处理", + OpenId = weChatUserInfo.openid, + UserName = info.accountName + }; + request.TransferDetailList.Add(t); + + var response = await client.ExecuteCreateTransferBatchAsync(request); + + if (response.IsSuccessful()) + { + status = (int)GlobalEnumVars.UserTocashStatus.提现成功; + var message = JsonConvert.SerializeObject(response); + var bl = await _dal.UpdateAsync(p => new CoreCmsUserTocash() { status = status, updateTime = DateTime.Now, message = message, type = type }, p => p.id == id && (p.status == (int)GlobalEnumVars.UserTocashStatus.待审核 || p.status == (int)GlobalEnumVars.UserTocashStatus.提现异常)); + jm.status = bl; + jm.data = status; + } + else + { + status = (int)GlobalEnumVars.UserTocashStatus.提现异常; + var message = JsonConvert.SerializeObject(response); + var bl = await _dal.UpdateAsync(p => new CoreCmsUserTocash() { status = status, updateTime = DateTime.Now, message = message, type = type }, p => p.id == id && (p.status == (int)GlobalEnumVars.UserTocashStatus.待审核 || p.status == (int)GlobalEnumVars.UserTocashStatus.提现异常)); + jm.status = bl; + jm.data = status; + } + break; + } + default: jm.msg = "提现方式获取失败"; jm.status = false; break; } - return jm; diff --git a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml index 8688ecc0..2e25ba61 100644 --- a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml +++ b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml @@ -412,7 +412,7 @@ 商品相关接口处理 - + 构造函数