felicalib 改 (felicalib Remodeled) is a FeliCa access wrapper library for .NET, forked from tmurakam/felicalib.
felicalib 改は、NuGet Gallery に登録されています。
felicalib 改を利用するには、次の方法で NuGet パッケージをインストールします。
方法 1. Visual Studio の [パッケージ マネージャー コンソール] で、次のコマンドを実行します。
Install-Package FelicaLib.DotNet
方法 2. Visual Studio でプロジェクトを右クリックして、[Nuget パッケージの管理] で「felicalib Remodeled」を検索してインストールします。「felica」と入力すれば見つかります。
まず、FelicaLib 名前空間の using ディレクティブを追加します。
using FelicaLib;
Edy の残高を取得するなどの一部の特定の用途に対しては、FelicaHelper クラスにヘルパー メソッドが用意されています。
// Edy の残高
int balance = FelicaHelper.GetEdyBalance();
// Edy の利用履歴
foreach (var item in FelicaHelper.GetEdyHistory())
{
Console.WriteLine("{0} 利用額: {1}, 残高: {2}", item.DateTime, item.Amount, item.Balance);
}
一般には、システム コード、サービス コードおよびアドレスを指定して、非暗号化領域のデータを取得します。 一部のシステム コードおよびサービス コードは、FelicaHelper.cs で定数として定義されています。
// Edy の残高
byte[] data = FelicaUtility.ReadWithoutEncryption(FelicaSystemCode.Edy, FelicaServiceCode.EdyBalance, 0);
int balance = new EdyBalanceItem(data).Balance;
// Edy ID
string edyId = FelicaUtility.ReadWithoutEncryption(FelicaSystemCode.Edy, 0x110B, 0)
.Skip(2)
.Take(8)
.ToArray()
.ToHexString();
// Suica の利用履歴
foreach (var data in FelicaUtility.ReadBlocksWithoutEncryption(FelicaSystemCode.Suica, FelicaServiceCode.SuicaHistory, 0, 20))
{
var item = new SuicaHistoryItem(data);
Console.WriteLine("{0:yyyy/MM/dd} 残高: {1}", item.DateTime, item.Balance);
}