移动系统liao
2024-08-22 e71dcccec6a1cf51c928a5143264cbbec105ff2f
对接财富通
8个文件已修改
2个文件已添加
212 ■■■■■ 已修改文件
.gitignore 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/EzTencentCloud/TencentCloudService.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/EzUpFile/EzFileUploadService.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/EzUpFile/IEzFileUploadService.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/EzUpFile/UpFileController.cs 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/EzWechat/EzWechat.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/EzWechat/IWecharPayServicecs.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/EzWechat/WecharPayServicecs.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/EzWechat/WechatConfig.json 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/EzWechat/WechatService.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -25,3 +25,5 @@
cylsg/EzUpFile/obj/
cylsg/cylsg.services/bin/
cylsg/EzUpFile/bin/
cylsg/cylsg.Web.Entry/wwwroot/wechartKey/
cylsg/cylsg.Web.Entry/wwwroot/1669018589_20240820_cert.zip
cylsg/EzTencentCloud/TencentCloudService.cs
@@ -63,7 +63,7 @@
                httpProfile.Endpoint = ("ocr.tencentcloudapi.com");
                clientProfile.HttpProfile = httpProfile;
                var _ocrClient = new OcrClient(cred, "ap-chengdu", clientProfile);
                var _ocrClient = new OcrClient(cred, "ap-shanghai", clientProfile);
                IDCardOCRRequest req = new IDCardOCRRequest();
                if (isFRONT)
@@ -175,7 +175,7 @@
            httpProfile.Endpoint = ("iai.tencentcloudapi.com");
            clientProfile.HttpProfile = httpProfile;
            var iaiClient = new IaiClient(cred, "ap-chengdu", clientProfile);
            var iaiClient = new IaiClient(cred, "ap-shanghai", clientProfile);
            try
            {
                var retinfo = iaiClient.GetGroupInfoSync(new GetGroupInfoRequest
@@ -220,7 +220,7 @@
            httpProfile.Endpoint = ("iai.tencentcloudapi.com");
            clientProfile.HttpProfile = httpProfile;
            var iaiClient = new IaiClient(cred, "ap-chengdu", clientProfile);
            var iaiClient = new IaiClient(cred, "ap-shanghai", clientProfile);
           var ret=  iaiClient.CreatePerson(new TencentCloud.Iai.V20200303.Models.CreatePersonRequest
            {
                GroupId = App.Configuration["IAIGroupSet:ID"],
cylsg/EzUpFile/EzFileUploadService.cs
@@ -10,6 +10,8 @@
using Microsoft.AspNetCore.Http;
using SqlSugar;
using System;
using System.Buffers.Text;
using System.Drawing;
using System.Globalization;
using System.Security.Policy;
@@ -339,6 +341,7 @@
                    idcordinfo = _tcs.IdCord(img64, PageName == "FRONT");
                    url = await UploadFilesFByBase64(_tcs.GetIdCordImg());
                    idcordinfo.AdvancedInfo = null;
                    return (idcordinfo, url);
@@ -487,8 +490,42 @@
                throw Oops.Oh(e.Message);
            }
        }
/// <inheritdoc/>
        public async Task<(bool, string)> IaiAddPerso(string imgBase64, string CoredID, string Name, int PersonGender)
        {
            if (string.IsNullOrEmpty(imgBase64))
            {
                throw Oops.Oh("没有内容");
            }
            //检查上传大小
            if (!CommonHelper.CheckBase64Size(imgBase64, 5))
            {
                throw Oops.Oh("上传文件大小超过限制,最大允许上传" + "5" + "M");
            }
            imgBase64 = imgBase64.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");//将base64头部信息替换
            bool info = false;
            string url = "";
            try
            {
                info = _tcs.IaiAddPerso(imgBase64, CoredID, Name, PersonGender);
                url = await UploadFilesFByBase64(imgBase64);
                return (info, url);
            }
            catch (Exception e)
            {
                throw Oops.Oh(e.Message);
            }
        }
        #endregion
    }
}
cylsg/EzUpFile/IEzFileUploadService.cs
@@ -42,14 +42,22 @@
        Task<(BizLicenseOCRResponse, string)> UpBizLicense();
        /// <summary>
        /// 创建人脸特征
        /// 创建人脸特征 文件传送
        /// </summary>
        /// <param name="CoredID"> 身份证号</param>
        /// <param name="Name">姓名</param>  
        /// <param name="PersonGender"> 性别    0代表未填写,1代表男性,2代表女性。</param>
        /// <returns></returns>
        Task<(bool, string)> IaiAddPerso(string CoredID, string Name, int PersonGender);
        /// <summary>
        /// 创建人脸特征
        /// </summary>
        /// <param name="imgBase64">img base64</param>
        /// <param name="CoredID"> 身份证号</param>
        /// <param name="Name">姓名</param>
        /// <param name="PersonGender"> 性别    0代表未填写,1代表男性,2代表女性。</param>
        /// <returns></returns>
        Task<(bool, string)> IaiAddPerso(string imgBase64, string CoredID, string Name, int PersonGender);
    }
