Method: associateAccount

Associa l'account del cliente all'elaboratore dei pagamenti allo strumento Google da aggiungere.

L'associazione dell'account avviene dopo che l'integratore ha autenticato l'utente. L'associazione avviene tramite una chiamata server-server che contiene requestId per il flusso di autenticazione associato (authenticationRequestId), un associationId e un googlePaymentToken (GPT). L'elaboratore dei pagamenti deve associare associationId e 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 per l'autenticazione.

Se Google invia un associationId o un googlePaymentToken che l'integratore ha già rilevato durante un'altra associazione, genera 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.

Ecco un esempio di richiesta:


{
  "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 (RequestHeader)
  },
  "provideUserInformation": boolean,
  "googlePaymentToken": string,
  "associationId": string,

  // Union field account_verification can be only one of the following:
  "authenticationRequestId": string,
  "otpVerification": {
    object (OtpVerification)
  }
  // End of list of possible types for union field account_verification.
}
Campi
requestHeader

object (RequestHeader)

REQUIRED: intestazione comune per tutte le richieste.

provideUserInformation

boolean

REQUIRED: true se vogliamo che l'integratore fornisca l'indirizzo associato a questo account.

googlePaymentToken

string

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

string

REQUIRED: l'identificatore di questa associazione. Questo identificatore viene 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 unione account_verification.

account_verification può essere solo uno dei seguenti:

authenticationRequestId

string

FACOLTATIVO: requestId della richiesta di autenticazione che ha preceduto la chiamata. Questo identificatore è stato generato da Google durante il flusso di autenticazione. È presente solo se l'utente ha eseguito l'autenticazione dell'app per Android, l'autenticazione web o un metodo di autenticazione asincrono che utilizza authenticationResultNotification.

otpVerification

object (OtpVerification)

FACOLTATIVO: dati necessari per verificare una OTP generata in data sendOtp. Presente solo se l'utente ha seguito il percorso sendOtp.

Corpo della risposta

Oggetto di risposta per il metodo dell'account associato.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorAssociateAccountId": string,
  "tokenExpirationTime": string,
  "accountId": string,
  "userMessage": string,
  "userInformation": {
    object (UserInformation)
  },
  "result": enum (AssociateAccountResultCode),

  // Union field account_names can be only one of the following:
  "accountNickname": string,
  "fullAccountNickname": string
  // End of list of possible types for union field account_names.
}
Campi
responseHeader

object (ResponseHeader)

REQUIRED: intestazione comune per tutte le risposte.

paymentIntegratorAssociateAccountId

string

REQUIRED: questo identificatore è specifico per l'integratore e viene generato dall'integratore. Viene utilizzato solo a scopo di debug per identificare questa chiamata. Si tratta dell'identificatore da cui l'integratore conosce questa chiamata.

tokenExpirationTime

string (int64 format)

FACOLTATIVO: millisecondi dall'epoca in cui scade il token. Utilizza 0 per segnalare che il token non scade.

accountId

string

REQUIRED: l'ID account dell'utente presso l'integratore. Viene utilizzato per consentire a Google di comprendere il riutilizzo e le relazioni tra account e gli agenti delle operazioni dei clienti di Google al fine di aiutare i clienti a diagnosticare i problemi. Questo identificatore deve essere riconoscibile dall'utente (ad esempio, l'utente conosce questo ID perché appare nell'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
(deprecated)

string

OBSOLETO: una descrizione del risultato, da mostrare all'utente se non è SUCCESS.

userInformation

object (UserInformation)

REQUIRED: informazioni sull'utente che l'integratore conosce e condividerà con Google in merito a questo cliente. Utilizzato per le informazioni sui rischi e la precompilazione.

result

enum (AssociateAccountResultCode)

REQUIRED: il risultato di questa associazione.

Campo unione account_names.

account_names può essere solo uno dei seguenti:

accountNickname

string

FACOLTATIVO: stringa con cui l'utente conosce l'account ai fini della visualizzazione. Questo è un 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 il flusso di acquisto per consentire all'utente di distinguere tra i metodi di pagamento.

fullAccountNickname

string

FACOLTATIVO: stringa con cui l'utente conosce l'account ai fini della visualizzazione. A differenza di accountNickname, questo è il nickname completo dell'account. Ad esempio, 56565-56501 per un numero di telefono o sally@sample-email.com per un'identità email.

Questo valore verrà visualizzato nelle UI come il flusso di acquisto per consentire all'utente di distinguere tra i metodi di pagamento.

UserInformation

Struttura la conservazione delle informazioni su un utente.

Rappresentazione JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string,
  "phone": string,
  "emailAddress": string
}
Campi
name

string

FACOLTATIVO: nome completo del cliente.

addressLine[]

string

FACOLTATIVO: contiene il testo dell'indirizzo non strutturato.

localityName

string

FACOLTATIVO: è un termine parziale, ma generalmente si riferisce alla porzione di città di un indirizzo. 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 vuoto il campo localtyName e utilizza addressLine.

Esempi: città USA, comune in Italia, città postale nel Regno Unito.

administrativeAreaName

string

FACOLTATIVO: suddivisione amministrativa di primo livello di questo paese Esempi: stato USA, regione IT, provincia CN, prefettura giapponese."

postalCodeNumber

string

FACOLTATIVO: nonostante il nome, i valoriPostalCodeNumber sono spesso alfanumerici. Esempi: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

FACOLTATIVO: il codice paese dell'indirizzo del cliente, che dovrebbe essere ISO-3166-1 Alpha-2.

phone

string

FACOLTATIVO: numero di telefono del cliente.

emailAddress

string

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 Anche se è stato restituito il bundle di autenticazione dell'account, l'autenticazione utente non è riuscita.
NOT_ELIGIBLE L'account dell'utente non è idoneo per questo servizio.
OTP_NOT_MATCHED L'OTP non corrispondeva a quanto inviato dall'integratore.
OTP_ALREADY_USED OTP già usata.
OTP_LIMIT_REACHED L'utente ha richiesto o provato a verificare troppe OTP.
OTP_EXPIRED OTP scaduta.