現在のプロジェクトは主にソーシャル ネットワーキング サイトのインターフェイスのカプセル化を目的としています。プロジェクトの初期段階では、主にインターフェイスの機能レベルに応じて分類された WeChat プラットフォーム SDK の開発に焦点を当てています。
このプロジェクトは、標準ライブラリの形式でサービスを提供します。つまり、.Net Framework (4.6 以降) と .Net Core の両方をサポートできます。
ご質問がある場合は、公式アカウント (osscore) で質問することもできます。
1.認可ドッキングモジュール(Oauth)
nuget でのインストール コマンド: Install-Package OSS.Clients.Oauth.WX
ユーザー認可(oauth2.0)、ユーザー認可の基本情報
2.セッションメッセージモジュール(msg)
nuget でのインストール コマンド: Install-Package OSS.Clients.Msg.Wechat
セッション管理、ユーザーセッション情報と対応する応答の受信
3.パブリックアカウント(プラットフォーム)の高度な機能
1.アクセストークン
nuget下安装命令:**Install-Package OSS.Clients.Platform.WX.AccessToken**
这里主要是获取AccessToken接口的封装
WXPlatTokenApi - 公众号的正常Token接口
WXAgentPlatTokenApi - 代理平台的Token的接口
2.基本情報部
nuget下安装命令:**Install-Package OSS.Clients.Platform.WX.Basic**
这里主要是基础信息相关接口
WXPlatUserApi - 微信公众号用户信息相关接口
WXPlatIpApi - 微信服务器信息接口
WXPlatKfApi - 微信客服接口
WXPlatMassApi - 微信群发消息相关接口
WXPlatMediaApi - 微信素材相关接口
WXPlatMenuApi - 微信菜单相关接口
WXPlatQrApi - 微信二维码相关接口
3.その他のインターフェース
nuget下安装命令:**Install-Package OSS.Clients.Platform.WX**
这里主要是公众号其他相关接口
WXPlatAssistApi - 微信jssdk辅助接口
WXPlatCardApi - 微信卡信息相关接口
WXPlatShakeApi - 微信摇一摇相关接口
WXPlatAppApi - 微信小程序相关接口
WXPlatStatApi - 微信统计相关接口
WXPlatStoreApi - 微信门店管理相关接口
4.エージェントプラットフォームインターフェース
nuget下安装命令:**Install-Package OSS.Clients.Platform.WX.Agent**
这里主要是公众号代理服务平台的相关接口
1. 基本的な認証呼び出し (sns フォルダーの下)
//声明配置信息
private static AppConfig m_Config = new AppConfig ( )
{
AppSource = "11" ,
AppId = "你的appId" ,
AppSecret = "你的secretkey"
} ;
// 接口api实例
private static WXOauthApi m_AuthApi = new WXOauthApi ( m_Config ) ;
// 获取微信授权地址
public ActionResult auth ( )
{
var res = m_AuthApi . GetAuthorizeUrl ( "http://www.social.com/wxoauth/callback" ,
AuthClientType . WXPlat ) ;
return Redirect ( res ) ;
}
// 微信回调页,此页面获取accesstoken 获取用户基础信息
public ActionResult callback ( string code , string state )
{
var tokecRes = m_AuthApi . GetAuthAccessToken ( code ) ;
if ( tokecRes . IsSuccess ( ) )
{
var userInfoRes = m_AuthApi . GetWXAuthUserInfo ( tokecRes . AccessToken , tokecRes . OpenId ) ;
return Content ( "你已成功获取用户信息!" ) ;
}
return Content ( "获取用户授权信息失败!" ) ;
}
2. セッション呼び出し (Msg フォルダーの下)
a. まず構成情報を宣言します。
// 声明配置
private static readonly WXChatServerConfig config = new WXChatServerConfig ( )
{
Token = "你的token" ,
EncodingAesKey = "你的加密key" ,
SecurityType = WXSecurityType . Safe , // 在微信段设置的安全模式
AppId = "你的appid" //
} ;
b. 処理ハンドルを定義します (独自のハンドラーを実装できます。WXChatHandler から継承するだけです)。
private static readonly WXChatHandler msgService = new WXChatHandler ( config ) ;
c. 電話をかけるときは、現在要求されているコンテンツをプログラムの入り口に渡すだけです。
using ( StreamReader reader = new StreamReader ( Request . InputStream ) )
{
requestXml = reader . ReadToEnd ( ) ;
}
try
{
var res = msgService . Process ( requestXml , signature , timestamp , nonce , echostr ) ;
if ( res . IsSuccess ( ) )
return Content ( res . data ) ;
}
catch ( Exception ex )
{
}
return Content ( "success" ) ;
このうち、WXChatHandler は、WXChatHandler の実装を継承し、関連するユーザー イベントを書き換えることで対応する結果を返す特定の処理クラスになります。
3. 高度な関数呼び出し (Platform フォルダーの下)
WeChat 公式アカウントのその他の高度な機能インターフェイスには、プッシュ モジュール情報などのグローバル アクセストークン インターフェイスが必要です。アクセストークンの自動取得は、SDK の基礎となるリクエスト処理にカプセル化されています。デフォルトでは、システムに保存されます。キャッシュし、有効期限が切れると自動的に更新されます。保存する必要がある場合は、oscommon のキャッシュ モジュールを介して挿入できます (例は後で示します)。 appidは1対1に対応しているため、複数の公式アカウント間で競合する心配はありません。
a. 構成情報を宣言します。
//声明配置信息
private static AppConfig m_Config = new AppConfig ( )
{
AppSource = "11" ,
AppId = "你的appId" ,
AppSecret = "你的secretkey"
} ;
b. インスタンスを宣言します。
private static readonly WXPlatMassApi m_OffcialApi = new WXPlatMassApi ( m_Config ) ;
c. 具体的な用途
m_OffcialApi . SendTemplateAsync ( "openid" , "templateId" , "url" , new { } )
現在、インターフェースフレームワークのこの部分のロジック部分は完成しています。ストアと機器管理のインターフェースは今後完成する予定です。 、自分で実装することも、貢献することもできます。新しいインターフェイスの追加には、数行のコードのみが必要です。詳細については、「コードの貢献」を参照してください。
ビジネスの実際の利用シーンを考慮して、WeChat公式アカウントのインターフェースをシンプルに分解し、AccessTokenなどを独立したSDKとして提供しています。 すべての独立した SDK は、OSS.Clients.Platform.WX.Base クラス ライブラリを参照し、このタイプのライブラリの下で WXPlatConfigProvider の統合された構成を提供します。これは主に、次のような他の SDK を使用するときにユーザーが AccessToken の統合取得を容易に達成できるようにするためです。 OSS.Clients.Platform.WX.AccessToken を使用して実装された AccessToken 統合キャッシュ管理プロジェクトは、OSS.Clients.Platform.WX.Basic を使用してプロジェクトの WXPlatConfigProvider の下に構成 AccessToken 取得メソッドを実装します。
このプロジェクトは現在、WeChat SDK の処理に主に焦点を当てています。WeChat の主要なフレームワークは完成しており、カプセル化されたフレームワークに基づいてインターフェイスを完成させるのは非常に簡単です。たとえば、これは単純に次の 2 つのパート ステップに分かれています。
1. オブジェクトエンティティを宣言する
// 获取用户基本信息请求实体
public class WXPlatUserInfoReq
{
public string openid { get ; set ; }
public string lang { get ; set ; }
}
// 响应实体,继承WXBaseResp
public class WXPlatUserInfoResp : WXBaseResp
{
public string openid { get ; set ; }
public string nickname { get ; set ; }
//... 字段省略
public List < int > tagid_list { get ; set ; }
}
WeChatドキュメントフィールドの説明、オープンソースの中国語アドレスを通じてエンティティGistアドレスを迅速に生成するjsページを作成しました
2.機能実装
public WXPlatUserInfoResp GetUserInfo ( WXPlatUserInfoReq userReq )
{
var req = new OssHttpRequest ( ) ;
req . HttpMethod = HttpMethod . Get ;
req . AddressUrl = string . Concat ( m_ApiUrl ,
$ "/cgi-bin/user/info?openid= { userReq . openid } &lang= { userReq . lang } " ) ;
// 请求地址中的AccessToken 底层会自动补充
return RestCommonOffcial < WXPlatUserInfoResp > ( req ) ;
}
3. 単体テストの追加 (オプション)
[ TestMethod ]
public void GetUserInfoTest ( )
{
var res = m_Api . GetUserInfo ( new WXPlatUserInfoReq ( )
{ openid = "o7gE1s6mygEKgopVWp7BBtEAqT-w" } ) ;
Assert . IsTrue ( res . IsSuccess ( ) ) ;
}
残りは git 経由で送信できます。
尽快完善
現在のプロジェクトは、以前に作成したオープン ソース プロジェクトである OSS.Common (グローバル エラー エンティティおよびモジュール インジェクション) と OSS.Http (http リクエスト) に依存しています。これらは比較的シンプルでコンパクトで、クラスがいくつかしかないため、膨満感を心配する必要はありません。