Method: captureResultNotification

Benachrichtigen Sie Google über das Ergebnis einer Erfassung, nachdem ein capture- oder asynchronousCapture-Methodenaufruf durchgeführt wurde.

Der captureResult-Wert ist für diese captureRequestId idempotent. Daher kann sein Wert nicht durch einen nachfolgenden Aufruf dieser Methode geändert werden.

Wenn am Endpunkt bei der Verarbeitung der Anfrage ein Fehler auftritt, ist die Antwort dieses Endpunkts vom Typ ErrorResponse.

Die Antworten auf diese Abfrage sind möglicherweise leer, wenn diese Methode keinen HTTP 200-Fehler zurückgibt. Der Antworttext ist leer, wenn ein ErrorResponse mit einer eindeutigen Beschreibung verwendet werden könnte, um einem Angreifer zu helfen, die Kennung des Zahlungsintegrators anderer Integratoren zu verstehen. In Situationen, in denen der Signaturschlüssel nicht übereinstimmt, die Zahlungsintegrator-ID nicht gefunden wurde oder der Verschlüsselungsschlüssel unbekannt war, gibt diese Methode einen HTTP 404-Fehler mit einem leeren Text zurück. Wenn die Anfragesignatur verifiziert werden konnte, werden im Antworttext zusätzliche Informationen zum Fehler zurückgegeben.

Eine Beispielanfrage sieht so aus:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "KcgwSKrV76eVNDUbsZ4UA3",
    "requestTimestamp": "1481852928293"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "awNaC510cefae3IJdNEvW2",
  "captureResult": {
    "captureResultCode": "SUCCESS"
  }
}

Eine Beispielantwort sieht so aus:


{
  "responseHeader": {
    "responseTimestamp": "1481852928324"
  },
  "result": "SUCCESS"
}

HTTP-Anfrage

POST https://vgw.googleapis.com/secure-serving/gsp/v1/captureResultNotification/:PIAID

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

JSON-Darstellung
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "captureResult": {
    object (CaptureResult)
  },
  "paymentIntegratorTransactionId": string
}
Felder
requestHeader

object (RequestHeader)

ERFORDERLICH: Gemeinsamer Header für alle Anfragen.

paymentIntegratorAccountId

string

ERFORDERLICH: Die Konto-ID des Zahlungsintegrators, für die die Erfassung erfolgte.

captureRequestId

string

ERFORDERLICH: Eine eindeutige Kennung für diese Transaktion. Das ist die requestId, die von Google während des capture- oder asynchronousCapture-Aufrufs generiert wurde, mit dem diese Anfrage verknüpft ist.

Dieser String hat eine maximale Länge von 100 Zeichen und enthält nur die Zeichen „a–z“, „A–Z“, „0–9“, ":", „-“ und „_“.

captureResult

object (CaptureResult)

REQUIRED: Ergebnis dieser Aufnahme.

paymentIntegratorTransactionId

string

OPTIONAL: Diese Kennung ist für den Integrator spezifisch und wird vom Integrator generiert. Dies ist die Kennung, anhand derer der Integrator diese Transaktion erkennt.

Der Einfachheit halber ist diese ID in den Überweisungsdetails enthalten.

Antworttext

Antwortobjekt für die Methode captureResultNotification.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

JSON-Darstellung
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (CaptureResultNotificationResultCode)
}
Felder
responseHeader

object (ResponseHeader)

ERFORDERLICH: Gemeinsamer Header für alle Antworten.

result

enum (CaptureResultNotificationResultCode)

REQUIRED: Ergebnis dieses Aufrufs.

CaptureResult

Informationen zum Endergebnis einer Aufnahme.

