Aggiorna all'ultima versione

L'API Google Pay ha introdotto nuove strutture di oggetti per PaymentDataRequest e IsReadyToPayRequest a luglio 2018. Questa guida spiega come aggiornare gli oggetti formattati per la versione 1 dell'API Google Pay agli oggetti formattati per la versione 2.

Metodi di pagamento

Una versione dell'API viene specificata con ogni oggetto richiesta nella versione 2 dell'API Google Pay.

La versione 1 dell'API Google Pay supportava le carte come unica forma di pagamento. Il CARD metodo di pagamento è una delle varie opzioni possibili per il metodo di pagamento nella versione 2 dell'API Google Pay. I siti che in precedenza specificavano un valore allowedPaymentMethods pari a CARD ora devono impostare un valore allowedAuthMethods pari a PAN_ONLY. I siti che in precedenza specificavano un valore allowedPaymentMethods di TOKENIZED_CARD ora devono impostare un valore allowedAuthMethods di CRYPTOGRAM_3DS.

Le reti di carte consentite sono specificate insieme ai metodi di autenticazione supportati per le carte su queste reti.

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'
      ]
    }
  }]
}

Le reti di carte consentite e i relativi metodi di autenticazione sono inclusi in un IsReadyToPayRequest per un CARD metodo di pagamento.

Tokenizzazione dei dati di pagamento con carta

L'API Google Pay restituisce i dati della carta criptati a cui fa riferimento il gateway specificato o decriptati sui tuoi server. La versione 2 dell'API Google Pay sposta la tokenizzazione del metodo di pagamento all'interno del metodo di pagamento CARD.

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'
      }
    }
  }]
}

ID commerciante Google

Un ID commerciante Google era una proprietà di primo livello nella versione 1 dell'API Google Pay. Ora, l'ID commerciante Google viene inserito all'interno di un oggetto MerchantInfo con un nome commerciante facoltativo.

apiVersion 1

{
  merchantId: '12345678901234567890'
}

apiVersion 2

{
  merchantInfo: {
    merchantId: '12345678901234567890'
  }
}

Indirizzo di fatturazione

Un indirizzo di fatturazione e un numero di telefono di fatturazione facoltativi sono associati a un metodo di pagamento CARD. Se un sito richiede un indirizzo di fatturazione, qualsiasi configurazione correlata alla risposta prevista viene inserita all'interno di un oggetto BillingAddressParameters.

apiVersion 1

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

apiVersion 2

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

Indirizzo di spedizione

Un requisito facoltativo per l'indirizzo di spedizione rimane al livello superiore dell'oggetto PaymentDataRequest. La proprietà shippingAddressRequirements è stata rinominata shippingAddressParameters.

Le risposte precedenti dell'API Google Pay potrebbero aver restituito un numero di telefono come parte dell'indirizzo di spedizione quando è stato richiesto un numero di telefono. Un numero di telefono per la spedizione non è più supportato dall'API Google Pay in nessuna versione. Tutti i gestori delle risposte che prevedono un numero di telefono per la spedizione devono essere aggiornati.

apiVersion 1

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

apiVersion 2

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

Risposta PaymentData

La risposta dell'oggetto PaymentData per i siti che impostano un valore della proprietà apiVersion pari a 2 in PaymentDataRequest è stata modificata in modo da fare riferimento alle carte come una delle possibili risposte dei dati di pagamento. Le proprietà apiVersion e apiVersionMinor incluse nell'oggetto PaymentDataRequest vengono visualizzate nella risposta PaymentData per indicare il formato previsto.

apiVersion 1

{
  // no version specified
}

apiVersion 2

{
  apiVersion: 2,
  apiVersionMinor: 0
}

Le informazioni su un metodo di pagamento selezionato e sulla sua tokenizzazione vengono inserite all'interno della proprietà paymentMethodData. Sono state rimosse due proprietà dall'oggetto cardInfo del metodo di pagamento con carta: cardClass e 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'
    }
  }
}

Risposta al messaggio criptato

I siti che specificano un tipo di tokenizzazione del metodo di pagamento DIRECT e accettano un metodo di pagamento API versione 1 di TOKENIZED_CARD devono aggiornare la modalità di gestione della proprietà encryptedMessage decrittografata. Il sito deve farlo per continuare a inoltrare i token del dispositivo Android autenticati con un criptogramma 3-D Secure e l'indicatore di commercio elettronico (ECI) facoltativo al tuo gateway o processore. Le schede sono un paymentMethod di CARD, con ulteriori informazioni sul metodo di autenticazione della carta selezionata in paymentMethodDetails.authMethod.

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"
  }
}