- Richiesta HTTP
- Corpo della richiesta
- Corpo della risposta
- UserInformation
- AssociateAccountResultCode
Associa l'account del cliente all'elaboratore dei pagamenti allo strumento Google che viene aggiunto.
L'associazione dell'account avviene dopo che l'integratore ha autenticato l'utente. L'associazione avviene tramite una chiamata server-to-server contenente requestId
per il flusso di autenticazione associato (authenticationRequestId
), un associationId
e un googlePaymentToken
(GPT). L'elaboratore dei pagamenti deve associare i associationId
e i googlePaymentToken
all'account del cliente per l'autenticazione. Il GPT viene utilizzato per avviare i pagamenti. associationId
viene utilizzato durante le chiamate di riautenticazione per identificare l'account ai fini dell'autenticazione.
Se Google invia un associationId
o un googlePaymentToken
che l'integratore ha già visto durante un'altra associazione, viene generato un errore.
Se l'endpoint rileva un errore durante l'elaborazione della richiesta, il corpo della risposta da questo endpoint deve essere di tipo
.ErrorResponse
Una richiesta di esempio ha il seguente aspetto:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "cmVxdWVzdDE",
"requestTimestamp": "1481899949606"
},
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ__",
"authenticationRequestId": "bnAxdWTydDX==",
"associationId": "LmddbXBsZSByZWZlcmVuY2UgdG9rZW4gdmFsdWU_",
"provideUserInformation": true
}
Ecco un esempio di risposta:
{
"responseHeader": {
"responseTimestamp": "1481899949611"
},
"paymentIntegratorAssociateAccountId": "xx77df88934hfd",
"accountId": "1234-5678-91",
"accountNickname": "***-91",
"tokenExpirationTime": "0",
"userInformation": {
"name": "Example Customer",
"addressLine": ["123 Main St"],
"localityName": "Springfield",
"administrativeAreaName": "CO",
"postalCodeNumber": "80309",
"countryCode": "US"
},
"result": "SUCCESS"
}
Richiesta HTTP
POST https://www.integratorhost.example.com/v1/associateAccount
Corpo della richiesta
Il corpo della richiesta contiene dati con la seguente struttura:
Rappresentazione JSON |
---|
{ "requestHeader": { object ( |
Campi | |
---|---|
requestHeader |
REQUIRED: intestazione comune per tutte le richieste. |
provideUserInformation |
REQUIRED: true se vogliamo che l'integratore fornisca l'indirizzo associato a questo account. |
googlePaymentToken |
OBBLIGATORIO: il token che Google utilizzerà per avviare gli acquisti con l'elaboratore dei pagamenti. Si tratta di una stringa con una lunghezza massima di 100 caratteri. |
associationId |
OBBLIGATORIO: l'identificatore di questa associazione. Questo identificatore è creato da Google e viene inviato durante i flussi di riautenticazione per identificare quale account deve essere autenticato. Si tratta di una stringa con una lunghezza massima di 100 caratteri. |
Campo di unione
|
|
authenticationRequestId |
FACOLTATIVO: |
otpVerification |
FACOLTATIVO: i dati necessari per verificare una OTP generata da |
Corpo della risposta
Oggetto risposta per il metodo Account associato.
In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:
Rappresentazione JSON |
---|
{ "responseHeader": { object ( |
Campi | |
---|---|
responseHeader |
REQUIRED: intestazione comune per tutte le risposte. |
paymentIntegratorAssociateAccountId |
REQUIRED: questo identificatore è specifico per l'integratore e viene generato da quest'ultimo. Viene utilizzato solo a scopo di debug per identificare questa chiamata. Si tratta dell'identificatore con cui l'integratore conosce la chiamata. |
tokenExpirationTime |
FACOLTATIVO: millisecondi dalla data di scadenza del token. Usa |
accountId |
OBBLIGATORIO: l'ID account dell'utente con l'integratore. Queste informazioni vengono usate per consentire a Google di comprendere il riutilizzo e le relazioni tra account e gli agenti Google per le operazioni con i clienti per aiutare i clienti a diagnosticare i problemi. Questo identificatore deve essere riconoscibile dall'utente (ad esempio, l'utente conosce questo ID perché appare nel suo estratto conto o sul sito web dopo aver eseguito l'accesso all'account). Questo valore deve essere immutabile per tutta la durata dell'account. |
userMessage |
OBSOLETO: una descrizione del risultato da mostrare all'utente se il risultato non è |
userInformation |
OBBLIGATORIO: informazioni sull'utente che l'integratore conosce e che condividerà con Google in merito a questo cliente. Utilizzato per le informazioni sui rischi e per la precompilazione degli indirizzi. |
result |
OBBLIGATORIO: risultato di questa associazione. |
Campo di unione
|
|
accountNickname |
FACOLTATIVO: stringa tramite la quale l'utente conosce l'account a scopo di visualizzazione. Si tratta del suffisso del nickname dell'account. Ad esempio, le ultime quattro cifre di un numero di telefono. Google indicherà nell'interfaccia utente che si tratta solo di un suffisso del nickname. Questo valore verrà visualizzato nelle UI come nel flusso di acquisto per consentire all'utente di distinguere tra i metodi di pagamento. |
fullAccountNickname |
FACOLTATIVO: stringa tramite la quale l'utente conosce l'account a scopo di visualizzazione. A differenza di Questo valore verrà visualizzato nelle UI come nel flusso di acquisto per consentire all'utente di distinguere tra i metodi di pagamento. |
UserInformation
Struttura con le informazioni su un utente.
Rappresentazione JSON |
---|
{ "name": string, "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string, "phone": string, "emailAddress": string } |
Campi | |
---|---|
name |
FACOLTATIVO: nome completo del cliente. |
addressLine[] |
FACOLTATIVO: contiene il testo non strutturato dell'indirizzo. |
localityName |
FACOLTATIVO: si tratta di un termine generico, ma in genere si riferisce alla parte di un indirizzo relativa a città/paese. Nelle regioni del mondo in cui le località non sono ben definite o non si adattano bene a questa struttura (ad esempio, Giappone e Cina), lascia il campo localtyName vuoto e utilizza addressLine. Esempi: città degli Stati Uniti, comune italiano, città del Regno Unito. |
administrativeAreaName |
FACOLTATIVO: suddivisione amministrativa di primo livello del paese. Esempi: stato USA, regione IT, provincia CN, prefettura Giappone. |
postalCodeNumber |
FACOLTATIVO: a prescindere dal nome, i valori postaliCodeNumber sono spesso alfanumerici. Esempi: "94043", "SW1W", "SW1W 9TQ". |
countryCode |
FACOLTATIVO: il codice paese dell'indirizzo del cliente, che dovrebbe essere ISO-3166-1 Alpha-2. |
phone |
FACOLTATIVO: numero di telefono del cliente. |
emailAddress |
FACOLTATIVO: l'indirizzo email del cliente. |
AssociateAccountResultCode
Codici risultato per account associato.
Enum | |
---|---|
UNKNOWN_RESULT |
Non impostare mai questo valore predefinito. |
SUCCESS |
Associazione riuscita. |
USER_AUTHENTICATION_FAILED |
L'autenticazione utente non è riuscita anche se è stato restituito il bundle di autenticazione dell'account. |
NOT_ELIGIBLE |
L'account dell'utente non è idoneo per questo servizio. |
OTP_NOT_MATCHED |
La OTP non corrisponde a ciò che ha inviato l'integratore. |
OTP_ALREADY_USED |
OTP già utilizzata. |
OTP_LIMIT_REACHED |
L'utente ha richiesto o provato a verificare troppe OTP. |
OTP_EXPIRED |
OTP scaduta. |