ライセンス API
アプリが代わりに呼び出してくれるライセンス検証 API — リファレンス
この API はアプリ起動時に SDK が自動で呼び出します。自分で呼ぶことはほとんどなく、「内部で何が起きているか」を知りたいときに参照するページです。
エンドポイント
Base URL: https://api.actuallyworks.net
POST /api/license/verify
アプリ起動時にライセンスを検証します。(SDK が自動で呼び出し — 自分で呼ぶ必要はありません)
リクエスト
{
"licenseKey": "string",
"packageName": "com.yourcompany.app",
"appSignatureHash": "SHA-256-hash",
"deviceId": "unique-device-id"
}レスポンス(成功)
{
"isValid": true,
"tier": "standard",
"licenseType": "production",
"expiresAt": "2027-01-01T00:00:00Z",
"features": ["qr_scan", "push_notifications", "camera_gallery", "gps_location", "biometric"]
}tier = 現在のプラン
tier は現在のプランです — "basic"・"standard"・"pro" のいずれか。ドキュメント各所でいう「プラン」がこの値です。
レスポンス(失敗)
{
"isValid": false,
"errorCode": "LICENSE_EXPIRED",
"message": "License has expired"
}features フィールドの読み方
features は、このライセンスで開放されている機能の一覧をサーバー側の識別子で並べたものです(qr_scan、push_notifications のように少し長い名前)。
サーバーの名前と、アプリ内で使う名前は別です
この features はサーバーが参考用に返す値です。アプリ内(JavaScript)で機能が有効かを判定するときに、この一覧を直接パースしないでください。 代わりに次を使うほうが簡単です:
unveilyBridge.app.getInfo()→tierの値で現在のプランを確認unveilyBridge.modules.isEnabled("...")→ モジュール(例:sideDrawer、bottomTabs)が有効かを確認unveilyBridge.modules.getEnabledModules()→ 有効なモジュールの一覧
つまり、サーバーの features は「この契約に何が含まれるか」を表し、画面上で実際に有効かどうかの判定は上のブリッジ呼び出しに任せればよい、ということです。
エラーコード
| コード | 意味 |
|---|---|
LICENSE_NOT_FOUND | ライセンスキーが見つかりません |
LICENSE_EXPIRED | ライセンス期間が切れました |
LICENSE_INACTIVE | まだ有効化されていません |
PACKAGE_MISMATCH | パッケージ名が登録値と異なります |
SIGNATURE_MISMATCH | アプリ署名ハッシュが登録値と異なります |
INVALID_SIGNATURE | HMAC 署名の検証に失敗しました |
各コードの対処法は エラーコード のページにまとめています。