Method: captureResultNotification

Benachrichtigen Sie Google nach dem Aufruf einer Methode capture oder asynchronousCapture über das Ergebnis einer Aufnahme.

Der Wert captureResult ist für diese captureRequestId idempotent, d. h., er kann durch einen nachfolgenden Aufruf dieser Methode nicht geändert werden.

Wenn beim Verarbeiten der Anfrage ein Fehler auftritt, hat die Antwort vom Endpunkt ErrorResponse.

Die Antworten auf diese Abfrage können leer sein, wenn die Methode kein HTTP 200 zurückgibt. Der Antworttext ist leer, wenn ein ErrorResponse mit einer klaren Beschreibung verwendet werden könnte, um einem Angreifer die Identifizierung des Zahlungsintegrators mit anderen Integratoren zu erleichtern. Wenn der Signaturschlüssel nicht übereinstimmt, die Zahlungsintegrations-ID nicht gefunden wurde oder der Verschlüsselungsschlüssel unbekannt ist, gibt diese Methode einen HTTP 404-Code mit leerem Text zurück. Wenn die Anfragesignatur verifiziert werden kann, werden zusätzliche Informationen zum Fehler im Antworttext 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)

REQUIRED: Allgemeiner Header für alle Anfragen.

paymentIntegratorAccountId

string

ERFORDERLICH: Die ID des Zahlungsintegrationskontos, für das die Erfassung erfolgt ist.

captureRequestId

string

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

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

captureResult

object (CaptureResult)

ERFORDERLICH: Ergebnis der Aufnahme.

paymentIntegratorTransactionId

string

OPTIONAL: Diese Kennung wird für den Integrator verwendet und generiert. Das ist die Kennung, mit der der Integrationspartner diese Transaktion kennt.

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)

REQUIRED: Allgemeiner Header für alle Antworten.

result

enum (CaptureResultNotificationResultCode)

ERFORDERLICH: Ergebnis des Anrufs.

Aufnahmeergebnis

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)

ERFORDERLICH: Ergebniscode dieser Aufnahme.

rawResult

object (RawResult)

OPTIONAL: Unformatiertes Ergebnis dieser Aufnahme. Wird verwendet, um die Risiko-Engine und Analysen von Google zu unterstützen. Bei der Ablehnung von Codezuordnungen gehen Daten manchmal verloren. Dieser kann Google einen Rohcode geben. Über ein Kreditkarten-Gateway (Integrator) kann beispielsweise dieses Feld verwendet werden, um Google über den genauen Ablehnungscode zu informieren, der vom VISA-Netzwerk empfangen wurde. In diesem Fall wäre das scope „visa“ und das rawCode das vom VISA-Netzwerk zurückgegebene Element.

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 den Wert CHARGE_EXCEEDS_TRANSACTION_LIMIT hat, ist dies der Wert der maximal zulässigen Transaktion. Er wird für strukturierte, nutzerbezogene Werbebotschaften und die Analyse der Ablehnungsrate verwendet.

Dieser Betrag ist micros des gleichen currencyCode wie der ursprüngliche capture- oder asynchronousCapture-Methodenaufruf.

transactionMinLimit

string (Int64Value format)

OPTIONAL: Wenn captureResultCode den Wert CHARGE_UNDER_TRANSACTION_LIMIT hat, ist dies der Wert der zulässigen Mindesttransaktion. Er wird für strukturierte, nutzerbezogene Werbebotschaften und die Analyse der Ablehnungsrate verwendet.

Dieser Betrag ist micros des gleichen currencyCode wie der ursprüngliche capture- oder asynchronousCapture-Methodenaufruf.

currentBalance

string (Int64Value format)

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

Dieser Wert muss in derselben Währung angegeben werden wie der currencyCode in der Anfrage.

CaptureResultCode

Ergebniscodes für eine Aufnahme

