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.
Interfejs API przesyłania ze sklepu Microsoft Store udostępnia metody umożliwiające zarządzanie przesyłaniem aplikacji, w tym stopniowe wdrażanie pakietów. Aby zapoznać się z wprowadzeniem do interfejsu API przesłań w Microsoft Store, w tym wymagania wstępne dotyczące jego użycia, zobacz Tworzenie i zarządzanie przesłaniami za pomocą usług Microsoft Store.
Ważne
Jeśli używasz interfejsu API przesyłania Microsoft Store do utworzenia przesyłki dla aplikacji, pamiętaj, aby wprowadzać dalsze zmiany w przesyłce wyłącznie przy użyciu tego interfejsu API, a nie Centrum partnerskiego. Jeśli używasz Centrum partnerskiego do zmiany przesłania utworzonego pierwotnie przy użyciu interfejsu API, nie będzie już można zmienić ani zatwierdzić tego przesłania przy użyciu interfejsu API. W niektórych przypadkach zgłoszenie może pozostać w stanie błędu, uniemożliwiającym kontynuowanie procesu przesyłania. W takim przypadku należy usunąć przesłanie i utworzyć nowe przesłanie.
Ważne
Nie można użyć tego interfejsu API do publikowania zgłoszeń w przypadku zakupów zbiorczych za pośrednictwem Sklepu Microsoft dla Firm oraz Sklepu Microsoft dla Edukacji ani do publikowania zgłoszeń aplikacji LOB bezpośrednio do przedsiębiorstw. W obu tych scenariuszach należy użyć Centrum partnerskiego, aby opublikować przesłanie.
Metody zarządzania przesyłaniem aplikacji
Użyj następujących metod, aby pobrać, utworzyć, zaktualizować, zatwierdzić lub usunąć przesyłanie aplikacji. Aby można było użyć tych metod, aplikacja musi już istnieć na koncie Centrum partnerskiego i musisz najpierw utworzyć jedno przesłanie dla aplikacji w Centrum partnerskim. Aby uzyskać więcej informacji, zobacz wymagania wstępne.
| Metoda | URI | Opis |
|---|---|---|
| POBIERZ | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} | Pobierz istniejące zgłoszenie aplikacji |
| POBIERZ | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/status | Uzyskaj stan zgłoszenia już istniejącej aplikacji |
| Bez znajomości kontekstu, w którym "POST" jest używany, nie mogę zaproponować dokładnego tłumaczenia. Jeżeli dotyczy HTTP, pozostaw jako "POST". | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions | Utwórz nową przesyłkę aplikacji |
| POŁÓŻ | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} | Aktualizować istniejące zgłoszenie aplikacji |
| Bez znajomości kontekstu, w którym "POST" jest używany, nie mogę zaproponować dokładnego tłumaczenia. Jeżeli dotyczy HTTP, pozostaw jako "POST". | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/commit | Zatwierdzenie nowego lub zaktualizowanego zgłoszenia aplikacji |
| USUŃ | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} | Usuń zgłoszenie aplikacji |
Utwórz zgłoszenie aplikacji
Aby utworzyć zgłoszenie dla aplikacji, wykonaj następujące kroki.
Jeśli jeszcze tego nie zrobiłeś(-łaś), zrealizuj wszystkie wymagania wstępne dla API przesyłania do Microsoft Store.
uzyskaj token dostępu usługi Azure AD. Aby korzystać z metod w interfejsie API przesyłania sklepu Microsoft Store, należy przekazać ten token dostępu. Po uzyskaniu tokenu dostępu należy 60 minut używać go przed jego wygaśnięciem. Po wygaśnięciu tokenu można uzyskać nowy.
Utwórz przesyłanie aplikacji, wykonując następującą metodę w interfejsie API przesyłania Microsoft Store. Ta metoda tworzy nowe zgłoszenie w toku, które jest kopią ostatniego opublikowanego zgłoszenia.
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissionsTreść odpowiedzi zawiera zasób przesyłania nowej aplikacji , który obejmuje identyfikator przesłania, identyfikator URI sygnatury dostępu współdzielonego (SAS) do wysyłania powiązanych plików do Azure Blob Storage (takich jak pakiety aplikacji, obrazy używane w listingu oraz pliki zapowiedzi) oraz wszystkie dane dotyczące nowego przesłania (takie jak listy i informacje o cenach).
Uwaga / Notatka
URI SAS zapewnia dostęp do bezpiecznego zasobu w usłudze Azure Storage bez konieczności używania kluczy kont. Aby uzyskać podstawowe informacje o identyfikatorach URI sygnatur dostępu współdzielonego (SAS) i ich użyciu z usługą Azure Blob Storage, zobacz "Sygnatury dostępu współdzielonego, część 1: Opis modelu SAS" i "Sygnatury dostępu współdzielonego, część 2: Tworzenie i używanie SAS z usługą Blob Storage".
Jeśli dodasz nowe pakiety, wykazujesz obrazy lub pliki zwiastunów do przesłania, przygotuj pakiety aplikacji i przygotuj zrzuty ekranu, obrazy i zwiastuny aplikacji. Dodaj wszystkie te pliki do archiwum ZIP.
Zaktualizuj dane zgłoszenia aplikacji przy użyciu wszelkich wymaganych zmian dla nowego przesłania, a następnie wykonaj poniższą metodę, aby zaktualizować zgłoszenie aplikacji.
PUT https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}Uwaga / Notatka
Jeśli dodasz nowe pliki do przesłania, pamiętaj, aby zaktualizować dane przesyłania, aby odwoływać się do nazwy i ścieżki względnej tych plików w archiwum ZIP.
W przypadku dodawania nowych pakietów, wyświetlania listy obrazów lub plików zwiastunów do przesłania, przekaż archiwum ZIP do usługi Azure Blob Storage, używając identyfikatora URI sygnatury dostępu współdzielonego podanego w treści odpowiedzi metody POST, którą wcześniej wywołałeś. Istnieją różne biblioteki platformy Azure, których można użyć do wykonania na różnych platformach, w tym:
- biblioteka klienta usługi Azure Storage dla platformy .NET
- zestaw SDK usługi Azure Storage dla języka Java
- zestaw SDK usługi Azure Storage dla języka Python
Poniższy przykład kodu w języku C# pokazuje, jak przekazać archiwum ZIP do usługi Azure Blob Storage przy użyciu klasy CloudBlockBlob w bibliotece klienta usługi Azure Storage dla platformy .NET. W tym przykładzie przyjęto założenie, że archiwum ZIP zostało już zapisane w obiekcie strumienia.
string sasUrl = "https://productingestionbin1.blob.core.windows.net/ingestion/26920f66-b592-4439-9a9d-fb0f014902ec?sv=2014-02-14&sr=b&sig=usAN0kNFNnYE2tGQBI%2BARQWejX1Guiz7hdFtRhyK%2Bog%3D&se=2016-06-17T20:45:51Z&sp=rwl"; Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob blockBob = new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob(new System.Uri(sasUrl)); await blockBob.UploadFromStreamAsync(stream);Zatwierdź wysłanie aplikacji, wykonując następującą procedurę. To powiadomi Centrum partnerskie, że zakończyłeś przesyłanie i że aktualizacje powinny teraz zostać zastosowane do Twojego konta.
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/commitSprawdź status zatwierdzenia, wykonując następującą procedurę, aby uzyskać informacje o stanie przesyłania aplikacji.
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/statusAby potwierdzić status zgłoszenia, sprawdź wartość statusu w treści odpowiedzi. Ta wartość powinna ulec zmianie z CommitStarted na PreProcessing, jeśli żądanie zakończy się powodzeniem, lub na CommitFailed, jeśli występują błędy w żądaniu. Jeśli występują błędy, pole statusDetails zawiera dodatkowe szczegóły dotyczące błędu.
Po pomyślnym zakończeniu zatwierdzenia przesyłka jest wysyłana do Sklepu do przetwarzania. Postęp przesyłania można nadal monitorować przy użyciu poprzedniej metody lub odwiedzając Centrum partnerskie.
Metody zarządzania stopniowym wdrażaniem pakietów
Zaktualizowane pakiety można stopniowo wdrażać podczas przesyłania aplikacji do pewnego procenta użytkowników aplikacji w systemach Windows 10 oraz Windows 11. Dzięki temu można monitorować opinie i dane analityczne dotyczące określonych pakietów, aby upewnić się, że jesteś pewny co do aktualizacji, zanim wprowadzisz ją na szerszą skalę. Możesz zmienić wartość procentową wdrożenia (lub zatrzymać aktualizację) dla opublikowanego przesłania bez konieczności tworzenia nowego przesłania. Aby uzyskać więcej informacji, w tym instrukcje dotyczące włączania i zarządzania stopniowym wdrażaniem pakietów w Centrum partnerskim, zobacz ten artykuł.
Aby programowo umożliwić stopniowe wdrażanie pakietu dla zgłoszenia aplikacji, skorzystaj z metod interfejsu API zgłoszeń Microsoft Store.
- Utwórz przesyłkę aplikacji lub uzyskaj istniejącą przesyłkę aplikacji.
- W danych odpowiedzi znajdź zasób packageRollout, ustaw pole isPackageRollout na wartość truei ustaw pole packageRolloutPercentage na wartość procentową klientów aplikacji, którzy powinni pobrać zaktualizowane pakiety.
- Przekaż zaktualizowane dane przesyłania aplikacji do metody aktualizacji przesyłania aplikacji.
Po włączeniu stopniowego wprowadzania pakietu na potrzeby przesyłania aplikacji można użyć następujących metod w celu programowego pobierania, aktualizowania, zatrzymywania lub finalizacji stopniowego wdrażania.
| Metoda | URI | Opis |
|---|---|---|
| POBIERZ | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/packagerollout | Pobierz informacje o stopniowym wdrożeniu dla przesłania aplikacji |
| Bez znajomości kontekstu, w którym "POST" jest używany, nie mogę zaproponować dokładnego tłumaczenia. Jeżeli dotyczy HTTP, pozostaw jako "POST". | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/updatepackagerolloutpercentage | Aktualizowanie stopniowego procentu wdrażania dla przesyłania aplikacji |
| Bez znajomości kontekstu, w którym "POST" jest używany, nie mogę zaproponować dokładnego tłumaczenia. Jeżeli dotyczy HTTP, pozostaw jako "POST". | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/haltpackagerollout | Zatrzymaj stopniowe wdrażanie aplikacji |
| Bez znajomości kontekstu, w którym "POST" jest używany, nie mogę zaproponować dokładnego tłumaczenia. Jeżeli dotyczy HTTP, pozostaw jako "POST". | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/finalizepackagerollout | Zakończ stopniowe wdrażanie przesłania aplikacji |
Przykłady kodu do zarządzania przesyłaniem aplikacji
Poniższe artykuły zawierają szczegółowe przykłady kodu, które pokazują, jak utworzyć przesyłanie aplikacji w kilku różnych językach programowania:
- przykład w języku C#: przesyłanie aplikacji, dodatków i lotów
- przykład w języku C#: przesyłanie aplikacji z opcjami gier i zwiastunami
- Przykład kodu Java : zgłoszenia dotyczące aplikacji, dodatków i lotów
- Przykład Java: przesyłanie aplikacji z opcjami rozgrywki i zwiastunami
- Przykład w języku Python: zgłoszenia dotyczące aplikacji, dodatków i lotów
- przykład języka Python: przesyłanie aplikacji z opcjami gier i zwiastunami
Moduł StoreBroker programu PowerShell
Aby nie wywoływać bezpośrednio interfejsu API do przesyłania do sklepu Microsoft Store, oferujemy również otwarty moduł PowerShell, który zapewnia interfejs wiersza poleceń oparty na tym API. Ten moduł jest nazywany StoreBroker. Za pomocą tego modułu możesz zarządzać przesyłaniem aplikacji, wersji testowych i dodatków z poziomu wiersza polecenia zamiast bezpośrednio wywoływać interfejs API przesyłania Microsoft Store, lub możesz przeglądać kod źródłowy, aby zobaczyć więcej przykładów, jak wywoływać ten interfejs API. Moduł StoreBroker jest aktywnie używany w firmie Microsoft jako podstawowy sposób przesyłania wielu aplikacji pierwszej firmy do Sklepu.
Aby uzyskać więcej informacji, zobacz naszą stronę StoreBroker w witrynie GitHub.
Zasoby danych
Metody API sklepu Microsoft Store do zarządzania przesyłaniem aplikacji wykorzystują następujące zasoby danych JSON.
Zasób przesyłania aplikacji
Ten zasób opisuje przesyłanie aplikacji.
{
"id": "1152921504621243540",
"applicationCategory": "BooksAndReference_EReader",
"pricing": {
"trialPeriod": "FifteenDays",
"marketSpecificPricings": {},
"sales": [],
"priceId": "Tier2",
"isAdvancedPricingModel": true
},
"visibility": "Public",
"targetPublishMode": "Manual",
"targetPublishDate": "1601-01-01T00:00:00Z",
"listings": {
"en-us": {
"baseListing": {
"copyrightAndTrademarkInfo": "",
"keywords": [
"epub"
],
"licenseTerms": "",
"privacyPolicy": "",
"supportContact": "",
"websiteUrl": "",
"description": "Description",
"features": [
"Free ebook reader"
],
"releaseNotes": "",
"images": [
{
"fileName": "contoso.png",
"fileStatus": "Uploaded",
"id": "1152921504672272757",
"description": "Main page",
"imageType": "Screenshot"
}
],
"recommendedHardware": [],
"title": "Contoso ebook reader"
},
"platformOverrides": {
"Windows81": {
"description": "Ebook reader for Windows 8.1"
}
}
}
},
"hardwarePreferences": [
"Touch"
],
"automaticBackupEnabled": false,
"canInstallOnRemovableMedia": true,
"isGameDvrEnabled": false,
"gamingOptions": [],
"hasExternalInAppProducts": false,
"meetAccessibilityGuidelines": true,
"notesForCertification": "",
"status": "PendingCommit",
"statusDetails": {
"errors": [],
"warnings": [],
"certificationReports": []
},
"fileUploadUrl": "https://productingestionbin1.blob.core.windows.net/ingestion/387a9ea8-a412-43a9-8fb3-a38d03eb483d?sv=2014-02-14&sr=b&sig=sdd12JmoaT6BhvC%2BZUrwRweA%2Fkvj%2BEBCY09C2SZZowg%3D&se=2016-06-17T18:32:26Z&sp=rwl",
"applicationPackages": [
{
"fileName": "contoso_app.appx",
"fileStatus": "Uploaded",
"id": "1152921504620138797",
"version": "1.0.0.0",
"architecture": "ARM",
"languages": [
"en-US"
],
"capabilities": [
"ID_RESOLUTION_HD720P",
"ID_RESOLUTION_WVGA",
"ID_RESOLUTION_WXGA"
],
"minimumDirectXVersion": "None",
"minimumSystemRam": "None",
"targetDeviceFamilies": [
"Windows.Mobile min version 10.0.10240.0"
]
}
],
"packageDeliveryOptions": {
"packageRollout": {
"isPackageRollout": false,
"packageRolloutPercentage": 0.0,
"packageRolloutStatus": "PackageRolloutNotStarted",
"fallbackSubmissionId": "0"
},
"isMandatoryUpdate": false,
"mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
},
"enterpriseLicensing": "Online",
"allowMicrosoftDecideAppAvailabilityToFutureDeviceFamilies": true,
"allowTargetFutureDeviceFamilies": {
"Desktop": false,
"Mobile": true,
"Holographic": true,
"Xbox": false,
"Team": true
},
"friendlyName": "Submission 2",
"trailers": []
}
Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| id | ciąg | Identyfikator zgłoszenia. Ten identyfikator jest dostępny w danych odpowiedzi na żądania: utworzenie zgłoszenia aplikacji, pobranie wszystkich aplikacjioraz pobranie aplikacji. W przypadku przesłania utworzonego w Centrum partnerskim ten identyfikator jest również dostępny w adresie URL strony przesyłania w Centrum partnerskim. |
| kategoria aplikacji | ciąg | Ciąg określający kategorię i/lub podkategorię dla aplikacji. Kategorie i podkategorie są łączone w jeden ciąg z znakiem podkreślenia "_", takim jak BooksAndReference_EReader. |
| ceny | obiekt | Zasób cenowy zawierający informacje o cenach aplikacji. |
| widoczność | ciąg | Widoczność aplikacji. Może to być jedna z następujących wartości:
|
| tryb publikacji docelowej | ciąg | Tryb publikacji zgłoszenia. Może to być jedna z następujących wartości:
|
| planowanaDataPublikacji | ciąg | Data publikacji zgłoszenia w formacie ISO 8601, jeśli targetPublishMode jest ustawiony na SpecificDate. |
| Ogłoszenia | obiekt | Słownik par klucz-wartość, w którym każdy klucz jest kodem kraju, a każda wartość jest zasobem listy , zawierającym informacje o liście dla aplikacji. |
| preferencje sprzętowe | macierz | Tablica ciągów definiujących preferencje sprzętowe dla aplikacji. Może to być jedna z następujących wartości:
|
| automatycznaKopiaZapasowaWłączona | typ logiczny (boolowski) | Wskazuje, czy system Windows może uwzględnić dane aplikacji w automatycznych kopiach zapasowych w usłudze OneDrive. Aby uzyskać więcej informacji, zobacz deklaracje aplikacji . |
| możnaZainstalowaćNaNośnikuPrzenośnym | typ logiczny (boolowski) | Wskazuje, czy klienci mogą zainstalować Twoją aplikację na wymiennym nośniku pamięci. Aby uzyskać więcej informacji, zobacz deklaracje aplikacji . |
| czyGameDvrJestWłączony | typ logiczny (boolowski) | Wskazuje, czy rejestrator gry jest włączony dla aplikacji. |
| opcje gry | macierz | Tablica zawierająca jeden zasób opcji gier definiujący ustawienia związane z grą dla aplikacji. |
| posiadaZewnętrzneUsługiWaplikacji | typ logiczny (boolowski) | Wskazuje, czy aplikacja umożliwia użytkownikom dokonywanie zakupów poza systemem handlowym Microsoft Store. Aby uzyskać więcej informacji, zobacz deklaracje aplikacji . |
| spełniaćWytyczneDotycząceDostępności | typ logiczny (boolowski) | Wskazuje, czy aplikacja została przetestowana w celu spełnienia wytycznych dotyczących ułatwień dostępu. Aby uzyskać więcej informacji, zobacz deklaracje aplikacji . |
| notatkiDoCertyfikacji | ciąg | Zawiera uwagi dotyczące certyfikacji dla Twojej aplikacji. |
| stan | ciąg | Status zgłoszenia. Może to być jedna z następujących wartości:
|
| szczegóły statusu | obiekt | Zasób szczegółów stanu , zawierający dodatkowe informacje dotyczące statusu zgłoszenia, w tym szczegóły o błędach. |
| fileUploadUrl | ciąg | URI sygnatury dostępu współdzielonego (SAS) do przesyłania dowolnych pakietów do zgłoszenia. W przypadku dodawania nowych pakietów, wymieniania obrazów lub plików zwiastunów do przesłania, przekaż archiwum ZIP zawierające pakiety i obrazy do tego URI. Aby uzyskać więcej informacji, zobacz Tworzenie zgłoszenia aplikacji. |
| pakiety aplikacji | macierz | Tablica zasobów pakietu aplikacji, które dostarczają szczegółowych informacji o każdym pakiecie w zgłoszeniu. |
| OpcjeDostawyPakietu | obiekt | Zasób opcji dostarczania pakietów zawierający stopniowe wdrażanie pakietów i obowiązkowe ustawienia aktualizacji dla przesyłania. |
| licencjonowanie przedsiębiorstw | ciąg | Jedna z wartości licencjonowania przedsiębiorstwa wartości, które wskazują na sposób licencjonowania aplikacji przez przedsiębiorstwo. |
| pozwólMicrosoftDecydowaćODostępnościAplikacjiDlaPrzyszłychRodzinUrządzeń | typ logiczny (boolowski) | Wskazuje, czy firma Microsoft może udostępnić aplikację przyszłym rodzinom urządzeń z systemami Windows 10 i Windows 11. |
| zezwólNaDocelowePrzyszłeRodzinyUrządzeń | obiekt | Słownik par klucz i wartość, gdzie każdy klucz jest rodziny urządzeń z systemem Windows 10 i Windows 11, a każda wartość jest wartością logiczną wskazującą, czy aplikacja może być skierowana do określonej rodziny urządzeń. |
| przyjaznaNazwa | ciąg | Przyjazna nazwa zgłoszenia, jak pokazano w Partner Center. Ta wartość jest generowana dla ciebie podczas tworzenia zgłoszenia. |
| Przyczepy | macierz | Tablica zawierająca maksymalnie 15 zasobów zwiastunów reprezentujących zwiastuny wideo dla listy aplikacji. |
Zasób cenowy
Ten zasób zawiera informacje o cenach aplikacji. Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| okres próbny | ciąg | Ciąg określający okres próbny aplikacji. Może to być jedna z następujących wartości:
|
| ceny specyficzne dla rynku | obiekt | Słownik par klucz-wartość, gdzie każdy klucz jest dwuliterowym kodem kraju ISO 3166-1 alfa-2, a każda wartość jest poziomem cenowym. Te elementy reprezentują niestandardowe ceny dla aplikacji na określonych rynkach. Wszystkie elementy w tym słowniku zastępują cenę podstawową określoną przez priceId wartość dla określonego rynku. |
| sprzedaż | macierz | Przestarzałe. Zbiór zasobów sprzedaży, które zawierają informacje o sprzedaży dotyczącej aplikacji. |
| priceId | ciąg | Warstwa cenowa określająca podstawową cenę dla aplikacji. |
| zaawansowanyModelCenowy | typ logiczny (boolowski) | Jeśli true, konto dewelopera ma dostęp do rozszerzonego zakresu poziomów cenowych od 0,99 USD do 1999,99 USD. Jeśli false, konto dewelopera ma dostęp do oryginalnego zestawu przedziałów cenowych od 0,99 USD do 999,99 USD. Aby uzyskać więcej informacji na temat różnych warstw, zobacz warstwy cenowe. Uwaga To pole jest tylko do odczytu. |
Zasób sprzedaży
Te zasoby zawierają informacje o sprzedaży aplikacji.
Ważne
Zasób sprzedaży nie jest już obsługiwany i obecnie nie można uzyskać ani zmodyfikować danych sprzedaży dla przesyłania aplikacji za pomocą interfejsu API Sklepu Microsoft. W przyszłości zaktualizujemy interfejs API przesyłania sklepu Microsoft Store, aby wprowadzić nowy sposób programowego uzyskiwania dostępu do informacji o sprzedaży na potrzeby przesyłania aplikacji.
- Po wywołaniu metody GET
, aby pobrać przesłanie aplikacji , wartość sprzedażybędzie pusta. Możesz nadal korzystać z Centrum partnerskiego, aby uzyskać dane sprzedaży dotyczące przesyłania aplikacji. - Podczas wywoływania metody PUT, aby zaktualizować zgłoszenie aplikacji, informacje w wartości sprzedaży są ignorowane. Możesz nadal używać Partner Center, aby zmienić dane sprzedaży dla zgłoszenia aplikacji.
Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| nazwa | ciąg | Nazwa sprzedaży. |
| IdCenyBazowej | ciąg | Wybierz warstwę cenową do wykorzystania jako cenę bazową sprzedaży. |
| data rozpoczęcia | ciąg | Data rozpoczęcia sprzedaży w formacie ISO 8601. |
| data zakończenia | ciąg | Data zakończenia sprzedaży w formacie ISO 8601. |
| ceny specyficzne dla rynku | obiekt | Słownik par klucz-wartość, gdzie każdy klucz jest dwuliterowym kodem kraju ISO 3166-1 alfa-2, a każda wartość jest poziomem cenowym. Te elementy reprezentują niestandardowe ceny dla aplikacji na określonych rynkach. Wszystkie elementy w tym słowniku zastępują cenę podstawową określoną przez wartość basePriceId dla określonego rynku. |
Lista zasobów
Ten zasób zawiera informacje o liście aplikacji. Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| baseListing | obiekt | Podstawowa lista informacji o aplikacji, która definiuje domyślne informacje o listach dla wszystkich platform. |
| nadpisania platformy | obiekt | Słownik par klucz-wartość, w którym każdy klucz jest ciągiem znaków identyfikującym platformę, dla której należy zastąpić informacje o liście, a każda wartość jest podstawową listą zasobu (zawiera tylko wartości od opisu do tytułu), która określa informacje o liście do zastąpienia dla danej platformy. Klucze mogą mieć następujące wartości:
|
Zasób listy podstawowej
Ten zasób zawiera podstawowe informacje o liście aplikacji. Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| informacje o prawach autorskich i znakach towarowych | ciąg | Opcjonalne informacje o prawach autorskich i/lub znakach towarowych. |
| Słowa kluczowe | macierz | Tablica słów kluczowych , aby pomóc aplikacji pojawić się w wynikach wyszukiwania. |
| warunki licencji | ciąg | Opcjonalne postanowienia licencyjne aplikacji. |
| polityka prywatności | ciąg | Ta wartość jest przestarzała. Aby ustawić lub zmienić adres URL polityki prywatności dla aplikacji, trzeba to zrobić na stronie Właściwości w Centrum partnerskim. Możesz pominąć tę wartość w swoich wywołaniach do interfejsu API przesyłania. Jeśli ustawisz tę wartość, zostanie ona zignorowana. |
| kontakt wsparcia | ciąg | Ta wartość jest przestarzała. Aby ustawić lub zmienić adres URL lub adres e-mail kontaktu pomocy technicznej dla aplikacji, musisz to zrobić na stronie Właściwości w Centrum partnerskim. Możesz pominąć tę wartość w swoich wywołaniach do interfejsu API przesyłania. Jeśli ustawisz tę wartość, zostanie ona zignorowana. |
| adresStronyInternetowej | ciąg | Ta wartość jest przestarzała. Aby ustawić lub zmienić adres URL strony internetowej aplikacji, należy to zrobić na stronie Właściwości w Centrum partnerskim. Możesz pominąć tę wartość w swoich wywołaniach do interfejsu API przesyłania. Jeśli ustawisz tę wartość, zostanie ona zignorowana. |
| opis | ciąg | Opis listy aplikacji . |
| funkcje | macierz | Tablica zawierająca do 20 ciągów znaków, wymieniających funkcje dla Twojej aplikacji. |
| releaseNotes | ciąg | Informacje o wersji aplikacji. |
| Obrazy | macierz | Tablica obrazu i ikony zasobów dla listy aplikacji. |
| zalecany sprzęt | macierz | Tablica zawierająca maksymalnie 11 ciągów, które zawierają listę zalecanych konfiguracji sprzętowych dla Twojej aplikacji. |
| minimalne wymagania sprzętowe | ciąg | Tablica zawierająca maksymalnie 11 ciągów, które zawierają listę minimalnych konfiguracji sprzętowych dla aplikacji. |
| tytuł | ciąg | Tytuł listy aplikacji. |
| krótki opis | ciąg | Ten opis pojawia się w sekcji Informacje w usłudze Game Hub na konsoli Xbox One i pomaga klientom lepiej zrozumieć twoją grę. |
| krótki tytuł | ciąg | Krótsza wersja nazwy produktu. Jeśli zostanie podana, ta krótsza nazwa może pojawić się w różnych miejscach na konsoli Xbox One (podczas instalacji, w osiągnięciach itp.) zamiast pełnego tytułu produktu. |
| sortujTytuł | ciąg | Jeśli produkt może być alfabetyzowany na różne sposoby, możesz wprowadzić w tym miejscu inną wersję. Może to pomóc klientom szybciej znaleźć produkt podczas wyszukiwania. |
| Tytuł głosowy | ciąg | Alternatywna nazwa produktu, która, jeśli została podana, może być używana w środowisku audio na konsoli Xbox One podczas korzystania z zestawu kinect lub zestawu słuchawkowego. |
| devStudio | ciąg | Określ tę wartość, jeśli chcesz uwzględnić pole Opracowane według na liście. (Pole opublikowane przez spowoduje wyświetlenie nazwy wyświetlanej wydawcy skojarzonej z kontem, niezależnie od tego, czy podasz wartość devStudio). |
Zasób obrazu
Ten zasób zawiera dane obrazów i ikon dla listy aplikacji. Aby uzyskać więcej informacji o obrazach i ikonach listy aplikacji, zobacz zrzuty ekranu i obrazy aplikacji . Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| nazwa pliku | ciąg | Nazwa pliku obrazu w archiwum ZIP, który przesłałeś. |
| fileStatus | ciąg | Stan pliku obrazu. Może to być jedna z następujących wartości:
|
| id | ciąg | Identyfikator obrazu. Ta wartość jest dostarczana przez Centrum partnerskie. |
| opis | ciąg | Opis obrazu. |
| typ obrazu | ciąg | Wskazuje typ obrazu. Następujące ciągi są obecnie obsługiwane.
|
Zasób opcji gier
Ten zasób zawiera ustawienia związane z grą dla aplikacji. Wartości w tym zasobie odpowiadają ustawieniom gry dla zgłoszeń w Centrum Partnerskim.
{
"gamingOptions": [
{
"genres": [
"Games_ActionAndAdventure",
"Games_Casino"
],
"isLocalMultiplayer": true,
"isLocalCooperative": true,
"isOnlineMultiplayer": false,
"isOnlineCooperative": false,
"localMultiplayerMinPlayers": 2,
"localMultiplayerMaxPlayers": 12,
"localCooperativeMinPlayers": 2,
"localCooperativeMaxPlayers": 12,
"isBroadcastingPrivilegeGranted": true,
"isCrossPlayEnabled": false,
"kinectDataForExternal": "Enabled"
}
],
}
Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| gatunki | macierz | Tablica z co najmniej jednym z następujących ciągów opisujących gatunki gry:
|
| isLocalMultiplayer | typ logiczny (boolowski) | Wskazuje, czy gra obsługuje lokalny tryb wieloosobowy. |
| isLocalCooperative | typ logiczny (boolowski) | Wskazuje, czy gra obsługuje lokalne co-op. |
| isOnlineMultiplayer | typ logiczny (boolowski) | Wskazuje, czy gra obsługuje tryb online dla wielu graczy. |
| isOnlineCooperative | typ logiczny (boolowski) | Wskazuje, czy gra obsługuje tryb online co-op. |
| localMultiplayerMinPlayers | int (integer) | Określa minimalną liczbę graczy, które obsługuje gra dla lokalnego trybu wieloosobowego. |
| localMultiplayerMaxPlayers | int (integer) | Określa maksymalną liczbę graczy, które obsługuje gra dla lokalnego trybu wieloosobowego. |
| localCooperativeMinPlayers | int (integer) | Określa minimalną liczbę graczy, którą obsługuje gra w trybie lokalnym co-op. |
| localCooperativeMaxPlayers | int (integer) | Określa maksymalną liczbę lokalnych graczy, jaką gra obsługuje dla co-op. |
| czyNadanoPrzywilejTransmisji | typ logiczny (boolowski) | Wskazuje, czy gra obsługuje nadawanie. |
| czyFunkcjaCrossPlayJestAktywna | typ logiczny (boolowski) | Wskazuje, czy gra obsługuje sesje dla wielu graczy w systemach Windows 10 i Windows 11 i Xbox. |
| kinectDaneDlaZewnętrznych | ciąg | Jedna z następujących wartości ciągu wskazująca, czy gra może zbierać dane Kinect i wysyłać je do usług zewnętrznych:
|
Uwaga / Notatka
Zasób gamingOptions został dodany w maju 2017 r., po pierwszym wydaniu interfejsu API przesyłania do sklepu Microsoft Store dla deweloperów. Jeśli przed wprowadzeniem tego zasobu utworzono przesłanie dla aplikacji za pośrednictwem interfejsu API przesyłania i jeśli przesłanie jest nadal w toku, ten zasób nie będzie miał wartości dla przesłań aplikacji do momentu pomyślnego zatwierdzenia przesłania lub jego usunięcia. Jeśli zasób gamingOptions nie jest dostępny dla przesyłania aplikacji, pole hasAdvancedListingPermission zasobu Application, zwrócone przez metodę get an app, ma wartość false.
Zasób szczegółowych informacji o stanie
Ten zasób zawiera dodatkowe szczegóły dotyczące statusu zgłoszenia. Ten zasób ma następujące wartości.
Zasób szczegółów stanu
Zasób ten zawiera dodatkowe informacje o ewentualnych błędach lub ostrzeżeniach związanych ze zgłoszeniem. Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| kod | ciąg | Kod stanu przesyłania opisujący typ błędu lub ostrzeżenia. |
| Szczegóły | ciąg | Komunikat z bardziej szczegółowymi informacjami na temat problemu. |
Zasób pakietu aplikacji
Ten zasób zawiera szczegółowe informacje o pakiecie aplikacji do przesłania.
{
"applicationPackages": [
{
"fileName": "contoso_app.appx",
"fileStatus": "Uploaded",
"id": "1152921504620138797",
"version": "1.0.0.0",
"architecture": "ARM",
"languages": [
"en-US"
],
"capabilities": [
"ID_RESOLUTION_HD720P",
"ID_RESOLUTION_WVGA",
"ID_RESOLUTION_WXGA"
],
"minimumDirectXVersion": "None",
"minimumSystemRam": "None",
"targetDeviceFamilies": [
"Windows.Mobile min version 10.0.10240.0"
]
}
],
}
Ten zasób ma następujące wartości.
Uwaga / Notatka
Podczas wywoływania metody przesyłania aplikacji, tylko wartości wymienione poniżej są wymagane w treści żądania: fileName, fileStatus, minimumDirectXVersioni minimumSystemRam. Pozostałe wartości są wypełniane przez Partner Center.
| Wartość | Typ | Opis |
|---|---|---|
| nazwa pliku | ciąg | Nazwa pakietu. |
| fileStatus | ciąg | Stan pakietu. Może to być jedna z następujących wartości:
|
| id | ciąg | Identyfikator, który jednoznacznie identyfikuje pakiet. Ta wartość jest dostarczana przez Centrum partnerskie. |
| wersja | ciąg | Wersja pakietu aplikacji. Aby uzyskać więcej informacji, zobacz Numerowanie wersji pakietu. |
| architektura | ciąg | Architektura pakietu (na przykład ARM). |
| Języki | macierz | Tablica kodów języków obsługiwanych przez aplikację. Aby uzyskać więcej informacji, zobacz listę Obsługiwane języki. |
| możliwości | macierz | Tablica możliwości wymaganych przez pakiet. Aby uzyskać więcej informacji na temat możliwości, zobacz Deklaracje możliwości aplikacji. |
| minimalna wersja DirectX | ciąg | Minimalna wersja DirectX obsługiwana przez pakiet aplikacji. Można to ustawić tylko dla aplikacji przeznaczonych dla systemu Windows 8.x. W przypadku aplikacji przeznaczonych na inne wersje systemu operacyjnego wartość ta musi być podana podczas wywoływania metody aktualizacji przesyłania aplikacji, ale zostanie zignorowana. Może to być jedna z następujących wartości:
|
| minimalnaPamięćRAMSystemu | ciąg | Minimalna pamięć RAM wymagana przez pakiet aplikacji. Można to ustawić tylko dla aplikacji przeznaczonych dla systemu Windows 8.x. W przypadku aplikacji przeznaczonych na inne wersje systemu operacyjnego wartość ta musi być podana podczas wywoływania metody aktualizacji przesyłania aplikacji, ale zostanie zignorowana. Może to być jedna z następujących wartości:
|
| docelowe rodziny urządzeń | macierz | Tablica ciągów reprezentujących rodziny urządzeń, których dotyczy pakiet. Ta wartość jest używana tylko w przypadku pakietów przeznaczonych dla systemu Windows 10; w przypadku pakietów przeznaczonych dla wcześniejszych wersji ta wartość ma wartość Brak. Następujące ciągi rodziny urządzeń są obecnie obsługiwane dla pakietów systemu Windows 10 i Windows 11, gdzie {0} jest ciągiem wersji systemu Windows 10 lub Windows 11, takim jak 10.0.10240.0, 10.0.0.10586.0 lub 10.0.14393.0:
|
id="zasób-raportu-certyfikacji"
Zasób raportu certyfikacji
Ten zasób zapewnia dostęp do danych raportu certyfikacji dla zgłoszenia. Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| termin | ciąg | Data i godzina wygenerowania raportu w formacie ISO 8601. |
| raportURL | ciąg | Adres URL, pod którym można uzyskać dostęp do raportu. |
Zasób opcji dostarczania pakietów
Ten zasób zawiera stopniowe wdrażanie pakietu i obowiązkowe ustawienia aktualizacji dla przesyłania.
{
"packageDeliveryOptions": {
"packageRollout": {
"isPackageRollout": false,
"packageRolloutPercentage": 0,
"packageRolloutStatus": "PackageRolloutNotStarted",
"fallbackSubmissionId": "0"
},
"isMandatoryUpdate": false,
"mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
},
}
Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| packageRollout | obiekt | Zasób wdrażania pakietów zawierający stopniowe ustawienia wprowadzania pakietów dla zgłoszenia. |
| jestObowiązkowąAktualizacją | typ logiczny (boolowski) | Wskazuje, czy chcesz traktować pakiety w tym przesłaniu jako obowiązkowe w przypadku samodzielnie instalowania aktualizacji aplikacji. Aby uzyskać więcej informacji na temat obowiązkowych pakietów dla samodzielnie instalowania aktualizacji aplikacji, zobacz Pobieranie i instalowanie aktualizacji pakietów dla aplikacji. |
| data wejścia w życie obowiązkowej aktualizacji | termin | Data i godzina, kiedy pakiety w tym przesłaniu staną się obowiązkowe w formacie ISO 8601 i strefie czasowej UTC. |
Zasób wdrażania pakietu
Ten zasób zawiera ustawienia stopniowego wprowadzania pakietów dla zgłoszenia. Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| isPackageRollout | typ logiczny (boolowski) | Wskazuje, czy stopniowe wdrażanie pakietu jest włączone dla zgłoszenia. |
| procent wdrażania pakietu | float | Procent użytkowników, którzy otrzymają pakiety w ramach stopniowego wdrażania. |
| packageRolloutStatus | ciąg | Jeden z następujących ciągów wskazujący stan stopniowego wdrażania pakietu:
|
| fallbackSubmissionId | ciąg | Identyfikator zgłoszenia, który zostanie otrzymany przez klientów, którzy nie otrzymują pakietów stopniowego wdrażania. |
Uwaga / Notatka
Wartości packageRolloutStatus i fallbackSubmissionId są przypisywane przez Partner Center i nie powinny być ustawiane przez dewelopera. Jeśli te wartości zostaną uwzględnione w treści żądania, te wartości zostaną zignorowane.
Zasób przyczep
Ten zasób reprezentuje zwiastun wideo dla listy aplikacji. Wartości w tym zasobie odpowiadają opcjom zwiastunów dla przesyłania w Centrum Partnerskim.
Możesz dodać do 15 zasobów dla przyczep w tablicy zasobu przesyłowego aplikacji . Aby przesłać pliki wideo zwiastunów i obrazy miniatur dla zgłoszenia, dodaj te pliki do tego samego archiwum ZIP, które zawiera pakiety i obrazy listy dla zgłoszenia, a następnie prześlij to archiwum ZIP do identyfikatora URI sygnatury dostępu współdzielonego (SAS) dla zgłoszenia. Aby uzyskać więcej informacji na temat przekazywania archiwum ZIP do SAS URI, zobacz Tworzenie przesyłania aplikacji.
{
"trailers": [
{
"id": "1158943556954955699",
"videoFileName": "Trailers\\ContosoGameTrailer.mp4",
"videoFileId": "1159761554639123258",
"trailerAssets": {
"en-us": {
"title": "Contoso Game",
"imageList": [
{
"fileName": "Images\\ContosoGame-Thumbnail.png",
"id": "1155546904097346923",
"description": "This is a still image from the video."
}
]
}
}
}
]
}
Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| id | ciąg | Identyfikator przyczepy. Ta wartość jest dostarczana przez Centrum partnerskie. |
| nazwaPlikuWideo | ciąg | Nazwa pliku wideo zwiastuna w archiwum ZIP, które zawiera pliki do przesłania. |
| videoFileId | ciąg | Identyfikator pliku wideo zwiastuna. Ta wartość jest dostarczana przez Centrum partnerskie. |
| zasoby przyczepy | obiekt | Słownik par klucz i wartość, gdzie każdy klucz jest kodem językowym, a każda wartość jest zasób zasobów przyczepy, który zawiera dodatkowe zasoby specyficzne dla ustawień regionalnych dla przyczepy. Aby uzyskać więcej informacji na temat obsługiwanych kodów języków, zobacz Obsługiwane języki. |
Uwaga / Notatka
Zwiastuny zostały dodane w maju 2017 r., po pierwszym wydaniu interfejsu API przesyłania do sklepu Microsoft Store dla deweloperów. Jeśli przed wprowadzeniem tego zasobu utworzono przesłanie dla aplikacji za pośrednictwem interfejsu API przesyłania i jeśli przesłanie jest nadal w toku, ten zasób nie będzie miał wartości dla przesłań aplikacji do momentu pomyślnego zatwierdzenia przesłania lub jego usunięcia. Jeśli zasób przyczep nie jest dostępny do przesyłania dla aplikacji, pole hasAdvancedListingPermission zasobu aplikacji , zwrócone przez metodę pobierania aplikacji , ma wartość false.
Zasób zasobów przyczepy
Ten zasób zawiera dodatkowe zasoby specyficzne dla ustawień regionalnych dla przyczepy zdefiniowanej w zasobie przyczepy . Ten zasób ma następujące wartości.
Zasób obrazu (dla zwiastuna)
Ten zasób opisuje obraz miniatury zwiastuna. Ten zasób ma następujące wartości.
| Wartość | Typ | Opis |
|---|---|---|
| nazwa pliku | ciąg | Nazwa pliku obrazu miniatury w załadowanym archiwum ZIP przesyłanym do zgłoszenia. |
| id | ciąg | Identyfikator obrazu miniatury. Ta wartość jest dostarczana przez Centrum partnerskie. |
| opis | ciąg | Opis obrazu miniatury. Ta wartość jest tylko metadanymi i nie jest wyświetlana użytkownikom. |
Wyliczenia
Te metody używają następujących wyliczeń.
Progi cenowe
Poniższe wartości reprezentują dostępne poziomy cenowe w zasobie na potrzeby zgłoszenia aplikacji.
| Wartość | Opis |
|---|---|
| Baza | Warstwa cenowa nie jest ustawiona; użyj ceny bazowej dla aplikacji. |
| Niedostępne | Aplikacja nie jest dostępna w określonym regionie. |
| Bezpłatna | Aplikacja jest bezpłatna. |
| poziom xxx | Ciąg określający warstwę cenową dla aplikacji, w formacie Tierxxxx. Obecnie obsługiwane są następujące zakresy warstw cenowych: Aby wyświetlić pełną tabelę warstw cenowych dostępnych dla konta dewelopera, w tym ceny specyficzne dla rynku skojarzone z każdą warstwą, przejdź do strony Cennik i dostępność dla dowolnej aplikacji przesłanej w Centrum partnerskim, a następnie kliknij link wyświetl tabelę w sekcji Rynki i ceny niestandardowe (w przypadku niektórych kont deweloperów, ten link znajduje się w sekcji Cennik). |
Zasady licencjonowania biznesu
Poniższe wartości reprezentują zachowanie licencjonowania organizacyjnego dla aplikacji. Aby uzyskać więcej informacji na temat tych opcji, zobacz Opcje licencjonowania organizacyjnego.
Uwaga / Notatka
Chociaż można skonfigurować opcje licencjonowania organizacyjnego dla zgłoszeń aplikacji za pośrednictwem interfejsu API przesyłania, nie można użyć tego interfejsu API do publikowania zgłoszeń dotyczących zakupów zbiorczych za pośrednictwem Sklepu Microsoft Store dla Firm i Sklepu Microsoft Store dla Edukacji. Aby opublikować przesłania do Sklepu Microsoft dla Firm i Sklepu Microsoft dla instytucji edukacyjnych, musisz użyć Centrum partnerskiego.
| Wartość | Opis |
|---|---|
| Żaden | Nie udostępniaj swojej aplikacji przedsiębiorstwom za pośrednictwem zbiorczego licencjonowania zarządzanego online przez Sklep. |
| Online | Udostępnij aplikację przedsiębiorstwom za pomocą licencjonowania zbiorowego zarządzanego przez sklep (online). |
| OnlineAndOffline | Udostępnij aplikację przedsiębiorstwom za pomocą licencjonowania zbiorowego zarządzanego przez sklep (online) i udostępnij aplikację przedsiębiorstwom za pośrednictwem licencjonowania rozłączonego (offline). |
Kod stanu przesyłania
Poniższe wartości reprezentują kod stanu przesyłania.
| Wartość | Opis |
|---|---|
| Żaden | Nie określono żadnego kodu. |
| Nieprawidłowe archiwum | Archiwum ZIP zawierające pakiet jest nieprawidłowe lub ma nierozpoznany format archiwum. |
| Brakujące pliki | Archiwum ZIP nie zawiera wszystkich plików wymienionych w danych przesyłania lub znajdują się w niewłaściwej lokalizacji w archiwum. |
| Walidacja pakietu nie powiodła się | Nie udało się zweryfikować jednego lub więcej pakietów w twoim zgłoszeniu. |
| NieprawidłowaWartośćParametru | Jeden z parametrów w treści żądania jest nieprawidłowy. |
| Nieprawidłowa operacja | Podjęta operacja jest nieprawidłowa. |
| NieprawidłowyStan | Podjęta operacja jest nieważna dla bieżącego stanu lotu przesyłki. |
| Nie znaleziono zasobu | Nie można odnaleźć określonego lotu pakietu. |
| Błąd usługi | Wewnętrzny błąd usługi uniemożliwił realizację żądania. Spróbuj ponownie wysłać żądanie. |
| Ostrzeżenie o wypisaniu z listy | Deweloper usunął listę z poprzedniego przesłania lub nie zawierał informacji o listach obsługiwanych przez pakiet. |
| Ostrzeżenie o zgłoszeniu do listingu | Deweloper dodał ogłoszenie. |
| Ostrzeżenie przy aktualizacji | Deweloper próbuje wstawić coś, co ma tylko obsługę aktualizacji. |
| Pozostałe | Zgłoszenie jest w niezidentyfikowanym lub nieskategoryzowanym stanie. |
| Ostrzeżenie dotyczące walidacji pakietu | Proces weryfikacji pakietu spowodował ostrzeżenie. |