Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Genel Bakış
PlayReady Test Sunucusu, gelişmiş lisans yapılandırması için CustomData JSON söz dizimini destekler. Bu yöntem, geliştiricilerin lisans isteklerinin CustomData alanında JSON biçimini kullanarak karmaşık lisans parametreleri ve ilkeleri belirtmesine olanak tanır.
JSON Yapısı
CustomData alanı çeşitli yapılandırma parametrelerine sahip bir JSON nesnesi kabul eder:
{
"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"
}
}
}
}
Yapılandırma Parametreleri
Lisans Türü
Oluşturulacak lisans türünü belirtir:
- kalıcı: Cihazda depolanan lisans, uygulamanın yeniden başlatılmasına devam eder
- kalıcı olmayan: Geçici lisans, uygulama kapatıldığında sona erer
- kiralama: Belirli bir süre sonu ile sınırlı lisans
- abonelik: Düzenli doğrulama ile abonelik tabanlı lisans
Anahtar Yönetimi
Şifreleme anahtarlarını ve tanımlayıcılarını yapılandırın:
{
"keyId": "12345678-1234-1234-1234-123456789012",
"contentKey": "base64EncodedContentKey",
"keyRotation": {
"enabled": true,
"interval": "PT1H"
}
}
Çıkış Koruma İlkeleri
Çıkış koruma gereksinimlerini denetleme:
{
"outputProtection": {
"digital": {
"hdcp": "required",
"cgmsa": "copy-never"
},
"analog": {
"macrovision": "required",
"cgmsa": "copy-once"
}
}
}
Örnek Yapılandırmalar
Temel Kalıcı Lisans
{
"version": "1.0",
"config": {
"licenseType": "persistent",
"keyId": "12345678-1234-1234-1234-123456789012",
"policies": {
"playback": {
"allowOffline": true
}
}
}
}
Zaman Kısıtlamaları olan Kiralama Lisansı
{
"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"
}
}
}
}
Çıkış Koruması ile Abonelik Lisansı
{
"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"
}
}
}
}
Lisans İsteklerinde Kullanım
HTTP POST İsteği
JSON yapılandırmasını CustomData alanına ekleyin:
POST /pr/svc/rightsmanager.asmx HTTP/1.1
Host: playready.directtaps.net
Content-Type: application/octet-stream
[License Request with CustomData containing JSON configuration]
İstemci Tümleştirmesi
JavaScript Örneği
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# Örneği
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
Gelişmiş Özellikler
Koşullu Erişim
Cihaz veya kullanıcı özniteliklerine göre koşullu erişimi yapılandırın:
{
"conditionalAccess": {
"deviceRestrictions": {
"allowedDeviceTypes": ["mobile", "desktop"],
"blockedDevices": ["emulator", "debugger"]
},
"geoRestrictions": {
"allowedCountries": ["US", "CA", "GB"],
"blockedRegions": ["region1", "region2"]
}
}
}
Çok Anahtarlı Destek
Birden çok şifreleme anahtarı desteği:
{
"keys": [
{
"keyId": "key-1-guid",
"contentKey": "base64-key-1",
"keyType": "content"
},
{
"keyId": "key-2-guid",
"contentKey": "base64-key-2",
"keyType": "track"
}
]
}
Hata İşleme
JSON Doğrulama Hataları
- Hatalı Biçimlendirilmiş JSON: JSON ayrıştırma hata ayrıntılarıyla HTTP 400
- Eksik Gerekli Alanlar: Alan doğrulama hatalarıyla HTTP 400
- Geçersiz Alan Değerleri: Değer kısıtlama ihlalleriyle HTTP 400
Yapılandırma Hataları
- Desteklenmeyen Lisans Türü: Desteklenen türler listesiyle HTTP 400
- Geçersiz Anahtar Biçimi: Anahtar biçimi gereksinimleri olan HTTP 400
- İlke Çakışmaları: İlke çözümleme kılavuzuyla HTTP 400
En İyi Yöntemler
- JSON Doğrulaması: İstek göndermeden önce JSON yapısını doğrulama
- Sürüm Uyumluluğu: Özellik desteği için uygun sürümü kullanın
- Anahtar Güvenliği: İçerik anahtarlarını hiçbir zaman istemci tarafı kodunda kullanıma sunma
- İlke Testi: Farklı ilke birleşimlerini kapsamlı bir şekilde test etme
- Hata İşleme: Tüm senaryolar için kapsamlı hata işleme uygulama
İlgili Belgeler
- PlayReady Test Sunucusu Hizmeti - Ana hizmete genel bakış
- Sorgu Dizesi Sözdizimi - Basit URL tabanlı yapılandırma
- Base64 JSON Sözdizimi - Base64 kodlanmış JSON biçimi
- PlayReady Test Sunucuları - Eksiksiz sunucu belgeleri
Destek ve Sorun Giderme
CustomData JSON söz dizimi ile ilgili sorunlar için:
- JSON biçimini ve yapısını doğrulama
- Gerekli alan varlığını ve değerlerini denetleme
- İlke uyumluluğunu ve kısıtlamalarını doğrulama
- Önce basitleştirilmiş yapılandırmalarla test edin
- Ayrıntılı hata bilgileri için sunucu yanıtlarını gözden geçirin
Ek destek için ana PlayReady Test Sunucuları belgelerine bakın.