JSON-Darstellung
{
  "captureResultCode": enum (CaptureResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string,
  "currentBalance": string
  // End of list of possible types for union field FailureDetail.
}
Felder
captureResultCode

enum (CaptureResultCode)

REQUIRED: Ergebniscode dieser Aufnahme.

rawResult

object (RawResult)

OPTIONAL: Rohergebnis dieser Aufnahme. Wird zur Verbesserung der Risikoanalyse und der Risikoanalyse von Google verwendet. Bei abgelehnten Codezuordnungen gehen Daten manchmal verloren. Der Integrator kann Google einen Rohcode zur Verfügung stellen. Beispielsweise kann ein Kreditkarten-Gateway (der Integrationspartner) dieses Feld verwenden, um Google den genauen Ablehnungscode mitzuteilen, der vom VISA-Netzwerk erhalten wurde. In diesem Fall wäre die scope „Visum“. und rawCode entspricht dem Betrag, der vom VISA-Netzwerk zurückgegeben wurde.

Dieser Wert ist erforderlich, wenn result nicht SUCCESS ist.

Union-Feld FailureDetail.

Für FailureDetail ist nur einer der folgenden Werte zulässig:

transactionMaxLimit

string (Int64Value format)

OPTIONAL: Wenn captureResultCode gleich CHARGE_EXCEEDS_TRANSACTION_LIMIT ist, ist dies der Wert der maximal zulässigen Transaktion. Sie wird für strukturierte, an den Nutzer gerichtete Mitteilungen und für die Analyse der Ablehnungsrate verwendet.

Dieser Wert entspricht Mikros desselben currencyCode wie der ursprüngliche Methodenaufruf capture oder asynchronousCapture.

transactionMinLimit

string (Int64Value format)

OPTIONAL: Wenn captureResultCode gleich CHARGE_UNDER_TRANSACTION_LIMIT ist, ist dies der Wert der minimal zulässigen Transaktion. Sie wird für strukturierte, an den Nutzer gerichtete Mitteilungen und für die Analyse der Ablehnungsrate verwendet.

Dieser Wert entspricht Mikros desselben currencyCode wie der ursprüngliche Methodenaufruf capture oder asynchronousCapture.

currentBalance

string (Int64Value format)

OPTIONAL: Wenn das Ergebnis INSUFFICIENT_FUNDS ist, ist dies das aktuell verfügbare Guthaben im Konto des Nutzers (in Mikros). Sie wird für strukturierte, an den Nutzer gerichtete Werbebotschaften verwendet.

Dieser Wert muss dieselbe Währung haben wie die currencyCode in der Anfrage.

CaptureResultCode

Ergebniscodes für eine Aufnahme.

Enums
UNKNOWN_RESULT Legen Sie diesen Standardwert niemals fest.
SUCCESS Aufnahme erfolgreich.
CHARGE_UNDER_TRANSACTION_LIMIT Der angeforderte Erfassungsbetrag entspricht nicht dem Mindestwert pro Transaktion des Integrators. Wenn dieser Code verwendet wird, geben Sie in das Feld transactionMinLimit den Mindesttransaktionsbetrag für Mitteilungen an Nutzer ein.
CHARGE_EXCEEDS_TRANSACTION_LIMIT Der angeforderte Erfassungsbetrag überschreitet das Limit des Integrators pro Transaktion. Wenn dieser Code verwendet wird, geben Sie in das Feld transactionMaxLimit das Transaktionslimit für Mitteilungen an Nutzer ein.
CHARGE_EXCEEDS_DAILY_LIMIT Das Nutzerkonto kann momentan nicht für Käufe verwendet werden, da das Tageslimit bereits überschritten wurde.
CHARGE_EXCEEDS_MONTHLY_LIMIT Das Nutzerkonto kann momentan nicht für Käufe verwendet werden, da das monatliche Limit überschritten wurde.
INSUFFICIENT_FUNDS Das Konto ist nicht ausreichend gedeckt, um diese Aufnahme zu garantieren.
SUSPECTED_FRAUD Der Integrator hat Grund zur Annahme, dass diese Transaktion betrügerisch ist.
ACCOUNT_CLOSED Das beim Integrator geführte Nutzerkonto wurde geschlossen. Dieser Rückgabewert führt dazu, dass das Zahlungsmittel des Nutzers mit Google geschlossen wird. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Das Nutzerkonto beim Integrator wurde geschlossen, da eine Kontoübernahme vermutet wird. Dieser Rückgabewert führt dazu, dass das Zahlungsmittel des Nutzers mit Google geschlossen wird. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen.
ACCOUNT_CLOSED_FRAUD Das Nutzerkonto beim Integrator wurde wegen Betrugs geschlossen. Dieser Rückgabewert führt dazu, dass das Zahlungsmittel des Nutzers mit Google geschlossen wird. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen.
ACCOUNT_ON_HOLD Das Konto des Nutzers wurde auf „Hold“ gesetzt.
OTP_NOT_MATCHED Das OTP stimmte nicht mit den vom Integrator gesendeten Informationen überein.
OTP_ALREADY_USED OTP wurde bereits verwendet.
CAPTURE_REQUEST_EXPIRED Es hat zu lange gedauert, bis der Integrator die Finanzmittel des Nutzers erfasst hat. Google betrachtet diese Ablehnung als endgültig. Daher muss der Integrator dafür sorgen, dass das Geld des Nutzers später nicht einbehalten wird oder dass der Nutzer im Falle einer erfolgreichen Erfassung automatisch eine Erstattung erhält.
INVALID_PIN Der Nutzer hat eine ungültige PIN eingegeben.
OS_LOCK_FAILED Für diesen Zahlungsablauf ist eine Sicherheitsabfrage des Betriebssystems erforderlich und der Nutzer konnte das Gerät nicht entsperren.
PIN_ENTRY_ATTEMPTS_EXHAUSTED Für diesen Zahlungsablauf muss der Nutzer seine PIN eingeben. Der Nutzer hat die PIN-Eingabe so oft nicht eingegeben, dass keine Wiederholungsversuche mehr möglich waren.
USER_EXITED_PAYMENT_FLOW Der Nutzer hat den gesamten Zahlungsversuch abgebrochen (entweder über die Betriebssystemsperre oder den PIN-Eingabebildschirm).
MONTHLY_FREQUENCY_LIMIT_EXCEEDED Das Konto des Nutzers kann momentan nicht für Käufe verwendet werden, da das monatliche Limit für Transaktionsversuche überschritten wurde.
DECLINED_BY_ISSUER

Dieser Ablehnungscode sollte niemals im stabilen Zustand verwendet werden. Er ist als vorübergehender Catchall-Code gedacht, der verwendet wird, wenn der Integrator auf einen unbekannten Ablehnungscode vom zugrunde liegenden Aussteller des Zahlungsmittels des Nutzers stößt. Dieser Ergebniscode kann verwendet werden, während der Integrator einen besser geeigneten Ergebniscode ermittelt oder das Hinzufügen eines neuen Ergebniscodes zu dieser Spezifikation aushandelt.

Wichtig ist, dass es sich bei diesem Ablehnungscode in erster Linie um eine reale Ablehnung handelt. Für Google ist dies ein dauerhafter Rückgang. Wenn der Integrator diese Antwort zurückgibt, muss er herausfinden, was der Code des Ausstellers wirklich bedeutet, und dem Nutzer eine Erstattung gewähren, wenn der Code tatsächlich SUCCESS bedeutet.

Wenn dieser Ablehnungscode länger als eine bestimmte Anzahl von Tagen für denselben zugrunde liegenden Ablehnungscode verwendet wird, behandelt Google ihn als Fehler und verfolgt ihn im Hinblick auf Vertragsstrafen im Hinblick auf die Behebung von Fehlern entsprechend.

RawResult

Rohergebnisobjekt.

JSON-Darstellung
{
  "scope": string,
  "rawCode": string
}
Felder
scope

string

OPTIONAL: Gültigkeitsbereich von rawCode, kann leer sein.

rawCode

string

ERFORDERLICH: Rohcode vom Integrator oder den enthaltenen Subsystemen.

CaptureResultNotificationResultCode

Ergebniscodes für die Methode captureResultNotification.

Enums
UNKNOWN_RESULT Legen Sie diesen Standardwert niemals fest.
SUCCESS Die Benachrichtigung über das Aufnahmeergebnis wurde verarbeitet.