Actualizare la cea mai recentă versiune

API-ul Google Pay a introdus noi structuri de obiecte pentru obiectele PaymentDataRequest și IsReadyToPayRequest în iulie 2018. Acest ghid explică cum se actualizează obiectele formatate pentru versiunea 1 a API-ului Google Pay la obiecte formatate pentru versiunea 2.

Metode de plată

O versiune API este specificată pentru fiecare obiect de solicitare în versiunea 2 a API-ului Google Pay.

Versiunea 1 a API-ului Google Pay accepta cardurile ca unică formă de plată. Metoda de plată CARD este una dintre multiplele opțiuni de metodă de plată posibile în versiunea 2 a API-ului Google Pay. Site-urile care anterior specificau o valoare allowedPaymentMethods de CARD trebuie acum să seteze o valoare allowedAuthMethods de PAN_ONLY . Site-urile care anterior specificau o valoare allowedPaymentMethods de TOKENIZED_CARD trebuie acum să seteze o valoare allowedAuthMethods de CRYPTOGRAM_3DS .

Rețelele de carduri permise sunt specificate alături de metodele de autentificare acceptate pentru cardurile din rețelele respective.

Versiunea api 1

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

apiVersiunea 2

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

Rețelele de carduri permise și metodele lor de autentificare sunt incluse într-o cerere IsReadyToPayRequest pentru o metodă de plată CARD .

Tokenizarea datelor de plată cu cardul

API-ul Google Pay returnează date criptate ale cardului, la care se face referire prin gateway-ul specificat sau care sunt decriptate pe serverele dvs. Versiunea 2 a API-ului Google Pay mutătokenizarea metodei de plată în cadrul metodei de plată CARD .

Versiunea api 1

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

apiVersiunea 2

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

ID-ul comerciantului Google

Un ID de comerciant Google era o proprietate de nivel superior în versiunea 1 a API-ului Google Pay. Acum, ID-ul de comerciant Google este plasat într-un obiect MerchantInfo cu un nume de comerciant opțional.

Versiunea api 1

{
  merchantId: '12345678901234567890'
}

apiVersiunea 2

{
  merchantInfo: {
    merchantId: '12345678901234567890'
  }
}

Adresa de facturare

O adresă de facturare opțională și un număr de telefon pentru facturare sunt asociate unei metode de plată CARD . Dacă un site solicită o adresă de facturare, orice configurație legată de răspunsul așteptat este plasată într-un obiect BillingAddressParameters .

Versiunea api 1

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

apiVersiunea 2

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

Adresa de transport

O cerință opțională privind adresa de livrare rămâne la nivelul superior al obiectului PaymentDataRequest . Proprietatea shippingAddressRequirements a fost redenumită shippingAddressParameters .

Răspunsurile anterioare ale API-ului Google Pay ar fi putut returna un număr de telefon ca parte a adresei de livrare atunci când se solicita un număr de telefon. Un număr de telefon pentru livrare nu mai este acceptat de API-ul Google Pay în nicio versiune. Orice gestionare a răspunsurilor care așteaptă un număr de telefon pentru livrare trebuie actualizată.

Versiunea api 1

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

apiVersiunea 2

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

Răspuns PaymentData

Răspunsul obiectului PaymentData pentru site-urile care setează o valoare a proprietății apiVersion de 2 în PaymentDataRequest s-a modificat pentru a face referire la carduri ca unul dintre multiplele răspunsuri posibile privind datele de plată. Proprietățile apiVersion și apiVersionMinor incluse în obiectul PaymentDataRequest apar în răspunsul PaymentData pentru a indica formatul așteptat.

Versiunea api 1

{
  // no version specified
}

apiVersiunea 2

{
  apiVersion: 2,
  apiVersionMinor: 0
}

Informațiile despre o metodă de plată selectată și tokenizarea acesteia sunt plasate în proprietatea paymentMethodData . Două proprietăți au fost eliminate din obiectul cardInfo al metodei de plată cu cardul: cardClass și cardImageUri .

Versiunea api 1

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

apiVersiunea 2

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

Răspuns la mesaj criptat

Site-urile care specifică un tip de tokenizare pentru metoda de plată DIRECT și acceptă o metodă de plată API versiunea 1 de tip TOKENIZED_CARD trebuie să actualizeze modul în care gestionează proprietatea encryptedMessage decriptată. Site-ul trebuie să facă acest lucru pentru a continua să redirecționeze token-urile dispozitivelor Android autentificate cu o criptogramă 3-D Secure și un indicator opțional de comerț electronic (ECI) către gateway-ul sau procesatorul dvs. Cardurile sunt o paymentMethod ) a CARD , cu informații suplimentare despre metoda de autentificare a cardului selectat în paymentMethodDetails.authMethod .

Versiunea api 1

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

apiVersiunea 2

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