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