实例介绍
【实例简介】
WeixinSDK框架是一个专门为微信公众号、微信服务号以及微信小程序开发而设计的C#工具包。它旨在提供一个全面的微信开发SDK,帮助开发者更高效地与微信平台进行交互。
该框架包括了多个组件,如Wlitsoft.Framework.Common(公共类库)、Wlitsoft.Framework.Common.Serializer.JsonNet(基于Json.Net的序列化实现)、Wlitsoft.Framework.Common.Logger.Log4Net(基于log4net的日志记录者)以及Wlitsoft.Framework.Caching.Redis(分布式缓存Redis实现)。这些组件共同构建了一个健壮的微信开发环境。
WeixinSDK框架提供的API覆盖了微信开发的多个方面,包括微信令牌和js令牌获取、微信模板消息发送、OAuth2授权相关接口以及用户管理相关接口等。此外,它还提供了TokenServiceBase令牌服务基类,以及针对不同应用场景的令牌服务实现,如GeneralTokenService和DistributedTokenService,满足单机单站点应用和多机多站点场景的需求。
微信消息处理是WeixinSDK框架的另一大特色,它开发了一个简单的消息处理框架,允许开发者通过编写实现类的方式来处理微信的事件消息、文本消息、语音消息等。这大大简化了微信消息处理的复杂度,使得开发者可以更加专注于业务逻辑的实现。
【实例截图】
【核心代码】
文件清单
└── WeixinSDK-80732a7f7ac08f5fe0de3109c551bbdd15ef589d
├── appveyor.yml
├── Globals
│ ├── AuthorInfo.cs
│ └── Wlitsoft.Framework.snk
├── LICENSE
├── README.md
├── src
│ ├── NuGet
│ │ ├── WeixinSDK
│ │ │ └── WeixinSDK.nuspec
│ │ ├── WeixinSDK.Config
│ │ │ └── WeixinSDK.Config.nuspec
│ │ └── WeixinSDK.TokenService.Distributed
│ │ └── WeixinSDK.TokenService.Distributed.nuspec
│ ├── WeixinSDK
│ │ ├── Api
│ │ │ ├── BaseApi.cs
│ │ │ ├── MchPayApi.cs
│ │ │ ├── OAuth2Api.cs
│ │ │ ├── PayApi.cs
│ │ │ ├── TemplateMessageApi.cs
│ │ │ └── UserManagementApi.cs
│ │ ├── Configuration
│ │ │ ├── DevConfiguration.cs
│ │ │ ├── EventMessageConfiguration.cs
│ │ │ ├── MessageConfigurationBase.cs
│ │ │ ├── MessageConfiguration.cs
│ │ │ ├── MessageProcessConfiguration.cs
│ │ │ └── PayConfiguration.cs
│ │ ├── Core
│ │ │ ├── IRequestMessage.cs
│ │ │ ├── IRequestMessageEventKey.cs
│ │ │ ├── IResponseMessage.cs
│ │ │ ├── ITokenService.cs
│ │ │ ├── IWeixinMessageProcess.cs
│ │ │ ├── RequestMsgEventType.cs
│ │ │ ├── RequestMsgType.cs
│ │ │ ├── ResponseMsgType.cs
│ │ │ └── WeixinMessageProcessBase.cs
│ │ ├── Extension
│ │ │ ├── AppBuilderExtension.cs
│ │ │ ├── HttpReqeustClientEx.cs
│ │ │ ├── ParamsSignerEx.cs
│ │ │ └── StringExtension.cs
│ │ ├── Globals
│ │ │ ├── VersionInfo.cs
│ │ │ └── Wlitsoft.Framework.snk
│ │ ├── Message
│ │ │ ├── Process
│ │ │ │ ├── HttpRequestParams.cs
│ │ │ │ ├── RequestMessageProcess.cs
│ │ │ │ ├── ResponseMessageProcess.cs
│ │ │ │ ├── WeixinMessageContext.cs
│ │ │ │ └── WeixinMessageHandler.cs
│ │ │ ├── Request
│ │ │ │ ├── Event
│ │ │ │ │ ├── RequestAnnualRenewEventMessage.cs
│ │ │ │ │ ├── RequestClickEventMessage.cs
│ │ │ │ │ ├── RequestEventMessageBase.cs
│ │ │ │ │ ├── RequestLocationEventMessage.cs
│ │ │ │ │ ├── RequestLocationSelectEventMessage.cs
│ │ │ │ │ ├── RequestMassSendJobFinishEventMessage.cs
│ │ │ │ │ ├── RequestNamingVerifyFailEventMessage.cs
│ │ │ │ │ ├── RequestNamingVerifySuccessEventMessage.cs
│ │ │ │ │ ├── RequestPicPhotoOrAlbumEventMessage.cs
│ │ │ │ │ ├── RequestPicSysPhotoEventMessage.cs
│ │ │ │ │ ├── RequestPicWeixinEventMessage.cs
│ │ │ │ │ ├── RequestQualificationVerifyFailEventMessage.cs
│ │ │ │ │ ├── RequestQualificationVerifySuccessEventMessage.cs
│ │ │ │ │ ├── RequestScanCodePushEventMessage.cs
│ │ │ │ │ ├── RequestScanCodeWaitMsgEventMessage.cs
│ │ │ │ │ ├── RequestScanEventMessage.cs
│ │ │ │ │ ├── RequestSubscribeEventMessage.cs
│ │ │ │ │ ├── RequestTemplateSendJobFinishEventMessage.cs
│ │ │ │ │ ├── RequestUnSubscribeEventMessage.cs
│ │ │ │ │ ├── RequestVerifyExpiredEventMessage.cs
│ │ │ │ │ └── RequestViewEventMessage.cs
│ │ │ │ ├── RequestImageMessage.cs
│ │ │ │ ├── RequestLinkMessage.cs
│ │ │ │ ├── RequestLocationMessage.cs
│ │ │ │ ├── RequestMessageBase.cs
│ │ │ │ ├── RequestShortVideoMessage.cs
│ │ │ │ ├── RequestTextMessage.cs
│ │ │ │ ├── RequestVideoMessage.cs
│ │ │ │ └── RequestVoiceMessage.cs
│ │ │ ├── Response
│ │ │ │ ├── ResponseImageMessage.cs
│ │ │ │ ├── ResponseMessageBase.cs
│ │ │ │ ├── ResponseNewsMessage.cs
│ │ │ │ ├── ResponsePayResultNotifyMessage.cs
│ │ │ │ └── ResponseTextMessage.cs
│ │ │ └── Security
│ │ │ ├── CheckSignature.cs
│ │ │ └── Crypto
│ │ │ ├── Cryptography.cs
│ │ │ ├── DictionarySort.cs
│ │ │ ├── WeixinMsgCrypto.cs
│ │ │ └── WeixinMsgCryptoErrorCode.cs
│ │ ├── Model
│ │ │ ├── BaseApiModel
│ │ │ │ ├── GetAccessTokenResultModel.cs
│ │ │ │ └── GetTickectResultModel.cs
│ │ │ ├── OAuth2ApiModel
│ │ │ │ ├── GetOAuthUserInfoResultModel.cs
│ │ │ │ ├── OAuthAccessTokenResultModel.cs
│ │ │ │ └── OAuthScope.cs
│ │ │ ├── PayModel
│ │ │ │ ├── CheckNameMode.cs
│ │ │ │ ├── CloseOrderResultModel.cs
│ │ │ │ ├── OrderQueryResultModel.cs
│ │ │ │ ├── PaymentResultModel.cs
│ │ │ │ ├── PayResultModelBase.cs
│ │ │ │ ├── PayResultNotifyResultModel.cs
│ │ │ │ ├── QueryPaymentResultModel.cs
│ │ │ │ ├── RefundQueryResultModel.cs
│ │ │ │ ├── RefundResultModel.cs
│ │ │ │ ├── TradeType.cs
│ │ │ │ ├── UnifiedOrderResultModel.cs
│ │ │ │ └── WxChooseWXPayModel.cs
│ │ │ ├── ResultModelBase.cs
│ │ │ ├── TemplateMessageApiModel
│ │ │ │ ├── SendTemplateMessageResultModel.cs
│ │ │ │ ├── TemplateMessageParameterDataModel.cs
│ │ │ │ └── TemplateMessageParameterDictionary.cs
│ │ │ └── UserManagementApiModel
│ │ │ ├── GetUserInfoResultModel.cs
│ │ │ └── GetUserInfosResultModel.cs
│ │ ├── packages.config
│ │ ├── Pay
│ │ │ ├── H5Pay.cs
│ │ │ └── MPPay.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── TokenService
│ │ │ ├── DebugTokenService.cs
│ │ │ ├── GeneralTokenService.cs
│ │ │ └── TokenServiceBase.cs
│ │ ├── WeixinApp.cs
│ │ └── WeixinSDK.csproj
│ ├── WeixinSDK.Config
│ │ ├── Builder
│ │ │ ├── DevConfigurationBuilder.cs
│ │ │ └── MessageProcessConfigurationBuilder.cs
│ │ ├── Extension
│ │ │ └── AppBuilderExtension.cs
│ │ ├── Globals
│ │ │ ├── VersionInfo.cs
│ │ │ └── Wlitsoft.Framework.snk
│ │ ├── Model
│ │ │ ├── EventMessageModel.cs
│ │ │ ├── MessageModelBase.cs
│ │ │ ├── MessageModel.cs
│ │ │ └── MessageProcessModel.cs
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── WeixinSDK.Config.csproj
│ └── WeixinSDK.TokenService.Distributed
│ ├── AppBuilderExtension.cs
│ ├── DistributedTokenService.cs
│ ├── Globals
│ │ ├── VersionInfo.cs
│ │ └── Wlitsoft.Framework.snk
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── WeixinSDK.TokenService.Distributed.csproj
├── test
│ ├── WeixinSDK.Config.Test
│ │ ├── Builder
│ │ │ ├── DevConfigurationBuilderTest.cs
│ │ │ └── MessageProcessConfigurationBuilderTest.cs
│ │ ├── Conf
│ │ │ └── MessageProcessConfig.json
│ │ ├── Fake
│ │ │ ├── EventMessageProcessDemo01.cs
│ │ │ └── MessageProcessDemo01.cs
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── WeixinSDK.Config.Test.csproj
│ └── WeixinSDK.Test
│ ├── Api
│ │ ├── BaseApiTest.cs
│ │ ├── TemplateMessageApiTest.cs
│ │ └── UserManagementApiTest.cs
│ ├── App.config
│ ├── Conf
│ │ ├── log4net.conf
│ │ └── WeixinSDKDev.json
│ ├── Extension
│ │ └── ParamsSignerExTest.cs
│ ├── Fake
│ │ ├── RequestSubscribeEventMessageKey_001ProcessFake.cs
│ │ └── RequestTextMessageProcessFake.cs
│ ├── Globals
│ │ └── Wlitsoft.Framework.snk
│ ├── Message
│ │ └── Process
│ │ ├── RequestMessageProcessTest.cs
│ │ └── WeixinMessageHandlerTest.cs
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── TestBase.cs
│ ├── TokenService
│ │ ├── DebugTokenServiceTest.cs
│ │ └── GeneralTokenServiceTest.cs
│ └── WeixinSDK.Test.csproj
└── Wlitsoft.Framework.WeixinSDK.sln
54 directories, 157 files
WeixinSDK框架是一个专门为微信公众号、微信服务号以及微信小程序开发而设计的C#工具包。它旨在提供一个全面的微信开发SDK,帮助开发者更高效地与微信平台进行交互。
该框架包括了多个组件,如Wlitsoft.Framework.Common(公共类库)、Wlitsoft.Framework.Common.Serializer.JsonNet(基于Json.Net的序列化实现)、Wlitsoft.Framework.Common.Logger.Log4Net(基于log4net的日志记录者)以及Wlitsoft.Framework.Caching.Redis(分布式缓存Redis实现)。这些组件共同构建了一个健壮的微信开发环境。
WeixinSDK框架提供的API覆盖了微信开发的多个方面,包括微信令牌和js令牌获取、微信模板消息发送、OAuth2授权相关接口以及用户管理相关接口等。此外,它还提供了TokenServiceBase令牌服务基类,以及针对不同应用场景的令牌服务实现,如GeneralTokenService和DistributedTokenService,满足单机单站点应用和多机多站点场景的需求。
微信消息处理是WeixinSDK框架的另一大特色,它开发了一个简单的消息处理框架,允许开发者通过编写实现类的方式来处理微信的事件消息、文本消息、语音消息等。这大大简化了微信消息处理的复杂度,使得开发者可以更加专注于业务逻辑的实现。
【实例截图】
【核心代码】
文件清单
└── WeixinSDK-80732a7f7ac08f5fe0de3109c551bbdd15ef589d
├── appveyor.yml
├── Globals
│ ├── AuthorInfo.cs
│ └── Wlitsoft.Framework.snk
├── LICENSE
├── README.md
├── src
│ ├── NuGet
│ │ ├── WeixinSDK
│ │ │ └── WeixinSDK.nuspec
│ │ ├── WeixinSDK.Config
│ │ │ └── WeixinSDK.Config.nuspec
│ │ └── WeixinSDK.TokenService.Distributed
│ │ └── WeixinSDK.TokenService.Distributed.nuspec
│ ├── WeixinSDK
│ │ ├── Api
│ │ │ ├── BaseApi.cs
│ │ │ ├── MchPayApi.cs
│ │ │ ├── OAuth2Api.cs
│ │ │ ├── PayApi.cs
│ │ │ ├── TemplateMessageApi.cs
│ │ │ └── UserManagementApi.cs
│ │ ├── Configuration
│ │ │ ├── DevConfiguration.cs
│ │ │ ├── EventMessageConfiguration.cs
│ │ │ ├── MessageConfigurationBase.cs
│ │ │ ├── MessageConfiguration.cs
│ │ │ ├── MessageProcessConfiguration.cs
│ │ │ └── PayConfiguration.cs
│ │ ├── Core
│ │ │ ├── IRequestMessage.cs
│ │ │ ├── IRequestMessageEventKey.cs
│ │ │ ├── IResponseMessage.cs
│ │ │ ├── ITokenService.cs
│ │ │ ├── IWeixinMessageProcess.cs
│ │ │ ├── RequestMsgEventType.cs
│ │ │ ├── RequestMsgType.cs
│ │ │ ├── ResponseMsgType.cs
│ │ │ └── WeixinMessageProcessBase.cs
│ │ ├── Extension
│ │ │ ├── AppBuilderExtension.cs
│ │ │ ├── HttpReqeustClientEx.cs
│ │ │ ├── ParamsSignerEx.cs
│ │ │ └── StringExtension.cs
│ │ ├── Globals
│ │ │ ├── VersionInfo.cs
│ │ │ └── Wlitsoft.Framework.snk
│ │ ├── Message
│ │ │ ├── Process
│ │ │ │ ├── HttpRequestParams.cs
│ │ │ │ ├── RequestMessageProcess.cs
│ │ │ │ ├── ResponseMessageProcess.cs
│ │ │ │ ├── WeixinMessageContext.cs
│ │ │ │ └── WeixinMessageHandler.cs
│ │ │ ├── Request
│ │ │ │ ├── Event
│ │ │ │ │ ├── RequestAnnualRenewEventMessage.cs
│ │ │ │ │ ├── RequestClickEventMessage.cs
│ │ │ │ │ ├── RequestEventMessageBase.cs
│ │ │ │ │ ├── RequestLocationEventMessage.cs
│ │ │ │ │ ├── RequestLocationSelectEventMessage.cs
│ │ │ │ │ ├── RequestMassSendJobFinishEventMessage.cs
│ │ │ │ │ ├── RequestNamingVerifyFailEventMessage.cs
│ │ │ │ │ ├── RequestNamingVerifySuccessEventMessage.cs
│ │ │ │ │ ├── RequestPicPhotoOrAlbumEventMessage.cs
│ │ │ │ │ ├── RequestPicSysPhotoEventMessage.cs
│ │ │ │ │ ├── RequestPicWeixinEventMessage.cs
│ │ │ │ │ ├── RequestQualificationVerifyFailEventMessage.cs
│ │ │ │ │ ├── RequestQualificationVerifySuccessEventMessage.cs
│ │ │ │ │ ├── RequestScanCodePushEventMessage.cs
│ │ │ │ │ ├── RequestScanCodeWaitMsgEventMessage.cs
│ │ │ │ │ ├── RequestScanEventMessage.cs
│ │ │ │ │ ├── RequestSubscribeEventMessage.cs
│ │ │ │ │ ├── RequestTemplateSendJobFinishEventMessage.cs
│ │ │ │ │ ├── RequestUnSubscribeEventMessage.cs
│ │ │ │ │ ├── RequestVerifyExpiredEventMessage.cs
│ │ │ │ │ └── RequestViewEventMessage.cs
│ │ │ │ ├── RequestImageMessage.cs
│ │ │ │ ├── RequestLinkMessage.cs
│ │ │ │ ├── RequestLocationMessage.cs
│ │ │ │ ├── RequestMessageBase.cs
│ │ │ │ ├── RequestShortVideoMessage.cs
│ │ │ │ ├── RequestTextMessage.cs
│ │ │ │ ├── RequestVideoMessage.cs
│ │ │ │ └── RequestVoiceMessage.cs
│ │ │ ├── Response
│ │ │ │ ├── ResponseImageMessage.cs
│ │ │ │ ├── ResponseMessageBase.cs
│ │ │ │ ├── ResponseNewsMessage.cs
│ │ │ │ ├── ResponsePayResultNotifyMessage.cs
│ │ │ │ └── ResponseTextMessage.cs
│ │ │ └── Security
│ │ │ ├── CheckSignature.cs
│ │ │ └── Crypto
│ │ │ ├── Cryptography.cs
│ │ │ ├── DictionarySort.cs
│ │ │ ├── WeixinMsgCrypto.cs
│ │ │ └── WeixinMsgCryptoErrorCode.cs
│ │ ├── Model
│ │ │ ├── BaseApiModel
│ │ │ │ ├── GetAccessTokenResultModel.cs
│ │ │ │ └── GetTickectResultModel.cs
│ │ │ ├── OAuth2ApiModel
│ │ │ │ ├── GetOAuthUserInfoResultModel.cs
│ │ │ │ ├── OAuthAccessTokenResultModel.cs
│ │ │ │ └── OAuthScope.cs
│ │ │ ├── PayModel
│ │ │ │ ├── CheckNameMode.cs
│ │ │ │ ├── CloseOrderResultModel.cs
│ │ │ │ ├── OrderQueryResultModel.cs
│ │ │ │ ├── PaymentResultModel.cs
│ │ │ │ ├── PayResultModelBase.cs
│ │ │ │ ├── PayResultNotifyResultModel.cs
│ │ │ │ ├── QueryPaymentResultModel.cs
│ │ │ │ ├── RefundQueryResultModel.cs
│ │ │ │ ├── RefundResultModel.cs
│ │ │ │ ├── TradeType.cs
│ │ │ │ ├── UnifiedOrderResultModel.cs
│ │ │ │ └── WxChooseWXPayModel.cs
│ │ │ ├── ResultModelBase.cs
│ │ │ ├── TemplateMessageApiModel
│ │ │ │ ├── SendTemplateMessageResultModel.cs
│ │ │ │ ├── TemplateMessageParameterDataModel.cs
│ │ │ │ └── TemplateMessageParameterDictionary.cs
│ │ │ └── UserManagementApiModel
│ │ │ ├── GetUserInfoResultModel.cs
│ │ │ └── GetUserInfosResultModel.cs
│ │ ├── packages.config
│ │ ├── Pay
│ │ │ ├── H5Pay.cs
│ │ │ └── MPPay.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── TokenService
│ │ │ ├── DebugTokenService.cs
│ │ │ ├── GeneralTokenService.cs
│ │ │ └── TokenServiceBase.cs
│ │ ├── WeixinApp.cs
│ │ └── WeixinSDK.csproj
│ ├── WeixinSDK.Config
│ │ ├── Builder
│ │ │ ├── DevConfigurationBuilder.cs
│ │ │ └── MessageProcessConfigurationBuilder.cs
│ │ ├── Extension
│ │ │ └── AppBuilderExtension.cs
│ │ ├── Globals
│ │ │ ├── VersionInfo.cs
│ │ │ └── Wlitsoft.Framework.snk
│ │ ├── Model
│ │ │ ├── EventMessageModel.cs
│ │ │ ├── MessageModelBase.cs
│ │ │ ├── MessageModel.cs
│ │ │ └── MessageProcessModel.cs
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── WeixinSDK.Config.csproj
│ └── WeixinSDK.TokenService.Distributed
│ ├── AppBuilderExtension.cs
│ ├── DistributedTokenService.cs
│ ├── Globals
│ │ ├── VersionInfo.cs
│ │ └── Wlitsoft.Framework.snk
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── WeixinSDK.TokenService.Distributed.csproj
├── test
│ ├── WeixinSDK.Config.Test
│ │ ├── Builder
│ │ │ ├── DevConfigurationBuilderTest.cs
│ │ │ └── MessageProcessConfigurationBuilderTest.cs
│ │ ├── Conf
│ │ │ └── MessageProcessConfig.json
│ │ ├── Fake
│ │ │ ├── EventMessageProcessDemo01.cs
│ │ │ └── MessageProcessDemo01.cs
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── WeixinSDK.Config.Test.csproj
│ └── WeixinSDK.Test
│ ├── Api
│ │ ├── BaseApiTest.cs
│ │ ├── TemplateMessageApiTest.cs
│ │ └── UserManagementApiTest.cs
│ ├── App.config
│ ├── Conf
│ │ ├── log4net.conf
│ │ └── WeixinSDKDev.json
│ ├── Extension
│ │ └── ParamsSignerExTest.cs
│ ├── Fake
│ │ ├── RequestSubscribeEventMessageKey_001ProcessFake.cs
│ │ └── RequestTextMessageProcessFake.cs
│ ├── Globals
│ │ └── Wlitsoft.Framework.snk
│ ├── Message
│ │ └── Process
│ │ ├── RequestMessageProcessTest.cs
│ │ └── WeixinMessageHandlerTest.cs
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── TestBase.cs
│ ├── TokenService
│ │ ├── DebugTokenServiceTest.cs
│ │ └── GeneralTokenServiceTest.cs
│ └── WeixinSDK.Test.csproj
└── Wlitsoft.Framework.WeixinSDK.sln
54 directories, 157 files
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论