Auf aktuelle Version aktualisieren

Im Juli 2018 wurden in der Google Pay API neue Objektstrukturen für PaymentDataRequest- und IsReadyToPayRequest-Objekte eingeführt. In diesem Leitfaden wird erläutert, wie Sie Objekte, die für die Google Pay API Version 1 formatiert sind, in Objekte umwandeln, die für Version 2 formatiert sind.

Zahlungsmethoden

In Version 2 der Google Pay API wird mit jedem Anfrageobjekt eine API-Version angegeben.

In Version 1 der Google Pay API wurden nur Karten als Zahlungsmittel unterstützt. Die Zahlungsmethode CARD ist eine von mehreren möglichen Zahlungsmethoden in Version 2 der Google Pay API. Auf Websites, auf denen zuvor ein allowedPaymentMethods-Wert von CARD angegeben wurde, muss jetzt ein allowedAuthMethods-Wert von PAN_ONLY festgelegt werden. Auf Websites, auf denen zuvor ein allowedPaymentMethods-Wert von TOKENIZED_CARD angegeben wurde, muss jetzt ein allowedAuthMethods-Wert von CRYPTOGRAM_3DS festgelegt werden.

Zulässige Kartennetzwerke werden zusammen mit den unterstützten Authentifizierungsmethoden für Karten in diesen Netzwerken angegeben.

apiVersion 1

{
  allowedPaymentMethods: [
    'CARD',
    'TOKENIZED_CARD'
  ],
  cardRequirements: {
    allowedCardNetworks: [
      'AMEX',
      'DISCOVER',
      'JCB',
      'MASTERCARD',
      'VISA'
    ]
  }
}

apiVersion 2

{
  apiVersion: 2,
  apiVersionMinor: 0,
  allowedPaymentMethods: [{
    type: 'CARD',
    parameters: {
      allowedAuthMethods: [
        'PAN_ONLY',
        'CRYPTOGRAM_3DS'
      ],
      allowedCardNetworks: [
        'AMEX',
        'DISCOVER',
        'JCB',
        'MASTERCARD',
        'VISA'
      ]
    }
  }]
}

Zulässige Kartennetzwerke und ihre Authentifizierungsmethoden sind in einem IsReadyToPayRequest für eine CARD Zahlungsmethode enthalten.

Tokenisierung von Kartenzahlungsdaten

Die Google Pay API gibt verschlüsselte Kartendaten zurück, auf die von Ihrem angegebenen Gateway verwiesen wird oder die auf Ihren Servern entschlüsselt werden. In Version 2 der Google Pay API wird die Tokenisierung der Zahlungsmethode in die CARD-Zahlungsmethode verschoben.

apiVersion 1

{
  paymentMethodTokenizationParameters: {
    tokenizationType: 'PAYMENT_GATEWAY',
    parameters: {
      'gateway': 'example',
      'gatewayMerchantId': 'exampleMerchantId'
    }
  }
}

apiVersion 2

{
  allowedPaymentMethods: [{
    type: 'CARD',
    tokenizationSpecification: {
      type: 'PAYMENT_GATEWAY',
      parameters: {
        'gateway': 'example',
        'gatewayMerchantId': 'exampleMerchantId'
      }
    }
  }]
}

Google-Verkäufer-ID

Eine Google-Händler-ID war eine Eigenschaft der obersten Ebene in Version 1 der Google Pay API. Die Google-Händler-ID befindet sich jetzt in einem MerchantInfo-Objekt mit einem optionalen Händlernamen.

apiVersion 1

{
  merchantId: '12345678901234567890'
}

apiVersion 2

{
  merchantInfo: {
    merchantId: '12345678901234567890'
  }
}

Rechnungsadresse

Mit einer CARD-Zahlungsmethode sind eine optionale Rechnungsadresse und eine Telefonnummer für die Abrechnung verknüpft. Wenn eine Website eine Rechnungsadresse anfordert, wird jede Konfiguration, die sich auf die erwartete Antwort bezieht, in einem BillingAddressParameters-Objekt platziert.

apiVersion 1

{
  cardRequirements: {
    billingAddressRequired: true,
    billingAddressFormat: 'FULL'
  },
  phoneNumberRequired: true
}

apiVersion 2