Enums
UNKNOWN_RESULT Legen Sie diesen Standardwert nie fest.
SUCCESS Aufnahme erfolgreich.
CHARGE_UNDER_TRANSACTION_LIMIT Der angeforderte Aufnahmebetrag entspricht nicht dem Mindestbetrag des Integrationspartners pro Transaktion. Wenn dieser Code verwendet wird, füllen Sie das Feld transactionMinLimit mit dem Mindesttransaktionsbetrag für Nutzermitteilungen aus.
CHARGE_EXCEEDS_TRANSACTION_LIMIT Der angeforderte Aufnahmebetrag überschreitet das maximale Transaktionslimit des Integrationspartners. Wenn dieser Code verwendet wird, füllen Sie das Feld transactionMaxLimit mit dem Transaktionslimit für Nutzermitteilungen aus.
CHARGE_EXCEEDS_DAILY_LIMIT Das Nutzerkonto kann nicht für Käufe verwendet werden, da das Tageslimit überschritten wurde.
CHARGE_EXCEEDS_MONTHLY_LIMIT Das Nutzerkonto kann 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 sichern.
SUSPECTED_FRAUD Der Integrator hat Grund zu der Annahme, dass diese Transaktion betrügerisch ist.
ACCOUNT_CLOSED Das mit dem Integrationsinhaber verknüpfte Konto wurde geschlossen. Dieser Wert führt dazu, dass das Zahlungsmittel des Nutzers bei Google geschlossen wird. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Das Nutzerkonto des Integrationspartners wurde geschlossen. Verdacht auf eine Kontoübernahme. Dieser Wert führt dazu, dass das Zahlungsmittel des Nutzers bei Google geschlossen wird. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen.
ACCOUNT_CLOSED_FRAUD Das Nutzerkonto des Integrationspartners wurde wegen Betrugs geschlossen. Dieser Wert führt dazu, dass das Zahlungsmittel des Nutzers bei Google geschlossen wird. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen.
ACCOUNT_ON_HOLD Das Konto des Nutzers ist vorübergehend deaktiviert.
OTP_NOT_MATCHED Das OTP entsprach nicht dem, was der Integrator gesendet hat.
OTP_ALREADY_USED OTP wurde bereits verwendet.
CAPTURE_REQUEST_EXPIRED Es hat zu lange gedauert, bis der Integrator die Gelder des Nutzers erfasst hat. Google behandelt diese Ablehnung als endgültigen Status. Der Integrator muss also dafür sorgen, dass das Geld des Nutzers nicht später eingeholt wird oder dass der Nutzer automatisch eine Erstattung erhält, wenn die Erfassung abgeschlossen ist.
INVALID_PIN Der Nutzer hat eine ungültige PIN angegeben.
OS_LOCK_FAILED Für diesen Zahlungsvorgang ist eine Identitätssperre erforderlich und der Nutzer konnte das Gerät nicht entsperren.
PIN_ENTRY_ATTEMPTS_EXHAUSTED Bei diesem Zahlungsvorgang muss die PIN des Nutzers eingegeben werden. Der Nutzer hat die PIN-Eingabe so oft wiederholt, dass keine Wiederholungen mehr möglich waren.
USER_EXITED_PAYMENT_FLOW Der Nutzer hat den gesamten Zahlungsversuch abgebrochen (entweder bei der Betriebssystemsperre oder auf dem Bildschirm zur PIN-Eingabe).
MONTHLY_FREQUENCY_LIMIT_EXCEEDED Das Konto des Nutzers kann derzeit nicht für Käufe verwendet werden, da das monatliche Limit für Transaktionsversuche überschritten wurde.
DECLINED_BY_ISSUER

Dieser Ablehnungscode sollte nie im stabilen Zustand verwendet werden. Es handelt sich um einen vorübergehenden Catchall-Code, der verwendet wird, wenn der Integrationspartner einen unbekannten Ablehnungscode vom zugrunde liegenden Aussteller des Gerätes des Nutzers erkennt. Dieser Ergebniscode kann verwendet werden, während der Integrator einen geeigneteren Ergebniscode ermittelt, der verwendet werden kann, oder mit dem Aushandeln eines neuen Ergebniscodes in diese Spezifikation verhandelt.

Dieser Ablehnungscode ist jedoch eine echte Ablehnung. Dies gilt für Google dauerhaft. Wenn der Integrator dies 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 Ablehnungscode verwendet wird, behandelt Google ihn als Programmfehler und verfolgt ihn in Bezug auf vertragliche Strafen bezüglich der Behebung von Programmfehlern entsprechend.

Rohergebnis

Ergebnisobjekt.

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

string

OPTIONAL: Der Bereich des RawCode-Bereichs kann leer sein.

rawCode

string

ERFORDERLICH: Der Rohcode des Integrations- oder untergeordneten Systems.

Screenshot: ResultResultResultCode

Ergebniscodes für die Methode captureResultNotification.

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