cylsg/EzUpFile/UpFileController.cs
@@ -1,4 +1,5 @@
using EzTencentCloud;
using Furion.FriendlyException;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
@@ -28,12 +29,12 @@
        /// <param name="PageName"> 身份证正反面 FRONT 正面  Back  国徽反面 </param>
        /// <returns></returns>
        [HttpPost]
        public async Task<(IDCardOCRResponse, string)> UploadIdCord([FromServices] IEzFileUploadService fileUploadService,IFormFile file, [FromQuery] string PageName = "FRONT")
        public async Task<Object> UploadIdCord([FromServices] IEzFileUploadService fileUploadService,IFormFile file, [FromQuery] string PageName = "FRONT")
        {
            return await fileUploadService.UpIdCord(PageName);
            var ret= await fileUploadService.UpIdCord(PageName);
            return new { Info = ret.Item1, url = ret.Item2 };
        }
        /// <summary>
@@ -42,11 +43,12 @@
        /// <param name="PageName"> 身份证正反面 FRONT 正面  Back  国徽反面 </param>
        /// <returns></returns>
        [HttpPost]
        public async Task<(BizLicenseOCRResponse, string)> UpBizLicense([FromServices] IEzFileUploadService fileUploadService, IFormFile file)
        public async Task<Object> UpBizLicense([FromServices] IEzFileUploadService fileUploadService, IFormFile file)
        {
            return await fileUploadService.UpBizLicense();
            var ret= await fileUploadService.UpBizLicense();
            return new { Info = ret.Item1, url = ret.Item2 };
        }
        /// <summary>
@@ -57,11 +59,32 @@
        /// <param name="Gender">0代表未填写,1代表男性,2代表女性。</param>
        /// <returns></returns>
        [HttpPost]
        public async Task<(bool , string)> IaiAddPerso([FromServices] IEzFileUploadService fileUploadService, IFormFile file,[FromQuery] string CordId, [FromQuery] string Name, [FromQuery] int Gender)
        public async Task<object> IaiAddPerso([FromServices] IEzFileUploadService fileUploadService, IFormFile file,[FromQuery] string CordId, [FromQuery] string Name, [FromQuery] int Gender)
        {
            return await fileUploadService.IaiAddPerso(CordId, Name,Gender);
            var ret= await fileUploadService.IaiAddPerso(CordId, Name,Gender);
            return new { IsOK = ret.Item1, url = ret.Item2 };
        }
        /// <summary>
        /// 增加人脸库 base64
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<object> IaiAddPersoBase64([FromServices] IEzFileUploadService fileUploadService, UpDataFileData param)
        {
            if (string.IsNullOrEmpty(param.imgBase64))
                throw Oops.Oh("没有文件类容");
            if (string.IsNullOrEmpty(param.Name))
                throw Oops.Oh("没有姓名");
            if (string.IsNullOrEmpty(param.CordId))
                throw Oops.Oh("没有身份证信息");
            var ret = await fileUploadService.IaiAddPerso(param.imgBase64, param.CordId, param. Name, param.Gender??0);
            return new { IsOK = ret.Item1, url = ret.Item2 };
        }
