Files
coreshoppro/CoreCms.Net.Web.WebApi/appsettings.json
T

226 lines
10 KiB
JSON

{
"ConnectionStrings": {
"DbType": "SqlServer", //数据库将支持两种模式【SqlServer,MySql】
"SqlConnection": "Server=127.0.0.1;uid=CoreShopProfessional;pwd=CoreShopProfessional;Database=CoreShopProfessional;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;"
//SqlServer数据库连接字符串,需要开启数据库连接复用【MultipleActiveResultSets=true】
// 如果采用容器化部署Service 要写成mysql的服务名,否则写地址
//"SqlConnection": "Server=127.0.0.1;Port=3306;Database=CoreShopProfessional;Uid=CoreShopProfessional;Pwd=CoreShopProfessional;CharSet=utf8;pooling=true;SslMode=None;Allow User Variables=true;Convert Zero Datetime=True;Allow Zero Datetime=True;"
// Mysql数据库链接字符串,请保持后面的属性别少。经过测试,mysql版本需要5.7或以上
},
//定时任务管理面板的账户密码
"HangFire": {
"Login": "CoreShopProfessional",
"PassWord": "CoreShopProfessional"
},
"AppConfig": {
"AppUrl": "https://admin.test.pro.coreshop.cn/", //后端管理地址
"AppInterFaceUrl": "https://api.test.pro.coreshop.cn/", //接口请求地址
"AppVersion": "CoreShopProfessional v0.6.0"
},
//redis为必须启动项,请保持redis为正常可用
"RedisConfig": {
"UseCache": true, //启用redis作为内存选择
"UseTimedTask": true, //启用redis作为定时任务
// 如果采用容器化部署Service 要写成redis的服务名,否则写地址
"ConnectionString": "127.0.0.1:6379,password=coreshop,connectTimeout=30000,responseTimeout=30000,abortConnect=false,connectRetry=1,syncTimeout=10000,DefaultDatabase=9" //redis数据库连接字符串
},
//jwt授权认证的一些设置
"JwtConfig": {
"SecretKey": "8kh2luzmp0oq9wfbdeasygj647vr531n",
"Issuer": "CoreShopProfessional",
"Audience": "CoreCms"
},
//跨域设置
"Cors": {
"PolicyName": "CorsIpAccess", //策略名称
"EnableAllIPs": false, //是否应用所有的IP,如设置为true,则取消跨域限制
// 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的
// 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的
"IPs": "http://127.0.0.1:2364,http://localhost:2364"
},
//中间件
"Middleware": {
//记录请求和响应数据
"RequestResponseLog": {
"Enabled": false
},
//记录用户方访问数据
"RecordAccessLogs": {
"Enabled": false, //是否开启记录操作日志功能。
"EnabledFileMode": false, //是否开启记录到文件功能。(影响效率,接口不建议开启)
"EnabledDbMode": false, //是否开启记录到数据库模式。(影响效率,后台可开启,接口不建议开启,因为数据库会存储大量的用于请求数据和返回数据。)
"IgnoreApis": "/api/tools/getuserinfo,/api/tools/getNavs,/api/CodeGenerator/CodeGenDown" //使用小写逗号分隔
},
//记录IP请求数据
"IPLog": {
"Enabled": false
},
//开启Ip限流
"IpRateLimit": {
"Enabled": false
}
},
//ip限流规则设置
"IpRateLimiting": {
//如果EnableEndpointRateLimiting设置为false,则限制将在全局范围内应用,并且仅适用于端点的规则*。例如,如果您设置每秒 5 次调用的限制,则对任何端点的任何 HTTP 调用都将计入该限制。
//如果EnableEndpointRateLimiting设置为true,则限制将适用于每个端点,如{HTTP_Verb}{PATH}。例如,如果您为*:/api/values客户端设置每秒调用 5 次的限制,则每秒可以调用GET /api/values5 次,但也可以调用 5 次PUT /api/values。
"EnableEndpointRateLimiting": false,
//如果StackBlockedRequests设置为false,则拒绝的呼叫不会添加到节流计数器。如果客户端每秒发出 3 个请求,并且您设置了每秒一个呼叫的限制,则其他限制(例如每分钟或每天计数器)将仅记录第一个呼叫,即未被阻止的呼叫。如果您希望被拒绝的请求计入其他限制,您必须设置StackBlockedRequests为true.
"StackBlockedRequests": false,
//用于在您的RealIpHeaderKestrel 服务器位于反向代理之后时提取客户端 IP,如果您的代理使用不同的标头,则X-Real-IP使用此选项进行设置。
"RealIpHeader": "X-Real-IP",
//ClientIdHeader用于提取白名单的客户端 ID 。如果此标头中存在客户端 ID 并且与 ClientWhitelist 中指定的值匹配,则不应用速率限制。
"ClientIdHeader": "X-ClientId",
//IP白名单:支持Ip v4和v6;如 //"IpWhitelist": [ "127.0.0.1", "::1/10", "192.168.0.0/24" ],
"IpWhitelist": [],
//端点白名单
"EndpointWhitelist": [ "get:/api/license", "*:/api/status" ],
//客户端白名单
"ClientWhitelist": [ "dev-client-1", "dev-client-2" ],
"QuotaExceededResponse": {
"Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}",
"ContentType": "application/json",
"StatusCode": 429
},
//返回状态码
"HttpStatusCode": 429,
//通用规则
//api规则,结尾一定要带*
"GeneralRules": [
//{
// //端点路径
// "Endpoint": "*:/api/*",
// //时间段,格式:{数字}{单位};可使用单位:s, m, h, d
// "Period": "1m",
// //限制数量
// "Limit": 60
//},
//1秒钟只能调用3次
{
"Endpoint": "*",
"Period": "1s",
"Limit": 30
},
//1分钟只能调用300次
{
"Endpoint": "*",
"Period": "1m",
"Limit": 1000
},
//12H只能调用10000
{
"Endpoint": "*",
"Period": "12h",
"Limit": 100000
},
//7天只能调用100000次
{
"Endpoint": "*",
"Period": "7d",
"Limit": 1000000
}
]
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
// 微信支付
// 更多配置,请查看WeChatPayOptions类
"WeChatPay": {
// 应用号
// 如:微信公众平台AppId、微信开放平台AppId、微信小程序AppId、企业微信CorpId等
"AppId": "",
// 商户号
// 为微信支付商户平台的商户号
"MchId": "",
// API密钥
// 为微信支付商户平台的API密钥,请注意不是APIv3密钥
"APIKey": "",
// APIv3密钥
// 为微信支付商户平台的APIv3密钥,请注意不是API密钥,v3接口必填
"APIv3Key": "",
// API证书(.p12)
// 为微信支付商户平台的API证书(.p12),v3接口必填
// 可为证书文件(.p12)路径 / 证书文件(.p12)的base64字符串
//以下格式为windows服务器下路径格式,linux下格式为 WxPayCert/apiclient_cert.p12
"Certificate": "WxPayCert\\apiclient_cert.p12",
// RSA公钥
// 目前仅调用"企业付款到银行卡API"时使用,执行本示例中的"获取RSA加密公钥API"即可获取。
"RsaPublicKey": "",
// 子商户应用号(目前仅调用服务商API时使用,子商户的公众号、移动应用AppId。)
"SubAppId": "",
// 子商户号(目前仅调用服务商API时使用,子商户的商户号。)
"SubMchId": ""
},
// 支付宝(暂未开通)
// 更多配置,请查看AlipayOptions类
"Alipay": {
// 注意:
// 若涉及资金类支出接口(如转账、红包等)接入,必须使用“公钥证书”方式。不涉及到资金类接口,也可以使用“普通公钥”方式进行加签。
// 本示例默认的加签方式为“公钥证书”方式,并调用 CertificateExecuteAsync 方法 执行API。
// 若使用“普通公钥”方式,除了遵守下方注释的规则外,调用 CertificateExecuteAsync 也需改成 ExecuteAsync。
// 支付宝后台密钥/证书官方配置教程:https://opendocs.alipay.com/open/291/105971
// 密钥格式:请选择 PKCS1(非JAVA适用),切记 切记 切记
// 应用Id
// 为支付宝开放平台-APPID
"AppId": "",
// 支付宝公钥 RSA公钥
// 为支付宝开放平台-支付宝公钥
// “公钥证书”方式时,留空
// “普通公钥”方式时,必填
"AlipayPublicKey": "",
// 应用私钥 RSA私钥
// 为“支付宝开放平台开发助手”所生成的应用私钥
"AppPrivateKey": "",
// 服务网关地址
// 默认为正式环境地址
"ServerUrl": "https://openapi.alipay.com/gateway.do",
// 签名类型
// 支持:RSA2(SHA256WithRSA)、RSA1(SHA1WithRSA)
// 默认为RSA2
"SignType": "RSA2",
// 应用公钥证书
// 可为证书文件路径 / 证书文件的base64字符串
// “公钥证书”方式时,必填
// “普通公钥”方式时,留空
"AppPublicCert": "",
// 支付宝公钥证书
// 可为证书文件路径 / 证书文件的base64字符串
// “公钥证书”方式时,必填
// “普通公钥”方式时,留空
"AlipayPublicCert": "",
// 支付宝根证书
// 可为证书文件路径 / 证书文件的base64字符串
// “公钥证书”方式时,必填
// “普通公钥”方式时,留空
"AlipayRootCert": ""
},
"PayCallBack": {
//微信支付回调
"WeChatPayUrl": "https://api.test.pro.coreshop.cn/Notify/WeChatPay/Unifiedorder",
//微信退款回调
"WeChatRefundUrl": "https://api.test.pro.coreshop.cn/Notify/WeChatPay/Refund",
//支付宝支付回调
"AlipayUrl": "https://api.test.pro.coreshop.cn/Notify/AliPay/Unifiedorder",
//支付宝退款回调
"AlipayRefundUrl": ""
},
"WeChatOptions": {
//公众号
"WeiXinAppId": "",
"WeiXinAppSecret": "",
"EncodingAESKey": "",
"Token": "",
//小程序
"WxOpenAppId": "",
"WxOpenAppSecret": "",
"WxOpenToken": "",
"WxOpenEncodingAESKey": ""
}
}