Integration Types
Altre funzionalità
Card Payments
Mobile Wallets
Alternative Payment Methods
Resources
Google Pay™ è un servizio di pagamento e wallet digitale di Google che consente di offrire ai paganti un'esperienza di checkout online fluida in app Android e sull'Internet mobile, utilizzando modalità di pagamento salvate sull'account Google o sul dispositivo Android. Google Pay è una delle modalità di pagamento tramite dispositivo supportate nel Mastercard Gateway.
In questa pagina viene descritto come elaborare i pagamenti Google Pay tramite dispositivo. Si consiglia di leggere le Linee guida per l'integrazione per il pagamento tramite dispositivo prima di creare un'integrazione Google Pay.
Il Mastercard Gateway offre Google Pay a partire da DirectAPI versione 47 e successiva.
Per accettare pagamenti Google Pay:
È possibile integrare Google Pay nell'app mobile o sulla pagina di checkout del proprio sito Web utilizzando Direct Payment.
Se si desidera assumersi la responsabilità per la decrittografia del token del pagamento sul proprio server, vedere Decrittografia del token di pagamento.
tokenizationSpecification
dell'API Google Pay: type
): Impostarlo su PAYMENT_GATEWAY
gateway
) Impostarlo su mpgs
gatewayMerchantId
): un identificativo univoco dell'esercente che può essere utilizzato dal gateway per verificare e identificare l'esercente al momento della decrittografia del token di pagamento. Tale identificativo dell'esercente deve essere lo stesso del merchantId
inviato con la richiesta API del gateway.Una volta completata l'interazione del pagante con l'interfaccia utente di Google Pay, l'esercente riceverà un payload contenente un token di pagamento crittografato firmato da Google. Il token di pagamento verrà emesso per un pagamento tramite dispositivo o un pagamento con carta.
allowedAuthMethods
su PAN_ONLY
nell'oggetto allowedPaymentMethods
dell'API di Google Pay.Check Enrollment
.order.walletProvider
=GOOGLE_PAY
sourceOfFunds.provided.card.devicePayment.paymentToken
: Il token di pagamento crittografato ottenuto dall'SDK Google Pay.Il gateway decodificherà il token di pagamento e, se contiene un FPAN, la richiesta 3DS Check Enrollment
procederà. Se il token di pagamento contiene un DPAN, la richiesta viene rifiutata (l'autenticazione 3DS non è supportata per i DPAN). Per ulteriori informazioni su come effettuare l'integrazione al gateway utilizzando 3DS, vedere Autenticazione 3-D Secure.
Authorize
/Pay
o nella richiesta Update Session
.order.walletProvider
=GOOGLE_PAY
order.amount
: Il valore specificato deve essere l'importo totale dell'ordine (inclusi i costi di spedizione e altri costi aggiuntivi)order.currency
sourceOfFunds.provided.card.devicePayment.paymentToken
: Il token di pagamento crittografato ottenuto dall'SDK Google Pay.sourceOfFunds.provided.card.devicePayment.paymentToken [REST][NVP]
Oltra ai campi standard, affinché l'autorizzazione sia eseguita correttamente, vengono restituiti i campi di risposta indicati di seguito utilizzando il token di pagamento.
Se il payload conteneva un DPAN (per pagamenti tramite dispositivo):
sourceOfFunds.provided.card.encryption
=DEVICE
sourceOfFunds.provided.card.deviceSpecificNumber
: Il DPAN nel formato di oscuramento.sourceOfFunds.provided.card.deviceSpecificExpiry.month
sourceOfFunds.provided.card.deviceSpecificExpiry.year
sourceOfFunds.provided.card.number
: Il FPAN nel formato di oscuramento.sourceOfFunds.provided.card.expiry.month
sourceOfFunds.provided.card.expiry.year
sourceOfFunds.provided.card.devicePayment.cryptogramFormat
Se il payload conteneva un FPAN (per pagamenti Google Pay con wallet digitale):
sourceOfFunds.provided.card.encryption
=DIGITAL_WALLET
sourceOfFunds.provided.card.number
: Il FPAN nel formato di oscuramento.sourceOfFunds.provided.card.expiry.month
sourceOfFunds.provided.card.expiry.year
Di seguito è riportata una richiesta di autorizzazione di esempio in REST in cui il token di pagamento è decrittato dal gateway.
URL | https://eu-gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid} |
Metodo HTTP | PUT |
{ "order": { "amount": "1500", "currency": "USD", "walletProvider": "GOOGLE_PAY" }, "apiOperation": "AUTHORIZE", "sourceOfFunds": { "type": "CARD", "provided": { "card": { "devicePayment": { "paymentToken": "{\r\n \"protocolVersion\": \"ECv1\",\r\n \"signature\": \"MEYCIQDoEflyImKP5GB4qsZr\/7FEOejsYL5dVhhFr5j0qwRScwIhAJfu2csV+34nZlBVs65\/PlhoXO4j6t9ymEb8ER2tyenb\",\r\n \"signedMessage\": \"{\\\"encryptedMessage\\\":\\\"dPHXSxxmUq6DybXPIv9s+RfHsLcrGkIT7VWkjtK0hrecsR5mqDnC2ZlttivkKTxA31AA1PyTfBk82OXjmMVXCK+BXqRXsOKdFD7TzZs8gTGHXrnyCIRneXLRxL65EM9TXKc\/RknvKe2fWnZ2FE8kx3Sgu2\/1ae6xUr7huWlHJhX2xXhp+tb5xzQLGeTh+vQVeA9fTtgdmi6JnmoxRCk\/mwNGbSNEh8NyJ\/XddHBOZvsOmRgdAtPc1evxzWnLZqfDM7C5HQtHgkZlf+Gz8tPkcHmvz3UCSuVMfdM=\\\",\\\"ephemeralPublicKey\\\":\\\"BPpn0+yk4+F\/qcPKwyUdPpBTz\/FDcW\/SKeNCZkEOqAYoweO3oRXVYv+0jSEN\/5RKUxWCzC12WmVvdBzbQlK7zRo=\\\",\\\"tag\\\":\\\"6pa1DwNifczCELtCQRqPZEshl2lQGr\/a1PiKUNuoaew=\\\"}\"\r\n}" } } } } }
{ "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "TESTWTFA5B7749", "order": { "amount": "1500.00", "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "creationTime": "2022-03-26T03:48:17.403Z", "currency": "USD", "id": "7181c33b-a7f6-42c5-acdf-fc3bd0bfb7f4", "lastUpdatedTime": "2022-03-26T03:48:17.571Z", "merchantCategoryCode": "1234", "merchantAmount": "1500.00", "merchantCurrency": "USD", "status": "AUTHORIZED", "totalAuthorizedAmount": "1500.00", "totalCapturedAmount": "0.00", "totalDisbursedAmount": "0.00", "totalRefundedAmount": "0.00", "walletProvider": "GOOGLE_PAY", "chargeback": { "amount": "0", "currency": "USD" } }, "response": { "acquirerCode": "706", "gatewayCode": "APPROVED", "gatewayRecommendation": "NO_ACTION" }, "result": "SUCCESS", "timeOfLastUpdate": "2022-03-26T03:48:17.571Z", "timeOfRecord": "2022-03-26T03:48:17.462Z", "sourceOfFunds": { "type": "CARD", "provided": { "card": { "brand": "AMEX", "encryption": "DIGITAL_WALLET", "fundingMethod": "CREDIT", "number": "345678xxxxx4564", "scheme": "AMEX", "storedOnFile": "NOT_STORED", "expiry": { "month": "1", "year": "39" } } } }, "transaction": { "amount": "1500.00", "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "authorizationCode": "331482", "currency": "USD", "id": "2f9ea2bd-1b70-47e2-b2af-2528d83f6ee7", "receipt": "2203261", "source": "INTERNET", "stan": "1", "terminal": "11111", "type": "AUTHORIZATION", "acquirer": { "batch": "1", "id": "EAS_TESTACQ", "merchantId": "123456" } }, "version": "63" }
Si può scegliere di effettuare la decrittografia del token di pagamento sul proprio server invece di fornire al gateway il token di pagamento per la decrittografia. In tal caso, si dovrà provvedere a conservare le credenziali per la decrittografia ed effettuarla.
Chiave JSON Google Pay |
Campo richiesta API corrispondente |
Descrizione |
---|---|---|
pan | sourceOfFunds.provided.card.number | Il numero del conto principale del dispositivo (DPAN) della carta utilizzata per finanziare questa transazione. |
expirationMonth | sourceOfFunds.provided.card.expiry.month | Il mese di scadenza del pan. |
expirationYear | sourceOfFunds.provided.card.expiry.year | L'anno di scadenza del pan. |
authMethod | sourceOfFunds.provided.card. devicePayment.cryptogramFormat |
Il formato del crittogramma. Impostarlo su 3DSECURE. |
crittogramma | sourceOfFunds.provided.card.devicePayment. 3DSecure.onlinePaymentCryptogram |
Crittogramma in formato 3-D Secure. |
eciIndicator | sourceOfFunds.provided.card.devicePayment. 3DSecure.eciIndicator |
Immettere l'indicatore transazione di e-commerce (ECI), se disponibile. |
sourceOfFunds.provided.card.nameOnCard | (Facoltativo) Il nome del titolare della carta. | |
order.currency | Il codice valuta ISO 4217 per la transazione. | |
order.amount | L'importo dell'ordine. |
Check Enrollment
.order.walletProvider
=GOOGLE_PAY
sourceOfFunds.provided.card.number
: Vedere la tabella di seguito.Per ulteriori informazioni su come effettuare l'integrazione al gateway utilizzando 3DS, vedere Autenticazione 3-D Secure.
Chiave JSON Google Pay |
Campo richiesta API corrispondente |
Descrizione |
---|---|---|
pan | sourceOfFunds.provided.card.number | Il numero della carta (FPAN) utilizzata per finanziare questa transazione. Il payload contiene un FPAN quando il pagante sceglie di pagare utilizzando una carta salvata sul suo conto Google Play. Notare che per i pagamenti con carta di credito, l'acquisizione del CSC non è attualmente supportata dall'API Google Pay. |
expirationMonth | sourceOfFunds.provided.card.expiry.month | Il mese di scadenza del pan. |
expirationYear | sourceOfFunds.provided.card.expiry.year | L'anno di scadenza del pan. |
sourceOfFunds.provided.card.nameOnCard | (Facoltativo) Il nome del titolare della carta. | |
order.currency | Il codice valuta ISO 4217 per la transazione. | |
order.amount | L'importo dell'ordine. |
PAYER_TERMINAL_OFF_PREMISES
o PAYER_TERMINAL_ON_PREMISES
. Se non si specifica un valore, sarà utilizzato PAYER_TERMINAL_OFF_PREMISES
.Di seguito è riportata una richiesta di autorizzazione di esempio in REST in cui i valori ottenuti dal token di pagamento decrittato sono forniti al gateway.
{ "apiOperation": "AUTHORIZE", "order": { "amount": "30.10", "currency": "INR", "walletProvider": "GOOGLE_PAY" }, "sourceOfFunds": { "provided": { "card": { "expiry": { "month": "01", "year": "39" }, "number": "5123450000000008", "devicePayment": { "cryptogramFormat": "3DSECURE", "3DSecure": { "onlinePaymentCryptogram": "IA/8pdiWftSsxpFT6wABoDABhgA=", "eciIndicator": "20" } } } }, "type": "CARD" }, "device": { "ani": "12341234" }, "transaction": { "source": "INTERNET" } }
{ "authorizationResponse": { "commercialCard": "123", "commercialCardIndicator": "1", "date": "0330", "financialNetworkCode": "MCC", "posData": "1025104006600", "posEntryMode": "812", "processingCode": "003000", "responseCode": "00", "stan": "290026", "time": "220509", "transactionIdentifier": "865442937", "transactionIntegrityClass": "A1" }, "device": { "ani": "12341234" }, "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "LOVECRAFTS2I", "order": { "amount": 30.10, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "certainty": "ESTIMATED", "chargeback": { "amount": 0, "currency": "INR" }, "creationTime": "2022-03-30T22:05:09.395Z", "currency": "INR", "id": "09765d59-cdd8-432c-96c9-d6ae91588251", "lastUpdatedTime": "2022-03-30T22:05:09.857Z", "merchantAmount": 30.10, "merchantCategoryCode": "1234", "merchantCurrency": "INR", "status": "AUTHORIZED", "totalAuthorizedAmount": 30.10, "totalCapturedAmount": 0.00, "totalDisbursedAmount": 0.00, "totalRefundedAmount": 0.00, "walletProvider": "GOOGLE_PAY" }, "response": { "acquirerCode": "00", "acquirerMessage": "Approved", "gatewayCode": "APPROVED" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "MASTERCARD", "devicePayment": { "cryptogramFormat": "3DSECURE" }, "deviceSpecificExpiry": { "month": "1", "year": "39" }, "deviceSpecificNumber": "512345xxxxxx0008", "fundingMethod": "UNKNOWN", "number": "xxxxxxxxxxxxxxxx", "scheme": "MASTERCARD", "storedOnFile": "NOT_STORED" } }, "type": "CARD" }, "timeOfLastUpdate": "2022-03-30T22:05:09.857Z", "timeOfRecord": "2022-03-30T22:05:09.410Z", "transaction": { "acquirer": { "batch": 20220330, "date": "0330", "id": "SYSTEST_ACQ_S2I", "merchantId": "123463", "transactionId": "865442937" }, "amount": 30.10, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "authorizationCode": "112233", "currency": "INR", "id": "1", "receipt": "208922290026", "source": "INTERNET", "stan": "290026", "terminal": "CBAS2I02", "type": "AUTHORIZATION" }, "version": "63" }
Se si sta effettuando la decrittografia del token di pagamento, è necessario ottenere l'approvazione dell'integrazione da parte di Google. Seguire le relative istruzioni fornite da Google qui: Android/Web.
Tuttavia, prima di procedere con l'invio dell'integrazione a Google, è necessario completare alcune transazioni di prova. È possibile verificare l'integrazione con il gateway in fase di produzione utilizzando il profilo esercente di prova e un DPAN o FPAN supportato. Per ulteriori informazioni, fare riferimento a Prova con token di esempio.
„”Se si sta eseguendo il test per un pagamento tramite dispositivo (carta salvata sul proprio dispositivo Android), utilizzare un DPAN supportato indicato nella tabella che segue.
Circuito: |
DPAN |
Data di scadenza |
---|---|---|
Visa | 4895370012003478 | 12/2027 |
American Express | 370295136149943 | 12/2027 |
Se si sta eseguendo il test per un pagamento con carta di credito (carta salvata sul proprio conto Google Play), utilizzare il FPAN supportato indicato nella tabella che segue.
Circuito: |
FPAN |
Data di scadenza |
---|---|---|
Visa | 4111111111111111 | 12/2027 |
Dopo l'approvazione dell'integrazione da parte di Google, è necessario eseguire il test finale per verificare la produzione prima di effettuare il go live.
Se il gateway effettua la decrittografia del token di pagamento, l'app dell'esercente deve specificare il gateway "mpgs" come your payment service provider. Questa informazione è necessaria affinché il token di pagamento generato da Google sia crittografato utilizzando la chiave pubblica del gateway.
Per eseguire transazioni di prova, è necessario utilizzare l'ID esercente di produzione nell'ambiente di produzione del gateway — l'ID esercente di prova del gateway non è in grado di effettuare la decrittografia dei token di pagamento.
Se lo stato delle transazioni è APPROVED o DECLINED significa che il gateway è stato in grado di elaborare correttamente le transazioni di prova.
Mobile SDK offre assistenza per lo sviluppo di un'applicazione mobile (app) che accetterà pagamenti digitali tramite il Mastercard Gateway. Il gateway offre supporto per Google Pay tramite Mobile SDK. Fare clic qui per le linee guida per l'integrazione di Mobile SDK per la piattaforma Android.