{
  allowedPaymentMethods: [{
    type: 'CARD',
    parameters: {
      billingAddressRequired: true,
      billingAddressParameters: {
        format: 'FULL',
        phoneNumberRequired: true
      }
    }
  }]
}

Versandadresse

Eine optionale Anforderung für die Versandadresse bleibt auf der obersten Ebene des PaymentDataRequest-Objekts. Das Attribut shippingAddressRequirements wurde in shippingAddressParameters umbenannt.

In früheren Google Pay API-Antworten wurde möglicherweise eine Telefonnummer als Teil der Versandadresse zurückgegeben, wenn eine Telefonnummer angefordert wurde. Eine Telefonnummer für den Versand wird von der Google Pay API in keiner Version mehr unterstützt. Alle Antwort-Handler, die eine Telefonnummer für den Versand erwarten, müssen aktualisiert werden.

apiVersion 1

{
  shippingAddressRequired: true,
  shippingAddressRequirements: {
    allowedCountryCodes: [
      'US',
      'CA'
    ]
  }
}

apiVersion 2

{
  shippingAddressRequired: true,
  shippingAddressParameters: {
    allowedCountryCodes: [
      'US',
      'CA'
    ]
  }
}

PaymentData-Antwort

Die Antwort des PaymentData-ObjektsapiVersion für Websites, die einen 2-Property-Wert in PaymentDataRequest festlegen, wurde geändert. Sie verweist jetzt auf Karten als eine von mehreren möglichen Antworten für Zahlungsdaten. Die Attribute apiVersion und apiVersionMinor, die im Objekt PaymentDataRequest enthalten sind, werden in der Antwort PaymentData angezeigt, um das erwartete Format anzugeben.

apiVersion 1

{
  // no version specified
}

apiVersion 2

{
  apiVersion: 2,
  apiVersionMinor: 0
}

Informationen zu einer ausgewählten Zahlungsmethode und ihrer Tokenisierung werden in der Eigenschaft paymentMethodData platziert. Zwei Attribute wurden aus dem cardInfo-Objekt der Kartenzahlungsmethode entfernt: cardClass und cardImageUri.

apiVersion 1

{
  cardInfo: {
    cardDescription: 'Visa •••• 1234',
    cardNetwork: 'VISA',
    cardDetails: 1234
  },
  paymentMethodToken: {
    tokenizationType: 'PAYMENT_GATEWAY',
    token: 'examplePaymentMethodToken'
  }
}

apiVersion 2

{
  paymentMethodData: {
    type: 'CARD',
    description: 'Visa •••• 1234',
    info: {
      cardNetwork: 'VISA',
      cardDetails: '1234'
    },
    tokenizationData: {
      type: 'PAYMENT_GATEWAY',
      token: 'examplePaymentMethodToken'
    }
  }
}

Antwort auf eine verschlüsselte Nachricht

Websites, auf denen der Tokenisierungstyp für die Zahlungsmethode DIRECT angegeben ist und die eine API-Version 1-Zahlungsmethode vom Typ TOKENIZED_CARD akzeptieren, müssen die Verarbeitung der entschlüsselten encryptedMessage-Eigenschaft aktualisieren. Die Website muss dies tun, um weiterhin mit einem 3‑D Secure-Kryptogramm authentifizierte Android-Gerätetokens und optional den E‑Commerce-Indikator (ECI) an Ihr Gateway oder Ihren Abwickler weiterzuleiten. Karten sind eine paymentMethod von CARD. In paymentMethodDetails.authMethod finden Sie zusätzliche Informationen zur Authentifizierungsmethode der ausgewählten Karte.

apiVersion 1

{
  "paymentMethod": "TOKENIZED_CARD",
  "paymentMethodDetails": {
    "authMethod": "3DS",
    "dpan": "1111222233334444",
    "expirationMonth": 10,
    "expirationYear": 2020,
    "3dsCryptogram": "AAAAAA...",
    "3dsEciIndicator": "eci indicator"
  }
}

apiVersion 2

{
  "paymentMethod": "CARD",
  "paymentMethodDetails": {
    "authMethod": "CRYPTOGRAM_3DS",
    "pan": "1111222233334444",
    "expirationMonth": 10,
    "expirationYear": 2020,
    "cryptogram": "AAAAAA...",
    "eciIndicator": "eci indicator"
  }
}