Google Pay
Google Account Setup
Before you begin the implementation, please also read Google Pay documentation on how to set up a Google account and create an initial request to the Google endpoint (e.g. via Javascript).
Note, that for security reasons, your integration must use the latest Google Pay API version 2.0, which includes the intermediateSigningKey
object containing a key-value pair provided by Google. The Gateway ID 'fiservipg' needs to be included in the request as the parameter gateway
.
Element | Description |
---|---|
gateway | Enter 'fiservipg' |
gatewayMerchantId | The IPG store ID which you received from the IPG boarding team |
merchantId | The merchant ID that identifies your store, which you received from Google |
The following JSON document represent an example of a Google Response with the intermediateSigningKey
object:
{
"protocolVersion":"ECv2",
"signature":"MEUCIG39tbaxxxxxxxxxxxxbd2gcFze1zDqU\u003d",
"intermediateSigningKey":{
"signedKey": "{\"keyExpiration\":\"154xxxxxx316\",\"keyValue\":\"MFkwEwxxxxxxxxxxxFRxyCw\\u003d\\u003d\"}",
"signatures": ["MEYCIQDcXCoB4fxxxxxxxxxxxxxxEt26OrLCUxZnl"]
},
"signedMessage":"{\"tag\":\"TjkIxxxxxxxxxd\",\"ephemeralPublicKey\":\"BLJoTmxPxxxxxxxxxxxxxx003d\",\"encryptedMessage\":\"mxxxxxxjj\"}"
}
Gateway Integration
In order to start an encrypted Google Pay transaction you need to send a primary transaction with requestType
'WalletSaleTransaction' including the walletPaymentMethod
object called encryptedGooglePay
. This object contains the data that is received from Google Pay JavaScript embedded into your website or mobile app.
For a preauthorisation use requestType
with value 'WalletPreAuthTransaction'.
For a sale use requestType
with value 'WalletSaleTransaction'.
The following JSON document represent an example of a request and a response:
{
"walletPaymentMethod":{
"encryptedGooglePay":{
"data":{
"encryptedMessage":"jlhEDaN0JXTxxxxxxxxxxxxxxxxxxg9J9r75yg==",
"ephemeralPublicKey":"BDBBVAe/C7BfSjxxxxxxxxxxxxxxxK6rdk0uBzqHmspxsI=",
"tag":"v2x7Ahxxxxxxxxxxec439oI="
},
"intermediateSigningKey":{
"signedKey":{
"keyValue":"MFkwEwYHKoZIzxxxxxxxxxxxxxxx+nBKsFX36h/afw5Vr4PWlbrA==",
"keyExpiration":"1734478642065"
},
"signatures":[
"MEUCIQCp3mxxxxxxxxxxxxxxxxxxxxy7Fd/m9BCrcjMPi8="
]
},
"signature":"MEUCIBmAOxvxxxxxxxxxxxxxxxxxx4eNMn2XEf0=",
"version":"ECv2"
},
"walletType":"EncryptedGooglePayWalletPaymentMethod"
},
"authenticationRequest":{
"termURL":"https://yourwebsite/authresult?transactionId=cU4ZO8",
"methodNotificationURL":"https://yourwebsite.com/acs/notifications?transactionId=cU4ZO8",
"challengeIndicator":"01",
"challengeWindowSize":"05",
"authenticationIndicator":"01",
"skipTRA":false,
"authenticationType":"Secure3DAuthenticationRequest"
},
"requestType":"WalletSaleTransaction",
"transactionAmount":{
"total":25,
"currency":"GBP",
"components":{
"subtotal":25
}
},
"storeId":"12xxxx01",
"transactionOrigin":"ECOM",
"order":{
"orderId":"PLxxxxxxx011",
"billing":{
"contact":{
},
"address":{
}
}
}
}
{
"walletPaymentMethod":{
"encryptedGooglePay":{
"data":{
"encryptedMessage":"jlhEDaN0JXTcxxxxxxxxxxxxxxxzxxxxxxmLg9J9r75yg==",
"ephemeralPublicKey":"BDBBVAe/C7BfSjlxxxxxxxxxxCqHmspxsI=",
"tag":"v2x7Ahgxxxxxxxec439oI="
},
"intermediateSigningKey":{
"signedKey":{
"keyValue":"MFkwEwYHKoZIzj0CAxxxxxxxxxxxxxxxxxxfw5Vr4PWlbrA==",
"keyExpiration":"17xxxxxx065"
},
"signatures":[
"MEUCIQCp3m2pxxxxxxxxxBCrcjMPi8="
]
},
"signature":"MEUCIBmAOxvQ0rxxxxxxxxxxxxKCrlXBX+4eNMn2XEf0=",
"version":"ECv2"
},
"walletType":"EncryptedGooglePayWalletPaymentMethod"
},
"authenticationRequest":{
"termURL":"https://yourwebsite.com/acs/authresult?transactionId=cU4ZO8",
"methodNotificationURL":"https://yourwebsite/acs/notifications?transactionId=cU4ZO8",
"challengeIndicator":"01",
"challengeWindowSize":"05",
"authenticationIndicator":"01",
"skipTRA":false,
"authenticationType":"Secure3DAuthenticationRequest"
},
"requestType":"WalletSaleTransaction",
"transactionAmount":{
"total":25,
"currency":"GBP",
"components":{
"subtotal":25
}
},
"storeId":"12xxxxx01",
"transactionOrigin":"ECOM",
"order":{
"orderId":"Pxxxxxxxx011",
"billing":{
"contact":{
},
"address":{
}
}
}
}
Updated 12 days ago