Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überblick
Der PlayReady Test Server unterstützt customData JSON-Syntax für die erweiterte Lizenzkonfiguration. Mit dieser Methode können Entwickler komplexe Lizenzparameter und Richtlinien im JSON-Format innerhalb des CustomData-Felds von Lizenzanforderungen angeben.
JSON-Struktur
Das Feld CustomData akzeptiert ein JSON-Objekt mit verschiedenen Konfigurationsparametern:
{
"version": "1.0",
"config": {
"licenseType": "persistent|non-persistent|rental|subscription",
"keyId": "GUID",
"contentKey": "base64-encoded-key",
"policies": {
"outputProtection": {
"digital": "required|optional|never",
"analog": "required|optional|never"
},
"playback": {
"allowOffline": true|false,
"expirationDate": "ISO-8601-datetime",
"gracePeriod": "duration-in-seconds"
}
}
}
}
Konfigurationsparameter
Lizenztyp
Gibt den Zu generierenden Lizenztyp an:
- persistent: Auf dem Gerät gespeicherte Lizenz, übersteht den Neustart der Anwendung
- nicht persistent: Temporäre Lizenz läuft ab, wenn die Anwendung geschlossen wird.
- Vermietung: Zeitlich begrenzte Lizenz mit spezifischem Ablauf
- Abonnement: Abonnementbasierte Lizenz mit regelmäßiger Überprüfung
Schlüsselverwaltung
Konfigurieren von Verschlüsselungsschlüsseln und Bezeichnern:
{
"keyId": "12345678-1234-1234-1234-123456789012",
"contentKey": "base64EncodedContentKey",
"keyRotation": {
"enabled": true,
"interval": "PT1H"
}
}
Ausgabeschutzrichtlinien
Anforderungen zum Steuern des Ausgabeschutzes:
{
"outputProtection": {
"digital": {
"hdcp": "required",
"cgmsa": "copy-never"
},
"analog": {
"macrovision": "required",
"cgmsa": "copy-once"
}
}
}
Beispielkonfigurationen
Basic Persistent License
{
"version": "1.0",
"config": {
"licenseType": "persistent",
"keyId": "12345678-1234-1234-1234-123456789012",
"policies": {
"playback": {
"allowOffline": true
}
}
}
}
Mietlizenz mit Zeitbeschränkungen
{
"version": "1.0",
"config": {
"licenseType": "rental",
"keyId": "87654321-4321-4321-4321-210987654321",
"policies": {
"playback": {
"expirationDate": "2024-12-31T23:59:59Z",
"gracePeriod": 3600
},
"outputProtection": {
"digital": "required",
"analog": "optional"
}
}
}
}
Abonnementlizenz mit Ausgabeschutz
{
"version": "1.0",
"config": {
"licenseType": "subscription",
"keyId": "11111111-2222-3333-4444-555555555555",
"policies": {
"playback": {
"allowOffline": false
},
"outputProtection": {
"digital": "required",
"analog": "required"
},
"subscription": {
"renewalUrl": "https://subscription.service.com/renew",
"validationInterval": "PT24H"
}
}
}
}
Verwendung in Lizenzanforderungen
HTTP POST-Anforderung
Fügen Sie die JSON-Konfiguration in das Feld CustomData ein:
POST /pr/svc/rightsmanager.asmx HTTP/1.1
Host: playready.directtaps.net
Content-Type: application/octet-stream
[License Request with CustomData containing JSON configuration]
Clientintegration
JavaScript-Beispiel
const customData = {
version: "1.0",
config: {
licenseType: "persistent",
keyId: keyId,
policies: {
playback: {
allowOffline: true
}
}
}
};
// Include in license request
const licenseRequest = {
customData: JSON.stringify(customData),
// ... other license request parameters
};
C#-Beispiel
var customData = new {
version = "1.0",
config = new {
licenseType = "persistent",
keyId = keyId,
policies = new {
playback = new {
allowOffline = true
}
}
}
};
string jsonCustomData = JsonConvert.SerializeObject(customData);
// Include in PlayReady license request
Erweiterte Funktionen
Bedingter Zugriff
Konfigurieren des bedingten Zugriffs basierend auf Geräte- oder Benutzerattributen:
{
"conditionalAccess": {
"deviceRestrictions": {
"allowedDeviceTypes": ["mobile", "desktop"],
"blockedDevices": ["emulator", "debugger"]
},
"geoRestrictions": {
"allowedCountries": ["US", "CA", "GB"],
"blockedRegions": ["region1", "region2"]
}
}
}
Unterstützung mit mehreren Schlüsseln
Unterstützung für mehrere Verschlüsselungsschlüssel:
{
"keys": [
{
"keyId": "key-1-guid",
"contentKey": "base64-key-1",
"keyType": "content"
},
{
"keyId": "key-2-guid",
"contentKey": "base64-key-2",
"keyType": "track"
}
]
}
Fehlerbehandlung
JSON-Überprüfungsfehler
- Falsch formatierter JSON-Code: HTTP 400 mit JSON-Analysefehlerdetails
- Fehlende Pflichtfelder: HTTP 400 mit Feldüberprüfungsfehlern
- Ungültige Feldwerte: HTTP 400 mit Werteinschränkungsverletzungen
Konfigurationsfehler
- Nicht unterstützter Lizenztyp: HTTP 400 mit der Liste der unterstützten Typen
- Ungültiges Schlüsselformat: HTTP 400 mit Schlüsselformatanforderungen
- Richtlinienkonflikte: HTTP 400 mit Richtlinienauflösungsleitfaden
Bewährte Methoden
- JSON-Überprüfung: Überprüfen der JSON-Struktur vor dem Senden von Anforderungen
- Versionskompatibilität: Verwenden der entsprechenden Version für die Featureunterstützung
- Schlüsselsicherheit: Keine Inhaltsschlüssel im clientseitigen Code verfügbar machen
- Richtlinientests: Testen verschiedener Richtlinienkombinationen gründlich
- Fehlerbehandlung: Implementieren einer umfassenden Fehlerbehandlung für alle Szenarien
Verwandte Dokumentation
- PlayReady Test Server Service – Übersicht über den Hauptdienst
- Abfragezeichenfolgensyntax – einfache URL-basierte Konfiguration
- Base64 JSON-Syntax – Base64-codiertes JSON-Format
- PlayReady-Testserver – Vollständige Serverdokumentation
Support und Problembehandlung
Für Probleme mit customData JSON-Syntax:
- Überprüfen des JSON-Formats und der Struktur
- Überprüfen der erforderlichen Feldpräsenz und -werte
- Überprüfen der Richtlinienkompatibilität und -einschränkungen
- Testen mit vereinfachten Konfigurationen zuerst
- Überprüfen der Serverantwort auf detaillierte Fehlerinformationen
Weitere Unterstützung finden Sie in der Hauptdokumentation zu PlayReady-Testservern .