Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przegląd
Serwer Test PlayReady obsługuje składnię Base64 JSON dla konfiguracji licencji, zapewniając kompaktową i bezpieczną pod adresem URL metodę osadzania złożonych parametrów licencji. To podejście koduje dane konfiguracji JSON w formacie Base64, dzięki czemu nadaje się do parametrów adresu URL i nagłówków HTTP.
Proces kodowania
Składnia base64 JSON obejmuje dwa kroki:
- Tworzenie obiektu konfiguracji JSON
- Kodowanie ciągu JSON przy użyciu kodowania Base64
JSON Configuration → Base64 Encoding → URL Parameter
Podstawowa struktura JSON
Przed kodowaniem utwórz konfigurację JSON:
{
"licenseType": "persistent",
"keyId": "12345678-1234-1234-1234-123456789012",
"outputProtection": {
"digital": "required",
"analog": "optional"
}
}
Przykłady kodowania Base64
Prosta konfiguracja
Oryginalny kod JSON:
{"licenseType": "persistent", "keyId": "12345678-1234-1234-1234-123456789012"}
Zakodowane w formacie Base64:
eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Konfiguracja złożona
Oryginalny kod JSON:
{
"licenseType": "rental",
"keyId": "87654321-4321-4321-4321-210987654321",
"expirationDate": "2024-12-31T23:59:59Z",
"outputProtection": {
"digital": "required",
"analog": "never"
}
}
Zakodowane w formacie Base64:
eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiIsIm91dHB1dFByb3RlY3Rpb24iOnsiZGlnaXRhbCI6InJlcXVpcmVkIiwiYW5hbG9nIjoibmV2ZXIifX0=
Użycie adresu URL
Format parametru zapytania
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=BASE64_ENCODED_JSON
Kompletne przykładowe adresy URL
Licencja trwała
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Licencja na wynajem
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiJ9
Opcje konfiguracji
Typy licencji
Obsługa wszystkich standardowych typów licencji:
{
"licenseType": "persistent|non-persistent|rental|subscription"
}
Ustawienia ochrony danych wyjściowych
Konfigurowanie ochrony danych wyjściowych cyfrowych i analogowych:
{
"outputProtection": {
"digital": "required|optional|never",
"analog": "required|optional|never",
"hdcp": {
"version": "1.4|2.0|2.1|2.2",
"required": true
}
}
}
Ograniczenia Time-Based
Ustaw okresy wygaśnięcia i prolongaty:
{
"expirationDate": "2024-12-31T23:59:59Z",
"gracePeriod": 3600,
"firstPlayExpiration": "PT48H"
}
Przykłady implementacji
JavaScript/HTML5
// Create configuration object
const config = {
licenseType: "persistent",
keyId: keyId,
outputProtection: {
digital: "required",
analog: "optional"
}
};
// Convert to JSON and encode
const jsonString = JSON.stringify(config);
const base64Data = btoa(jsonString);
// Build URL
const licenseUrl = `https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=${base64Data}`;
Aplikacja języka C#
using System;
using System.Text;
using Newtonsoft.Json;
// Create configuration object
var config = new {
licenseType = "persistent",
keyId = keyId,
outputProtection = new {
digital = "required",
analog = "optional"
}
};
// Convert to JSON and encode
string jsonString = JsonConvert.SerializeObject(config);
byte[] jsonBytes = Encoding.UTF8.GetBytes(jsonString);
string base64Data = Convert.ToBase64String(jsonBytes);
// Build URL
string licenseUrl = $"https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data={base64Data}";
Przykład języka Python
import json
import base64
# Create configuration dictionary
config = {
"licenseType": "persistent",
"keyId": key_id,
"outputProtection": {
"digital": "required",
"analog": "optional"
}
}
# Convert to JSON and encode
json_string = json.dumps(config)
base64_data = base64.b64encode(json_string.encode('utf-8')).decode('utf-8')
# Build URL
license_url = f"https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data={base64_data}"
Konfiguracje zaawansowane
Zawartość obejmująca wiele ścieżek
Konfiguracja zawartości z wieloma ścieżkami:
{
"licenseType": "persistent",
"tracks": [
{
"keyId": "video-key-guid",
"trackType": "video",
"outputProtection": {
"digital": "required"
}
},
{
"keyId": "audio-key-guid",
"trackType": "audio",
"outputProtection": {
"digital": "optional"
}
}
]
}
licencje Domain-Bound
Konfiguracja zawartości powiązanej z domeną:
{
"licenseType": "persistent",
"keyId": "domain-key-guid",
"domainBinding": {
"domainId": "domain-service-id",
"domainAccountId": "account-identifier",
"required": true
}
}
Testowanie i walidacja
Weryfikacja dekodowania
Aby sprawdzić kodowanie Base64:
// Decode Base64 back to JSON
const decodedJson = atob(base64Data);
const configObject = JSON.parse(decodedJson);
console.log(configObject);
Typowe scenariusze testowe
- Podstawowe typy licencji: testowanie poszczególnych typów licencji osobno
- Ochrona danych wyjściowych: weryfikowanie różnych poziomów ochrony
- Ograniczenia czasowe: wygasanie testów i okresy prolongaty
- Złożone konfiguracje: Testowanie scenariuszy obejmujących wiele ścieżek i domen
Obsługa błędów
Błędy kodowania
- Nieprawidłowy kod JSON: Nieprawidłowo sformułowana struktura JSON przed kodowaniem
- Problemy z kodowaniem: problemy z kodowaniem znaków podczas konwersji base64
- Bezpieczeństwo adresu URL: Zapewnianie prawidłowego kodowania adresów URL danych Base64
błędy Server-Side
- Błędy dekodowania: HTTP 400 z błędem dekodowania Base64
- Analizowanie kodu JSON: HTTP 400 z błędami struktury JSON
- Nieprawidłowa konfiguracja: HTTP 400 z błędami walidacji konfiguracji
Najlepsze praktyki
- Walidacja JSON: sprawdzanie poprawności kodu JSON przed kodowaniem
- Kodowanie adresów URL: poprawnie kodowanie danych Base64 dla adresów URL
- Limity rozmiaru: zachowaj rozsądny rozmiar konfiguracji dla limitów adresów URL
- Testowanie: Dokładnie przetestuj proces kodowania/dekodowania
- Obsługa błędów: obsługa zarówno kodowania, jak i błędów serwera w sposób elastyczny
Zalety
- Kompaktowanie: Bardziej kompaktowy niż pełny kod JSON w adresach URL
- Bezpieczny adres URL: kodowanie Base64 jest bezpieczne pod adresem URL
- Elastyczny: obsługuje złożone obiekty konfiguracji
- Standardowa: używa standardowego kodowania Base64
Powiązana dokumentacja
- PlayReady Test Server Service — omówienie głównej usługi
- Składnia JSON usługi CustomData — pełny format konfiguracji JSON
- Składnia ciągu zapytania — proste podejście oparte na parametrach
- Serwery testowe PlayReady — kompletna dokumentacja serwera
Pomoc techniczna i rozwiązywanie problemów
W przypadku problemów ze składnią base64 JSON:
- Sprawdzanie struktury JSON przed kodowaniem
- Testowanie procesu kodowania/dekodowania Base64
- Sprawdzanie kodowania adresów URL danych Base64
- Weryfikowanie parametrów konfiguracji
- Przejrzyj odpowiedzi na błędy serwera, aby uzyskać szczegółowe informacje
Aby uzyskać dodatkową pomoc techniczną, zapoznaj się z główną dokumentacją serwerów testowych PlayReady .