gilt für: Partner Center (nicht verfügbar in Azure Government oder Azure China 21Vianet)
Verständnis der Architektur
Die neue asynchrone API bietet erhebliche Fortschritte bei der Behandlung des Abrechnungs- und Abstimmungsdatenzugriffs. Dieser Ansatz löst Herausforderungen im Zusammenhang mit herkömmlichen synchronen Methoden, z. B. der Aufrechterhaltung langlebiger Verbindungen und der Verarbeitung großer Datenbatches. Hier sind die wichtigsten Vorteile und Mechanismen dieser API:
Wichtigste Komponenten
Sicherer Zugriff mit Valetschlüsselmuster
Das Valetschlüsselmuster bietet sicheren, eingeschränkten Zugriff auf Ihre Abrechnungsdaten. Ähnlich wie ein Valet-Schlüssel es jemandem ermöglicht, Ihr Auto ohne Zugriff auf den Trunk zu fahren, stellt dieses Muster eine präzise Zugriffssteuerung sicher. Statt Anmeldeinformationen freizugeben, gewährt ein SAS-Token (Shared Access Signature) begrenzten, zeitlich gebundenen Zugriff auf bestimmte Ressourcen. Dieses Muster reduziert das Risiko eines nicht autorisierten Zugriffs, indem präzise Ablaufzeiten und Zugriffsberechtigungen konfiguriert werden.
Verbesserte Effizienz durch asynchrones Anforderungsantwortmuster
Denken Sie daran, dass sie in einem ausgelasteten Restaurant bestellt wird. Anstatt auf den Schalter zu warten, erhalten Sie einen Buzzer und können andere Dinge tun, während Ihre Bestellung vorbereitet ist. Wenn die Daten bereit sind, benachrichtigt Sie das System.
Die asynchrone Art der API bedeutet, dass Sie eine Anforderung stellen und das System sie im Hintergrund verarbeitet. Diese asynchrone Anforderungsantwort verwendet effizient Ressourcen, reduziert die Serverlast und minimiert Timeouts und Fehler, die bei synchronen Datenabrufen auftreten.
Flexibilität bei Datenzugriffsberechtigungen
SAS-Token bieten Flexibilität beim Verwalten von Datenzugriffsberechtigungen. Sie können Token generieren, die Zugriff auf alle Attribute der Rechnungsabrechnungsdaten gewähren oder den Zugriff auf bestimmte Teilmengen beschränken. Diese Granularität ermöglicht Es Organisationen, den Datenzugriff gemäß internen Richtlinien und behördlichen Anforderungen anzupassen, um Sicherheit und Compliance zu verbessern.
Vereinfachter Workflow und verbesserte Datenverarbeitungszeiten
Das asynchrone Anforderungsantwortmuster optimiert die Datenverarbeitung, indem der dynamische Zugriff anstelle von festen Batches von 2.000 Zeilenelementen ermöglicht wird. Dieser Ansatz führt zu schnelleren Ergebnissen und verbesserten Verarbeitungszeiten und vereinfacht die Integration von Abrechnungs- und Abstimmungsdaten in bestehende Systeme und Workflows.
Vorteile
Leistungsvorteile
Anstatt langlebige Verbindungen beizubehalten und feste Batches zu verarbeiten, ermöglicht Ihnen das neue System Folgendes:
Erstellen Sie eine schnelle anfängliche Anforderung.
Empfangen eines sicheren Zugriffstokens.
Verarbeiten Sie Daten in Ihrem eigenen Tempo.
Greifen Sie genau darauf zu, was Sie benötigen.
Sicherheitsverbesserungen
Das Valet-Schlüsselmuster, das über SAS-Token implementiert wird, bietet Folgendes:
Zeitlich begrenzter Zugriff.
Eingeschränkte Berechtigungen.
Abschaffung der Weitergabe oder Speicherung von dauerhaften Anmeldeinformationen
Differenzierte Zugriffssteuerung
Architekturvorteile
Das asynchrone Anforderungsantwortmuster verhält sich wie ein persönlicher Assistent, der:
Annehmen Ihrer Anforderung
Ausführen der Aufgabe im Hintergrund
Benachrichtigt Sie, wenn alles bereit ist.
Einführen optimierter APIs für eine verbesserte Leistung
Durch die Einführung dieser optimierten APIs wird der Workflow optimiert und die Gesamtleistung in der Datenverwaltung verbessert. Mit der sicheren Zugriffssteuerung und effizienten Abrufmechanismen erzielen Sie bessere Ergebnisse mit weniger Aufwand, was zu einer verbesserten Betrieblichen Effizienz führt.
Abschließend ist die neue asynchrone API für den Zugriff auf Abrechnungs- und Abstimmungsdaten über Azure-Blobs ein leistungsfähiges Tool. Es bietet sicheren, effizienten Zugriff auf Finanzdaten, straffende Workflows, Reduzierung der Serverlasten und Verbesserung der Verarbeitungszeiten, alles mit hoher Sicherheit und Compliance.
Zulassen, dass Ihre App sicher auf Partnerabrechnungsdaten zugreifen kann
Um Ihrer App den Zugriff auf Partnerabrechnungsdaten zu ermöglichen, klicken auf Sie diesen Link, und machen Sie sich mit den Authentifizierungs- und Autorisierungsgrundlagen für Microsoft Graph vertraut. Dieser Schritt ist entscheidend, da so sichergestellt wird, dass Ihre App sicher auf die erforderlichen Daten zugreifen kann.
Registrieren Sie Ihre App und weisen Sie die Berechtigung "PartnerBilling.Read.All" zu.
Sie können die Berechtigung "PartnerBilling.Read.All" entweder über das Azure-Portal oder das Microsoft Entra Admin Center zuweisen. Durch Ausführen dieser Schritte können Sie sicherstellen, dass Ihre App über den erforderlichen Zugriff auf Partnerabrechnungsdaten verfügt. Gehen Sie wie folgt vor:
Registrieren Sie Ihre App auf der Microsoft Entra-Homepage unter dem Abschnitt für App-Registrierungen.
Weisen Sie die erforderlichen Berechtigungen zu, indem Sie zur Microsoft Entra App-Seite wechseln. Wählen Sie im Abschnitt zu den API-Berechtigungen zunächst die Option Berechtigung hinzufügen und dann den Bereich PartnerBilling.Read.All aus.
Informationen zu den wichtigsten API-Endpunkten
Zum asynchronen Abrufen der New Commerce-Rechnungsabstimmungspositionen stehen zwei wichtige API-Endpunkte zur Verfügung. Diese Endpunkte helfen Ihnen bei der effizienten Verwaltung Ihres Rechnungsausgleichsprozesses. Befolgen Sie diesen optimierten Leitfaden, um schnell loszulegen.
Verwenden des Rechnungsabstimmungsendpunkts
Verwenden Sie zunächst diese API, um New Commerce-Rechnungsabstimmungspositionen zu fetchen. Wenn Sie eine Anforderung übermitteln, erhalten Sie den HTTP-Status 202 und einen Location-Header mit einer URL. Rufen Sie diese URL regelmäßig ab, bis ein erfolgreicher Status angezeigt wird und Sie eine Manifest-URL erhalten.
Verwenden Sie den Betriebsstatus-Endpunkt
Überprüfen Sie als Nächstes den Vorgangsstatus, indem Sie diese API in regelmäßigen Abständen aufrufen. Wenn die Daten nicht bereit sind, enthält die Antwort einen Retry-After-Header, der angibt, wie lange Sie warten müssen, bevor Sie es erneut versuchen können. Nach Abschluss des Vorgangs erhalten Sie eine Manifestressource mit einem Speicherordnerlink zum Herunterladen der Nutzungsdaten. Die Antwort segmentiert die Dateien, um den Durchsatz zu erhöhen und eine E/A-Parallelität zu ermöglichen.
Überprüfen des Sequenzdiagramms
Hier sehen Sie ein Sequenzdiagramm, das die Schritte zum Herunterladen der New Commerce-Rechnungsabstimmungsdaten zeigt.
Folgen Sie der Benutzeraktionssequenz, um Rechnungsabgleichungsdaten abzurufen.
Dies ist die Aktionssequenz des Benutzers zum Abrufen von Rechnungsabgleichsdaten:
Wählen Sie „full“ für alle Attribute oder „basic“ für eine begrenzte Anzahl aus. Wenn nichts angegeben wird, ist „full“ der Standardwert. Überprüfen Sie die Liste der Attribute in diesem Abschnitt. Optional.
invoiceId
True
Zeichenfolge
Ein eindeutiger Bezeichner für jede Rechnung. Erforderlich.
Anforderungsheader
Fordern Sie mithilfe der unter Best Practices für die Verwendung von Microsoft Graph aufgeführten Schritte Header für die API an. Durch die Einhaltung dieser Richtlinien stellen Sie die Zuverlässigkeit und Unterstützung für Ihre Anwendung sicher. Ihre Aufmerksamkeit für Details in diesem Schritt ist entscheidend für die nahtlose Integration und optimale Leistung.
Die API antwortet in der Regel mit dem HTTP-Status 202. In Abhängigkeit von Ihren Anforderungen können Sie auch andere Status erhalten. Diese Status sind im Abschnitt API-Standardantwortstatus aufgeführt.
Code
Beschreibung
202 – Accepted
Ihre Anforderung wurde akzeptiert. Um den Status Ihrer Anforderung zu überprüfen, fragen Sie die URL ab, die im Location-Header angegeben ist.
Überprüfen des Anforderungsstatus
Um den Status einer Anforderung nachzuverfolgen, stellen Sie sicher, dass Sie eine HTTP 200-Antwort erhalten. Dabei handelt es sich um einen Standardstatuscode, der den Status „erfolgreich“ oder „fehlgeschlagen“ angibt. Bei erfolgreichem Status finden Sie die Manifest-URL im Attribut „resourceLocation“. Dieses Attribut stellt einen Endpunkt für den Zugriff auf die erforderlichen Informationen bereit.
Abrufen des Vorgangsstatus
Ruft den Status einer Anforderung ab.
API-Anforderung
HTTP
GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>
Anforderungsparameter
Name
Einschließen in
Erforderlich
Typ
Beschreibung
operationId
Anforderungs-URI
True
Zeichenfolge
Ein eindeutiger Bezeichner, um den Anforderungsstatus zu überprüfen. Erforderlich.
Anforderungsheader
Fordern Sie mithilfe der unter Best Practices für die Verwendung von Microsoft Graph aufgeführten Schritte Header für die API an. Durch die Einhaltung dieser Richtlinien stellen Sie die Zuverlässigkeit und Unterstützung für Ihre Anwendung sicher. Ihre Aufmerksamkeit für Details in diesem Schritt ist entscheidend für die nahtlose Integration und optimale Leistung.
Anforderungstext
N/V.
Antwortstatus
Neben den HTTP-Standardstatus, die unter API-Standardantwortstatus aufgeführt sind, kann die API auch den folgenden HTTP-Status zurückgeben:
Code
Beschreibung
410 – Gone
Der Manifestlink läuft nach einer festgelegten Zeit ab. Um den Manifestlink erneut abzurufen, senden Sie eine neue Anforderung.
Nutzdaten der Antwort
Die API-Antwortnutzdaten enthalten die folgenden Attribute:
Attribut
Erforderlich
Beschreibung
id
True
Ein eindeutiger Bezeichner für jede Antwort Erforderlich.
status
True
Werte und Aktionen:Erforderlich. notstarted: Warten Sie die im Retry-After-Header angegebene Zeit ab, und führen Sie dann einen weiteren Aufruf aus, um den Status zu überprüfen. running: Warten Sie die im Retry-After-Header angegebene Zeit ab, und führen Sie dann einen weiteren Aufruf aus, um den Status zu überprüfen. succeeded: Die Daten sind bereit. Rufen Sie die Manifestnutzdaten mithilfe des in resourceLocation angegebenen URI ab. failed: Der Vorgang ist permanent fehlgeschlagen. Starten Sie ihn neu.
createdDateTime
True
Zeitpunkt, zu dem die Anforderung gesendet wurde. Erforderlich.
lastActionDateTime
True
Das letzte Mal, dass sich der Status geändert hat. Erforderlich.
resourceLocation
False
Der URI für die Manifestnutzdaten. Optional.
error
False
Details zu Fehlern, die im JSON-Format bereitgestellt werden. Optional. Enthaltene Attribute: message: Beschreibung des Fehlers. code: Der Fehlertyp.
Ressourcenspeicherortobjekt
Attribut
Beschreibung
id
Ein eindeutiger Bezeichner für das Manifest.
schemaVersion
Version des Manifestschemas.
dataFormat
Format der Abrechnungsdatendatei. compressedJSON: Datenformat, bei dem jedes Blob eine komprimierte Datei ist, die Daten im JSON-Zeilenformat enthält. Um die Daten aus jedem Blob abzurufen, dekomprimieren Sie sie.
createdDateTime
Datum und Uhrzeit der Erstellung der Manifestdatei.
eTag
Version der Manifestdaten. Bei jeder Änderung der Abrechnungsinformationen wird ein neuer Wert generiert.
partnerTenantId
Microsoft Entra ID-Instanz des Mandanten des Partners.
rootDirectory
Stammverzeichnis der Datei.
sasToken
SAS-Token (Shared Access Signature), mit dem Sie alle Dateien unter dem Verzeichnis lesen können.
partitionType
Teilt die Daten auf der Grundlage des Attributs „partitionValue“ in mehrere Blobs auf. Das System teilt Partitionen auf, die die unterstützte Anzahl überschreiten. Standardmäßig werden Daten basierend auf der Anzahl der Positionen in der Datei partitioniert. Vermeiden Sie es, die Anzahl von Zeilenposten oder Dateigrößen hart zu kodieren, da sie sich ändern können.
blobCount
Gesamtanzahl der Dateien für diese Partnermandanten-ID.
blobs
Ein JSON-Array aus blob-Objekten, die die Dateidetails für die Partnermandanten-ID enthalten.
blob object
Ein Objekt mit den folgenden Details: name und partitionValue.
name
Name des Blobs.
partitionValue
Partition, die die Datei enthält. Die große Partition wird basierend auf bestimmten Kriterien wie Dateigröße oder Anzahl von Datensätzen in mehrere Dateien aufgeteilt, wobei jede Datei denselben partitionValue-Wert enthält.
API-Anforderung
HTTP
GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>
API-Antwort
Die Antwort empfiehlt, zehn Sekunden zu warten, bevor Sie es erneut versuchen, wenn Ihre Daten noch verarbeitet werden.
Herunterladen von Abstimmungspositionen aus Azure Blob Storage
Zunächst müssen Sie das SAS-Token (Shared Access Signature) und den Blobspeicherort abrufen. Suchen Sie diese Details in den eigenschaften sasToken und rootDirectory der Manifestnutzlast-API-Antwort.
Führen Sie zum Fortfahren die folgenden Schritte aus:
Entzippen Sie die Datei, die sich im JSONLines- Format befindet.
Tipp
Schauen Sie sich unbedingt unseren Beispielcodean. Es zeigt, wie Sie die Azure-BLOB-Datei in Ihre lokale Datenbank herunterladen und entzippen.
API-Standardantwortstatus
Möglicherweise erhalten Sie die folgenden HTTP-Status aus der API-Antwort:
Code
Beschreibung
400 – Bad Request
Die Anforderung fehlt oder enthält falsche Daten. Überprüfen Sie den Antworttext auf Fehlerdetails.
401 – Unauthorized
Die Authentifizierung ist erforderlich, bevor der erste Aufruf erfolgt. Authentifizieren Sie sich mit dem Partner-API-Dienst.
403 – Forbidden
Sie verfügen nicht über die erforderliche Autorisierung für die Anforderung.
404 – Not Found
Die angeforderten Ressourcen sind mit den bereitgestellten Eingabeparametern nicht verfügbar.
410 – Gone
Der Manifestlink ist nicht mehr gültig oder aktiv. Übermitteln Sie eine neue Anforderung.
500 – Internal Server Error
Die API oder ihre Abhängigkeiten können die Anforderung im Moment nicht erfüllen. Versuchen Sie es später erneut.
5000 – No Data Available
Das System verfügt über keine Daten für die angegebenen Eingabeparameter.
Attribute der Rechnungsabstimmungspositionen
Informationen zum Vergleichen der Attribute, die von der Rechnungsabstimmungs-API für die Attributsätze „full“ oder „basic“ zurückgegeben werden, finden Sie in dieser Tabelle
Weitere Informationen zu diesen Attributen und ihren Bedeutungen finden Sie unter Verwenden der Abstimmungsdatei.
Attribut
full
basic
PartnerId
Ja
Ja
CustomerId
Ja
Ja
CustomerName
Ja
Ja
CustomerDomainName
Ja
Nein
CustomerCountry
Ja
Nein
InvoiceNumber
Ja
Ja
MpnId
Ja
Nein
Tier2MpnId
Ja
Ja
OrderId
Ja
Ja
OrderDate
Ja
Ja
ProductId
Ja
Ja
SkuId
Ja
Ja
AvailabilityId
Ja
Ja
SkuName
Ja
Nein
ProductName
Ja
Ja
ChargeType
Ja
Ja
UnitPrice
Ja
Ja
Quantity
Ja
Nein
Subtotal
Ja
Ja
TaxTotal
Ja
Ja
Total
Ja
Ja
Currency
Ja
Ja
PriceAdjustmentDescription
Ja
Ja
PublisherName
Ja
Ja
PublisherId
Ja
Nein
SubscriptionDescription
Ja
Nein
SubscriptionId
Ja
Ja
ChargeStartDate
Ja
Ja
ChargeEndDate
Ja
Ja
TermAndBillingCycle
Ja
Ja
EffectiveUnitPrice
Ja
Ja
UnitType
Ja
Nein
AlternateId
Ja
Nein
BillableQuantity
Ja
Ja
BillingFrequency
Ja
Nein
PricingCurrency
Ja
Ja
PCToBCExchangeRate
Ja
Ja
PCToBCExchangeRateDate
Ja
Nein
MeterDescription
Ja
Nein
ReservationOrderId
Ja
Ja
CreditReasonCode
Ja
Ja
SubscriptionStartDate
Ja
Ja
SubscriptionEndDate
Ja
Ja
ReferenceId
Ja
Ja
ProductQualifiers
Ja
Nein
PromotionId
Ja
Ja
ProductCategory
Ja
Ja
Wichtig
Jeder Feld- oder Attributname beginnt mit einem Großbuchstaben, um die Konsistenz mit der Datei zu gewährleisten und die Lesbarkeit zu verbessern.
Beispielcode
Wenn Sie Unterstützung bei der Migration zu dieser API benötigen, lesen Sie den Link, der C#-Beispielcode enthält.
Sie analysieren und übersetzen finanzielle Geschäftsanforderungen in Prozesse und Lösungen, die branchenspezifische empfohlene Praktiken implementieren.