@@ -103,7 +126,7 @@
        [HttpPost]
        public async Task<string> UpdateFileBase64([FromServices] IEzFileUploadService fileUploadService, UpDataFileData Param)
        {
            return await fileUploadService.UploadFilesFByBase64(Param.FileBase64);
            return await fileUploadService.UploadFilesFByBase64(Param.imgBase64);
        }
        [HttpPost]
        public async Task<bool> DelFile([FromServices] IEzFileUploadService fileUploadService, DelFileData Param)
@@ -120,7 +143,19 @@
        /// <summary>
        /// 数据base64
        /// </summary>
        public string FileBase64 { get; set; }
        public string imgBase64 { get; set; }
        /// <summary>
        /// 身份证号码
        /// </summary>
        public string? CordId { get; set; }
        /// <summary>
        /// 姓名
        /// </summary>
        public string? Name { get; set; }
        /// <summary>
        /// 性别
        /// </summary>
        public int? Gender { get; set; }
    }
    /// <summary>
    /// 上传数据
@@ -133,4 +168,20 @@
        /// </summary>
        public string FilePath { get; set; }
    }
    /// <summary>
    /// 身份证返回输出
    /// </summary>
    public class IdCordOuput
    {
        /// <summary>
        /// 身份证相关信息
        /// </summary>
        public IDCardOCRResponse IdCordInfo { get; set; }
        /// <summary>
        ///  url
        /// </summary>
        public string Url {  get; set; }
    }
}
cylsg/EzWechat/EzWechat.csproj
@@ -8,6 +8,7 @@
  <ItemGroup>
    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="3.4.0" />
    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="3.7.0" />
  </ItemGroup>
  <ItemGroup>
cylsg/EzWechat/IWecharPayServicecs.cs
New file
@@ -0,0 +1,19 @@
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EzWechat
{
    public interface IWecharPayServicecs
    {
        /// <summary>
        /// 支付一单
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
       Task<CreateTransferBatchResponse> PayOderAsync(CreateTransferBatchRequest request);
    }
}
cylsg/EzWechat/WecharPayServicecs.cs
New file
@@ -0,0 +1,43 @@
using Furion;
using Furion.DependencyInjection;
using SKIT.FlurlHttpClient.Wechat.TenpayV3;
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models;
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Settings;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinOpenApiRequestIdGetResponse.Types;
namespace EzWechat
{
    /// <summary>
    /// 微信支付服务
    /// </summary>
    public class WecharPayServicecs:IWecharPayServicecs, IScoped
    {
        private readonly WechatTenpayClient _V3Client;
        public WecharPayServicecs() {
            var manager = new InMemoryCertificateManager();
            var options = new WechatTenpayClientOptions()
            {
                MerchantId = App.Configuration["WechartPay:MerchantId"],
                MerchantV3Secret = App.Configuration["WechartPay:lojdhuqyt5648dikunm623ddsl2543a5"],
                MerchantCertificateSerialNumber = App.Configuration["WechartPay:MerchantCertificateSerialNumber"],
                MerchantCertificatePrivateKey = System.IO.File.ReadAllText(App.Configuration["WechartPay:apiclient_keyFile"]),
                PlatformCertificateManager = manager // 平台证书管理器的具体用法请参阅下文的基础用法与加密、验签有关的章节
            };
             _V3Client = WechatTenpayClientBuilder.Create(options).Build();
        }
        public async Task<CreateTransferBatchResponse> PayOderAsync(CreateTransferBatchRequest request)
        {
            var response = await _V3Client.ExecuteCreateTransferBatchAsync(request);
            return response;
        }
    }
}
cylsg/EzWechat/WechatConfig.json
@@ -3,5 +3,14 @@
    "AppId": "wx983556688354dd14",
    "AppSecret": "2ab1aefaac926855dc9d5f7bf7f04477"
  },
  "WechartPay": {
    "MerchantV3Secret": "lojdhuqyt5648dikunm623ddsl2543a5",
    "MerchantId": "1669018589",
    "MerchantCertificateSerialNumber": "49FFE8CB27B5EDD026BFF23C41F0DAA83405EB10",
    "apiclient_keyFile": "wwwroot\\wechartKey\\apiclient_key.pem"
  }
}
cylsg/EzWechat/WechatService.cs
@@ -13,6 +13,7 @@
using System.Text;
using System.Threading.Tasks;
namespace EzWechat
{
@@ -106,5 +107,16 @@
            return key;
        }
    }
}