diff --git a/src/Shentun.WebPeis.Application.Contracts/Persons/GetPersonListInputDto.cs b/src/Shentun.WebPeis.Application.Contracts/Persons/GetPersonListInputDto.cs
new file mode 100644
index 0000000..1a88e66
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/Persons/GetPersonListInputDto.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.Persons
+{
+ public class GetPersonListInputDto
+ {
+ ///
+ /// 人员姓名
+ ///
+ public string PatientName { get; set; }
+
+ ///
+ /// 性别Id
+ ///
+ public char? SexId { get; set; }
+
+ ///
+ /// 身份证号码
+ ///
+ public string IdNo { get; set; }
+
+ ///
+ /// 手机号码
+ ///
+ public string MobileTelephone { get; set; }
+
+
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/Persons/PersonListDto.cs b/src/Shentun.WebPeis.Application.Contracts/Persons/PersonListDto.cs
new file mode 100644
index 0000000..2878693
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/Persons/PersonListDto.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.Persons
+{
+ public class PersonListDto
+ {
+ ///
+ /// 人员姓名
+ ///
+ public string PatientName { get; set; }
+
+ ///
+ /// 性别
+ ///
+ public string SexName { get; set; }
+
+ ///
+ /// 身份证号码
+ ///
+ public string IdNo { get; set; }
+
+ ///
+ /// 手机号码
+ ///
+ public string MobileTelephone { get; set; }
+
+ ///
+ /// 注册时间
+ ///
+ public string CreationTime { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/WxPayHelpers/HttpHandler.cs b/src/Shentun.WebPeis.Application.Contracts/WxPayHelpers/HttpHandler.cs
new file mode 100644
index 0000000..9848550
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/WxPayHelpers/HttpHandler.cs
@@ -0,0 +1,98 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Net.Http;
+using System.Security.Cryptography;
+using System.Text;
+using System.Threading.Tasks;
+using System.Threading;
+
+namespace Shentun.WebPeis.WxPayHelpers
+{
+ ///
+ /// Http处理程序
+ /// 此类为官方提供内容,此处不做任何修改
+ /// 用于在请求微信接口时对请求构建签名信息,调用方式参照以下示例
+ /// 使用方法:
+ /// HttpClient client = new HttpClient(new HttpHandler("{商户号}", "{商户证书序列号}"));
+ /// ...
+ /// var response = client.GetAsync("https://api.mch.weixin.qq.com/v3/certificates");
+ /// 官方文档参考:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_0.shtml .NET示例代码
+ ///
+ public class HttpHandler : DelegatingHandler
+ {
+ private readonly string merchantId;
+ private readonly string serialNo;
+ ///
+ /// HttpHandler构造函数
+ ///
+ /// 商户号
+ /// 商户证书序列号
+ public HttpHandler(string merchantId, string merchantSerialNo)
+ {
+ InnerHandler = new HttpClientHandler();
+
+ this.merchantId = merchantId;
+ this.serialNo = merchantSerialNo;
+ }
+ ///
+ /// 发送请求方法
+ ///
+ ///
+ ///
+ ///
+ protected async override Task SendAsync(
+ HttpRequestMessage request,
+ CancellationToken cancellationToken)
+ {
+ var auth = await BuildAuthAsync(request);
+ string value = $"WECHATPAY2-SHA256-RSA2048 {auth}";
+ request.Headers.Add("Authorization", value);
+
+ return await base.SendAsync(request, cancellationToken);
+ }
+ ///
+ /// 创建签名方法
+ ///
+ ///
+ ///
+ protected async Task BuildAuthAsync(HttpRequestMessage request)
+ {
+ string method = request.Method.ToString();
+ string body = "";
+ if (method == "POST" || method == "PUT" || method == "PATCH")
+ {
+ var content = request.Content;
+ body = await content.ReadAsStringAsync();
+ }
+
+ string uri = request.RequestUri.PathAndQuery;
+ var timestamp = DateTimeOffset.Now.ToUnixTimeSeconds();
+ string nonce = Path.GetRandomFileName();
+
+ string message = $"{method}\n{uri}\n{timestamp}\n{nonce}\n{body}\n";
+ string signature = Sign(message);
+ return $"mchid=\"{merchantId}\",nonce_str=\"{nonce}\",timestamp=\"{timestamp}\",serial_no=\"{serialNo}\",signature=\"{signature}\"";
+ }
+ ///
+ /// 请求签名方法
+ ///
+ ///
+ ///
+ protected string Sign(string message)
+ {
+
+ ////直接调用WXPayHelper中配置的商户私钥privateKey
+ //string privateKey = WXPayHelper.privateKey;
+ //byte[] keyData = Convert.FromBase64String(privateKey);
+
+ //var rsa = RSA.Create();
+ ////适用该方法的版本https://learn.microsoft.com/zh-cn/dotnet/api/system.security.cryptography.asymmetricalgorithm.importpkcs8privatekey?view=net-7.0
+ //rsa.ImportPkcs8PrivateKey(keyData, out _);
+ //byte[] data = System.Text.Encoding.UTF8.GetBytes(message);
+ //return Convert.ToBase64String(rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1));
+
+ return "";
+ }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/WxPayHelpers/WXPayHelper.cs b/src/Shentun.WebPeis.Application.Contracts/WxPayHelpers/WXPayHelper.cs
new file mode 100644
index 0000000..c6169c1
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/WxPayHelpers/WXPayHelper.cs
@@ -0,0 +1,994 @@
+using System;
+using System.Collections.Generic;
+using System.Net.Http;
+using System.Security.Cryptography;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Shentun.WebPeis.WxPayHelpers
+{
+// ///
+// /// 微信支付类
+// /// 微信支付版本:V3
+// /// 所有方法只使用了接口提供的部分参数,可更具业务场景需要修改接口参数
+// ///
+// public class WXPayHelper
+// {
+
+// #region 公共参数
+// ///
+// /// 公众平台AppId
+// /// 这里填写你自己的公众平台AppId
+// ///
+// public static string appid = "自己的公众平台appid";
+// ///
+// /// 商户号
+// /// 这里填写你自己的商户号
+// ///
+// public static string mch_id = "1303919101";
+// ///
+// /// 特约商户微信支付API秘钥
+// /// 这里填写你自己的特约商户微信支付API秘钥
+// ///
+// public static string wxPayApiKey = "gfrdfhhjhjedt3457ywfdsf45665gert";
+// ///
+// /// 商户私钥
+// /// (微信支付文档->下载并配置商户证书时生成)
+// /// NOTE: 私钥不包括私钥文件起始的-----BEGIN PRIVATE KEY-----
+// /// 亦不包括结尾的-----END PRIVATE KEY-----
+// /// 这里填写你自己的商户私钥
+// ///
+// public static string privateKey = @"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3xEIME1QnJQra
+//ZpNEDwCkK7TnGCW0mfhMMUbJDp/9eswa5+9pIqulcA/YRxjv+IMdYvk80yloSjOy
+//UVbBH6/TQyvgKXVRkqICovUPVkBAlC8QyQhC6ds8jWNRZ9iAsSoRe54isiEPrsV+
+//NU9pHsnjNYACSs9t4yJBraghQvd56MeNBSILwHll2w6L7/eWccB+L7g/xnI33KHT
+//rNXhkErhjSrEl1MGAIF1g2lpxzd4uUvNDc2JUagjpURp2t2X1XyfWYtndKd62pkg
+//tIJFZZJYgelyeeS+gBAeOatXI5zh+zvgcI1Ya+DzI92GLY2a5kjwP5RHH72lqV8O
+//UY8kpFlbAgMBAAECggEAXrvM9J6uPjPJYYeJmYdGZFunuY5oOa86IkUw4YspjSnV
+//uHUipYdbB0E62drlDyiEpwyTwfh1my7Ncbqex5ZHNNim8LtOoIu/+y34uTxUiTYb
+//AUMxgBVAkPmuXpPzN3ydXD/m6Kn9gzEs3IAs/NsDZp7467WXM2XpDgSw7Nyx6WTo
+//H3TRUWvyr5TMOEApDX8eINh6s/ewlr3BHLJSYMkjPGpzKWMqTLs9O88NL3NHQnv6
+//jOnF2EWtFVT81O7H+bViJUhW1y4iiHdet2L7Jk9p77DDjMJmz/WsCulxFN+Ahq6n
+//AZW5DBA4KLGCyKiz17t37Ky07YRByMi02/aiSlM/wQKBgQDl9pInNFv4hPxHIrJE
+//K3xQgSWaKAyuxDHnrMWg2ovbFl4XvRMDqLibcUQXBH01jIWwReiZOk9e6KRuZiBO
+//FEd7CD24PNdDctR3ddKAwT/gAigDk0pNAnvtjw029BobGmpJVDxMtChkGaQeAHh5
+//UXtYhMC6qMy+E5yDLy5rcIysYQKBgQDMkrD03l6KDO+xa9wiBOIePKd2086csMaD
+//quWblfHNyzdxYitkd9AEk1nAaiZ09qQvAZmd3EbT7vL33uQGQSTwqkC/jWpvdgJ0
+//gyRdNQ0D8b/PqKEoSMyZyqrKnU1ng+Bn2bjjimhjOUdoNw0OSEGL+zmciTJ9Q02M
+//maJgQwT/OwKBgDq30O3NwsYcPsZzJ42chOuRbmaEX2iolA2R4gyGgTt55KCvGJHQ
+//nQKj0z0FWms37FLsJs4pQ2b6hDHkRc9qAi56Fjha4KRKR9IQ9aUGsyahplHzY/9x
+//6O7pnfgwMBJHlmgO6C61ubKFkZBPknN3yMT7cLK4sz69hzM/8txgKqtBAoGAVkP1
+//gwzSaPyThwmoxl+wyndhVuZyVfjlfVhvgnB0iweK1bFEAxXTDlrkmhMpLGFlUr0l
+///j+JTo2Qv52qIkkOPr5Ml3oWy/HDj0ZN61AXsPYcoIDHlKk+PgwMgWxb267szl4t
+//bSZMZqscxYGRa9hka5cA8FWaiN/8r7GJm3YngUkCgYEAxvkA6NQW8VCCbb6FPO+g
+//0Qvlpih7RoHm42IBXQ83ZJEuwSdL09AClUR5ggvzwjQ5CfEqJS2qyEvvzat5WBXx
+//6nT/XTEUtoc81XsMLCavzn23g05pk10kOYlU7YFELIekJdIDWUSYKmdAfSQ2wmgZ
+//5GbnOxI81pOaqwbngc7zZJ0=";
+// ///
+// /// 商户证书序列号
+// /// (微信支付文档->下载并配置商户证书时生成)
+// /// 这里填写你自己的商户证书序列号
+// ///
+// public static string certificateKey = "790255968BA3791570CC54DD4F4BEB65B75D7A62";
+// ///
+// /// 回调地址
+// /// (微信支付后自动回调商户平台的外网地址,微信平台自动调用,用于处理支付后的工作)
+// /// 一般用于通过微信调用该接口地址传入的参数解析后获取支付结果,处理不同支付结果的业务逻辑
+// /// 需与微信商户号中支付目录地址配置一致
+// /// 回调地址随便外网能访问就行 /tPosition/WX_Callback
+// /// 注意!!!!!! 不以“/”结尾
+// ///
+// public static string notifyurl = "自己的回调地址";
+// ///
+// /// 统一退款接口
+// /// 微信支付平台提供的统一退款接口地址
+// ///
+// private readonly string OutUrl = "https://api.mch.weixin.qq.com/v3/refund/domestic/refunds";
+// #endregion
+
+// #region 公共参数类
+// #region 下单基类
+// ///
+// /// 下单请求参数基类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml 请求参数
+// ///
+// private class PayOrderbodyModelBase
+// {
+// ///
+// /// 直连商户号
+// ///
+// public string mchid { get; set; }
+// ///
+// /// 应用ID
+// ///
+// public string appid { get; set; }
+// ///
+// /// 商品描述
+// ///
+// public string description { get; set; }
+
+// ///
+// /// 商户订单号
+// ///
+// public string out_trade_no { get; set; }
+// ///
+// /// 通知地址
+// ///
+// public string notify_url { get; set; }
+// ///
+// /// 订单金额
+// ///
+// public object amount { get; set; }
+
+
+// }
+
+// ///
+// /// 下单返回结果基类
+// ///
+// private class ReturnParametersBase
+// {
+// ///
+// /// 返回结果【true/false】
+// ///
+// public bool result { get; set; }
+// ///
+// /// 错误描述
+// ///
+// public string errmsg { get; set; }
+// }
+
+// ///
+// /// 通用订单金额类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml
+// /// 请求参数中 的 订单金额(amount)参数
+// ///
+// private class amount
+// {
+// ///
+// /// 金钱
+// ///
+// public int total { get; set; }
+// ///
+// /// 货币类型
+// /// CNY:人民币,境内商户号仅支持人民币。
+// ///
+// public string currency { get; set; } = "CNY";
+// }
+
+// ///
+// /// 通用订单金额类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml
+// /// 请求参数中 的 场景信息(scene_info)参数
+// ///
+// private class scene_info
+// {
+// ///
+// /// 用户终端IP
+// /// 用户的客户端IP,支持IPv4和IPv6两种格式的IP地址。
+// /// 示例值:14.23.150.211
+// ///
+// public string payer_client_ip { get; set; }
+// ///
+// /// H5场景信息
+// ///
+// public object h5_info { get; set; }
+// }
+
+// ///
+// /// 通用H5场景信息类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml
+// /// 请求参数中 的 场景信息(scene_info)参数
+// ///
+// private class h5_info
+// {
+// ///
+// /// 场景类型
+// /// 示例值:iOS, Android, Wap
+// ///
+// public string type { get; set; }
+// }
+// #endregion
+// #region 支付通知结果
+// ///
+// /// 统一支付通知结果类
+// /// 详情参考:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_5.shtml 通知参数
+// ///
+// public class PayResult
+// {
+// ///
+// /// 通知ID 通知的唯一ID 示例值:EV-2018022511223320873
+// ///
+// public string id { get; set; }
+// ///
+// /// 通知ID 通知的唯一ID 示例值:EV-2018022511223320873
+// ///
+// public string prepay_id { get; set; }
+// ///
+// /// 通知创建时间
+// /// 通知创建的时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss.表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示北京时间2015年05月20日13点29分35秒。
+// /// 示例值:2015-05-20T13:29:35+08:00
+// ///
+// public string create_time { get; set; }
+// ///
+// /// 通知数据类型
+// ///
+// public string resource_type { get; set; }
+// ///
+// /// 通知类型
+// ///
+// public string event_type { get; set; }
+// ///
+// /// 回调摘要
+// ///
+// public string summary { get; set; }
+// ///
+// /// 返回成功的链接
+// ///
+// public Resource resource { get; set; }
+// }
+// ///
+// /// 统一通知数据类
+// /// 详情参考:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_5.shtml
+// /// 通知参数 中 通知数据(resource)成员
+// ///
+// public class Resource
+// {
+// ///
+// /// 原始类型
+// ///
+// public string original_type { get; set; }
+// ///
+// /// 加密算法类型
+// ///
+// public string algorithm { get; set; }
+// ///
+// /// 数据密文
+// ///
+// public string ciphertext { get; set; }
+// ///
+// /// 附加数据
+// ///
+// public string associated_data { get; set; }
+// ///
+// /// 随机串
+// ///
+// public string nonce { get; set; }
+// }
+// #endregion
+// #region 订单/支付通知结果报文解析结果
+// ///
+// /// 统一通知数据解析结果类
+// /// 详情参见:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_2.shtml 返回参数
+// ///
+// public class ResourceReslt
+// {
+// /*微信支付查询订单接口返回参数*/
+// ///
+// /// 商户订单号
+// ///
+// public string out_trade_no { get; set; }
+// ///
+// /// 微信支付订单号
+// ///
+// public string transaction_id { get; set; }
+// ///
+// /// 交易类型
+// ///
+// public string trade_type { get; set; }
+// ///
+// /// 交易状态
+// /// 交易状态,枚举值:
+// ///SUCCESS:支付成功
+// ///REFUND:转入退款
+// ///NOTPAY:未支付
+// ///CLOSED:已关闭
+// ///REVOKED:已撤销(付款码支付)
+// ///USERPAYING:用户支付中(付款码支付)
+// ///PAYERROR:支付失败(其他原因,如银行返回失败)
+// ///
+// public string trade_state { get; set; }
+// ///
+// /// 交易状态描述
+// ///
+// public string trade_state_desc { get; set; }
+// ///
+// /// 支付完成时间
+// ///
+// public string success_time { get; set; }
+// ///
+// /// 支付者
+// ///
+
+// public payPerson payer { get; set; }
+
+// ///
+// /// 订单金额
+// ///
+
+// public ResourceReslt_amount amount { get; set; }
+// /*自定义扩展参数*/
+// ///
+// /// 返回结果标识(0失败,1成功)
+// ///
+// public int code { get; set; }
+// }
+// ///
+// /// 统一通知数据解析结果金额类
+// /// 详情参考:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_5.shtml
+// /// 支付成功通知参数 中 订单金额(amount) 成员
+// ///
+// public class ResourceReslt_amount
+// {
+// ///
+// /// 总金额 订单总金额,单位为分。
+// ///
+// public int total { get; set; }
+// ///
+// /// 用户支付金额 用户支付金额,单位为分。
+// ///
+// public int payer_total { get; set; }
+// ///
+// /// 货币类型
+// ///
+// public string currency { get; set; } = "CNY";
+// ///
+// /// 用户支付币种
+// ///
+// public string payer_currency { get; set; } = "CNY";
+// }
+// ///
+// /// 通用支付者类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml
+// /// 请求参数中 的 支付者(payer)参数
+// ///
+// public class payPerson
+// {
+// ///
+// /// 用户标识
+// ///
+// public string openid { get; set; }
+// }
+// #endregion
+// #region 退款
+// ///
+// /// 统一退款请求参数类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_9.shtml 请求参数
+// ///
+// private class OutBodyModel
+// {
+// ///
+// /// 商户订单号 必填
+// ///
+// public string out_trade_no { get; set; }
+// ///
+// /// 商户退款单号 必填
+// ///
+// public string out_refund_no { get; set; }
+// ///
+// /// 退款原因 非必填
+// ///
+// public string reason { get; set; } = "退款";
+
+
+// //public string notify_url { get; set; } = "";
+// ///
+// /// 金额信息 必填
+// ///
+// public object amount { get; set; }
+// }
+
+// ///
+// /// 统一退款请求参数 金额信息类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_9.shtml
+// /// 请求参数中 的 金额信息(amount)参数
+// ///
+// private class Out_amount
+// {
+// ///
+// /// 退款金额 必填
+// /// 退款金额,单位为分,只能为整数,不能超过原订单支付金额。
+// ///
+// public int refund { get; set; }
+// ///
+// /// 原订单金额 必填
+// /// 原支付交易的订单总金额,单位为分,只能为整数。
+// ///
+// public int total { get; set; }
+// ///
+// /// 退款币种 必填
+// /// 符合ISO 4217标准的三位字母代码,目前只支持人民币:CNY。
+// ///
+// public string currency { get; set; } = "CNY";
+// }
+
+// ///
+// /// 统一退款返回参数类
+// /// 请求统一申请退款接口返回参数类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_9.shtml 返回参数
+// ///
+// public class Out_result
+// {
+// /*微信支付申请退款接口返回参数*/
+// ///
+// /// 微信支付退款单号 必填
+// ///
+// public string refund_id { get; set; }
+// ///
+// /// 商户退款单号 必填
+// ///
+// public string out_refund_no { get; set; }
+// ///
+// /// 微信支付订单号 必填
+// ///
+// public string transaction_id { get; set; }
+
+// ///
+// /// 商户订单号 必填
+// ///
+// public string out_trade_no { get; set; }
+// ///
+// /// 退款渠道 必填
+// ///
+// public string channel { get; set; }
+// ///
+// /// 退款入账账户 必填
+// ///
+// public string user_received_account { get; set; }
+// ///
+// /// 退款成功时间 非必填
+// ///
+// public string success_time { get; set; }
+// ///
+// /// 退款创建时间 必填
+// ///
+// public string create_time { get; set; }
+// ///
+// /// 退款状态 必填
+// ///
+// public string status { get; set; }
+// ///
+// /// 资金账户 必填
+// ///
+// public string funds_account { get; set; }
+// ///
+// /// 金额信息 必填
+// ///
+// public Out_result_amount amount { get; set; }
+// /*自定义扩展参数*/
+// ///
+// /// 状态码:200成功,其他失败
+// ///
+// public int code { get; set; } = 400;
+
+// }
+
+// ///
+// /// 统一退款返回参数 金额信息类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_9.shtml
+// /// 返回参数中 的 金额信息(amount)参数
+// ///
+// public class Out_result_amount
+// {
+// ///
+// /// 退款金额 必填
+// /// 退款标价金额,单位为分,可以做部分退款
+// ///
+// public int refund { get; set; }
+// ///
+// /// 订单金额 必填
+// /// 订单总金额,单位为分
+// ///
+// public int total { get; set; }
+// ///
+// /// 用户支付金额 必填
+// /// 现金支付金额,单位为分,只能为整数
+// ///
+// public int payer_refund { get; set; }
+// ///
+// /// 用户退款金额 必填
+// /// 退款给用户的金额,不包含所有优惠券金额
+// ///
+// public int payer_total { get; set; }
+
+// ///
+// /// 应结退款金额 必填
+// /// 去掉非充值代金券退款金额后的退款金额,单位为分,退款金额=申请退款金额-非充值代金券退款金额,退款金额<=申请退款金额
+// ///
+// public int settlement_refund { get; set; }
+// ///
+// /// 应结订单金额 必填
+// /// 应结订单金额=订单金额-免充值代金券金额,应结订单金额<=订单金额,单位为分
+// ///
+// public int settlement_total { get; set; }
+// ///
+// /// 优惠退款金额 必填
+// /// 优惠退款金额<=退款金额,退款金额-代金券或立减优惠退款金额为现金,说明详见代金券或立减优惠,单位为分
+// ///
+// public int discount_refund { get; set; }
+// ///
+// /// 手续费退款金额 非必填
+// /// 手续费退款金额,单位为分。
+// ///
+// public int refund_fee { get; set; }
+
+// ///
+// /// 退款币种 必填
+// /// 符合ISO 4217标准的三位字母代码,目前只支持人民币:CNY。
+// ///
+// public string currency { get; set; } = "CNY";
+// }
+
+// #endregion
+// #endregion
+
+
+// //#region 公共方法 (已测试上线)(适用于JSAPI、APP、H5、Native、小程序)
+// /////
+// ///// 统一查询订单接口
+// ///// 微信支付平台提供的JSAPI统一查询订单接口地址:https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{out_trade_no}
+// ///// 详情参见:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_2.shtml
+// /////
+// ///// 商户平台订单编号 必填
+// ///// 其他参数更具业务需要自行添加
+// /////
+// //public async Task SearchOrder(string out_trade_no)
+// //{
+// // LogHelper.WriteWithTime("JSAPISearchOrder进入");
+// // LogHelper.WriteWithTime("mchid:" + mch_id + "out_trade_no" + out_trade_no);
+// // //签名后发起请求
+// // HttpClient client = new HttpClient(new HttpHandler(mch_id, certificateKey));
+// // //请求头部添加Accept参数,值为application/json,固定参数,无需修改
+// // client.DefaultRequestHeaders.Add("Accept", "application/json");
+// // //请求头部添加User-Agent参数,值为Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36,固定参数,无需修改
+// // client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36");
+// // //发起GET请求并等待结果返回,传入参数为商户平台订单编号和商户号
+// // var response = await client.GetAsync($@"https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{out_trade_no}" + "?mchid=" + mch_id);
+// // LogHelper.WriteWithTime("response : " + JsonConvert.SerializeObject(response));
+// // //等待返回结果读取
+// // var respStr = await response.Content.ReadAsStringAsync();
+// // LogHelper.WriteWithTime("respStr : " + JsonConvert.SerializeObject(respStr));
+// // //创建通知数据解析结果类实例
+// // ResourceReslt jo = new ResourceReslt();
+// // if (response.IsSuccessStatusCode)
+// // {
+// // //如果IsSuccessStatusCode为成功,则返回订单查询结果
+// // jo = JsonConvert.DeserializeObject(respStr);
+// // jo.code = 1;
+// // }
+// // else
+// // {
+// // //如果IsSuccessStatusCode为失败,则返回失败状态码
+// // jo.code = 0;
+// // }
+// // return JsonConvert.SerializeObject(jo);
+
+// //}
+// /////
+// ///// 统一退款接口
+// ///// 详情参见:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_9.shtml
+// /////
+// ///// 商户订单号
+// ///// 商户退款单号(商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@ ,同一退款单号多次请求只退一笔。)
+// ///// 退款金额(元)(退款金额,单位为分,只能为整数,不能超过原订单支付金额。)
+// ///// 订单金额(元)(原支付交易的订单总金额,单位为分,只能为整数。)
+// ///// 其他参数更具业务需要自行添加
+// /////
+// //public async Task Refunds(string out_trade_no, string out_refund_no, double refund, double total)
+// //{
+// // //创建jsapi返回结果类的实例 returnParameters
+// // Out_result returnParameters = new Out_result();
+// // //构建即将发起的POST请求的body参数
+// // var formData = new OutBodyModel
+// // {
+// // out_trade_no = out_trade_no,//商户订单号
+// // out_refund_no = out_refund_no,//商户退款单号
+// // amount = new Out_amount
+// // {
+// // total = Convert.ToInt32(total * 100),//订单金额
+// // refund = Convert.ToInt32(refund * 100),//退款金额
+// // }
+// // };
+// // LogHelper.WriteWithTime("OutBodyModel : " + JsonConvert.SerializeObject(formData));
+// // //使用示例:HttpClient client = new HttpClient(new HttpHandler("{商户号}", "{商户证书序列号}"));
+// // //HttpClient client = new HttpClient(new HttpHandler("1500536401", "340A5D32A5040892B41217F0730EDC5137A76405"));
+// // HttpClient client = new HttpClient(new HttpHandler(mch_id, certificateKey));
+// // //请求头部添加Accept参数,值为application/json,固定参数,无需修改
+// // client.DefaultRequestHeaders.Add("Accept", "application/json");
+// // //请求头部添加User-Agent参数,值为Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36,固定参数,无需修改
+// // client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36");
+// // var bodyJson = new StringContent(JsonConvert.SerializeObject(formData), Encoding.UTF8, "application/json");
+// // //发起请求并等待请求结果返回
+// // var response = await client.PostAsync(OutUrl, bodyJson);
+// // LogHelper.WriteWithTime("response : " + JsonConvert.SerializeObject(response));
+// // //等待返回结果
+// // var respStr = await response.Content.ReadAsStringAsync();
+// // LogHelper.WriteWithTime("respStr : " + JsonConvert.SerializeObject(respStr));
+
+// // //JObject jo = (JObject)JsonConvert.DeserializeObject(respStr);
+// // if (response.IsSuccessStatusCode)
+// // {
+// // //如果请求成功将返回的JSON字符串转换为对象
+// // returnParameters = JsonConvert.DeserializeObject(respStr);
+// // returnParameters.code = 200;
+// // }//失败则返回初始化的returnParameters
+
+// // //返回returnParameters
+// // return JsonConvert.SerializeObject(returnParameters);
+
+// //}
+// /////
+// ///// 统一查询单笔退款接口
+// ///// 微信支付平台提供的JSAPI统一查询订单接口地址:https://api.mch.weixin.qq.com/v3/refund/domestic/refunds/{out_refund_no}
+// ///// 详情参见:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_10.shtml
+// /////
+// ///// 商户平台退款单号 必填
+// ///// 其他参数更具业务需要自行添加
+// /////
+// //public async Task SearchRefunds(string out_refund_no)
+// //{
+// // LogHelper.WriteWithTime("JSAPISearchOrder进入");
+// // LogHelper.WriteWithTime("mchid:" + mch_id + "out_trade_no" + out_refund_no);
+// // //签名后发起请求
+// // HttpClient client = new HttpClient(new HttpHandler(mch_id, certificateKey));
+// // //请求头部添加Accept参数,值为application/json,固定参数,无需修改
+// // client.DefaultRequestHeaders.Add("Accept", "application/json");
+// // //请求头部添加User-Agent参数,值为Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36,固定参数,无需修改
+// // client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36");
+// // //发起GET请求并等待结果返回,传入参数为商户平台订单编号和商户号
+// // var response = await client.GetAsync($@"https://api.mch.weixin.qq.com/v3/refund/domestic/refunds/{out_refund_no}");
+// // LogHelper.WriteWithTime("response : " + JsonConvert.SerializeObject(response));
+// // //等待返回结果读取
+// // var respStr = await response.Content.ReadAsStringAsync();
+// // LogHelper.WriteWithTime("respStr : " + JsonConvert.SerializeObject(respStr));
+// // //创建通知数据解析结果类实例
+// // Out_result jo = new Out_result();
+// // if (response.IsSuccessStatusCode)
+// // {
+// // //如果IsSuccessStatusCode为成功,则返回订单查询结果
+// // jo = JsonConvert.DeserializeObject(respStr);
+// // jo.code = 1;
+// // }
+// // else
+// // {
+// // //如果IsSuccessStatusCode为失败,则返回失败状态码
+// // jo.code = 0;
+// // }
+// // return JsonConvert.SerializeObject(jo);
+
+// //}
+// //#endregion
+
+// #region JSAPI支付(已完成测试上线)
+// #region JSAPI参数
+// ///
+// /// 统一下单接口(JSAPI)
+// /// 微信支付平台提供的JSAPI统一下单接口地址
+// ///
+// private readonly string JSAPIurl = "https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi";
+// #endregion
+// #region JSAPI参数类
+// ///
+// /// 调起支付参数类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_4.shtml 接口定义
+// ///
+// private class JSAPICallUpPaymentParams
+// {
+// /*微信调起支付要求参数*/
+// ///
+// /// 公众号AppId
+// /// 商户申请的公众号对应的appid,由微信支付生成,可在公众号后台查看
+// ///
+// public string appid { get; set; }
+// ///
+// /// 时间戳
+// /// 时间戳,标准北京时间,时区为东八区,自1970年1月1日 0点0分0秒以来的秒数。注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字)。
+// ///
+// public string timeStamp { get; set; }
+// ///
+// /// 随机字符串
+// /// 随机字符串,不长于32位。
+// ///
+// public string nonceStr { get; set; }
+// ///
+// /// 订单详情扩展字符串
+// /// JSAPI下单接口返回的prepay_id参数值,提交格式如:prepay_id=***
+// ///
+// public string package { get; set; }
+// ///
+// /// 签名方式
+// /// 签名类型,默认为RSA,仅支持RSA。
+// /// 示例值:RSA
+// ///
+// public string signType { get; set; }
+// ///
+// /// 签名
+// /// 使用字段appId、timeStamp、nonceStr、package计算得出的签名值
+// /// 签名生成调用Sign()方法
+// ///
+// public string paySign { get; set; }
+// /*自定义扩展参数*/
+// ///
+// /// 商户平台订单号
+// ///
+// public string orderCode { get; set; }
+// ///
+// /// 返回结果标识(0失败,1成功)
+// ///
+// public int code { get; set; }
+
+// }
+
+// ///
+// /// jsapi返回结果类
+// ///
+// private class JSAPIreturnParameters : ReturnParametersBase
+// {
+// ///
+// /// 预支付交易会话标识
+// /// 用于后续接口调用中使用,该值有效期为2小时
+// ///
+// public string prepay_id { get; set; }
+// }
+// #region 下单
+// ///
+// /// JSAPI下单请求参数类
+// /// 详情参见链接:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_1.shtml 请求参数
+// ///
+// private class JSAPIbodyModel : PayOrderbodyModelBase
+// {
+// ///
+// /// 支付者信息
+// ///
+// public object payer { get; set; }
+// }
+
+
+// #endregion
+// #endregion
+// #region JSAPI方法
+
+// ///
+// /// JSAPI调用的统一支付接口
+// /// 用户返回前端需要处理的数据内容
+// /// 详情参见:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_4.shtml
+// ///
+// /// 商品描述 必填
+// /// 商品金额,以“元”为单位 必填
+// /// 微信公众号用户openid 必填
+// /// 商户平台订单编号 必填
+// /// 其他参数更具业务需要自行添加
+// ///
+// public async Task