- Richiesta HTTP
- Corpo della richiesta
- Corpo della risposta
- MandateDetails
- MandateWithNotificationDetails
- CaptureContext
- CaptureResultCode
Avvia il trasferimento di denaro tra l'account di un cliente presso Google e l'elaboratore dei pagamenti. La combinazione di requestId
nell'intestazione e paymentIntegratorAccountId
è la chiave di idempotenza e identifica in modo univoco questa transazione. Tutte le mutazioni di questa transazione (rimborsi) completano il valore requestId
nel campo captureRequestId
.
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": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
"requestTimestamp": "1502220196077"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD",
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ",
"transactionDescription": "Google - Music",
"currencyCode": "INR",
"amount": "728000000",
"captureContext": {}
}
Ecco un esempio di risposta:
{
"responseHeader": {
"responseTimestamp": "1481900013178"
},
"result": "SUCCESS",
"paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}
Richiesta HTTP
POST https://www.integratorhost.example.com/v1/capture
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. |
paymentIntegratorAccountId |
REQUIRED: si tratta dell'identificatore dell'account dell'integratore pagamenti che identifica i vincoli contrattuali relativi a questa transazione. |
transactionDescription |
OBBLIGATORIO: questa è la descrizione della transazione che può essere inserita nell'estratto conto del cliente. Localizzato in userLocale trovato in |
currencyCode |
OBBLIGATORIO: codice valuta ISO 4217 di tre lettere |
amount |
OBBLIGATORIO: importo dell'acquisto, in micro dell'unità di valuta. |
captureContext |
REQUIRED: contesto relativo all'acquisizione. |
Campo unione fopDetails . REQUIRED: dettagli della forma di pagamento per questa transazione di acquisizione. fopDetails può essere solo uno dei seguenti: |
|
googlePaymentToken |
Token che entrambe le società utilizzeranno per identificare l'account per gli acquisti reciproci. |
mandateDetails |
Dettagli di pagamento specifici per i mandati. |
mandateWithNotificationDetails |
Dettagli di pagamento specifici per i mandati, in cui è richiesto un |
Campo unione
|
|
authenticationRequestId |
FACOLTATIVO: Se è presente, l'utente è stato autenticato immediatamente prima della chiamata oppure è stato autenticato quando è stato configurato un calendario dei pagamenti automatico. |
otpVerification |
FACOLTATIVO: dati necessari per verificare una OTP generata in data |
Corpo della risposta
Oggetto di risposta per il metodo di acquisizione.
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. |
paymentIntegratorTransactionId |
FACOLTATIVO: questo identificatore è specifico per l'integratore e viene generato dall'integratore. Si tratta dell'identificatore da cui l'integratore conosce questa transazione. Per praticità, questo identificatore è incluso nei dettagli del versamento |
userMessage |
OBSOLETO: una descrizione del risultato, da mostrare all'utente se non è |
result |
REQUIRED: il risultato di questa acquisizione. |
rawResult |
FACOLTATIVO: risultato non elaborato di questa acquisizione. Utilizzato per fornire informazioni al motore di analisi e al motore di gestione dei rischi di Google. Nei casi in cui la mappatura del codice viene rifiutata, i dati a volte vanno persi. L'integratore può scegliere di fornire a Google un codice non elaborato. Ad esempio, un gateway della carta di credito (l'integratore) può utilizzare questo campo per comunicare a Google l'esatto codice di rifiuto ricevuto dalla rete VISA. In questo caso, il Questo valore è obbligatorio se |
transactionLimit |
FACOLTATIVO: se Risultato è Deve essere un limite relativo al |
currentBalance |
FACOLTATIVO: se Risultato è Questo valore deve essere nella stessa valuta di |
MandateDetails
Dettagli sul mandato da cui acquisire l'immagine.
Rappresentazione JSON |
---|
{ "mandateId": string } |
Campi | |
---|---|
mandateId |
REQUIRED: l'ID mandato generato da Google che è stato inviato durante la chiamata |
MandateWithNotificationDetails
Dettagli sul mandato da cui acquisire l'app, insieme ai dettagli delle notifiche richieste.
Rappresentazione JSON |
---|
{ "mandateId": string, "upcomingTransactionNotificationId": string } |
Campi | |
---|---|
mandateId |
REQUIRED: l'ID mandato generato da Google che è stato inviato durante la chiamata |
upcomingTransactionNotificationId |
REQUIRED: il |
CaptureContext
Questo oggetto fornisce il contesto relativo a come è stata richiesta l'acquisizione.
Rappresentazione JSON |
---|
{ "userIpAddress": string } |
Campi | |
---|---|
userIpAddress |
FACOLTATIVO: l'indirizzo IP del dispositivo dell'utente se l'acquisto è stato effettuato da un utente nella sessione. Se l'utente non era nella sessione, il campo sarà vuoto. Se il contratto specifico non prevede la necessità di questo campo, il campo è sempre vuoto. |
CaptureResultCode
Codici risultato per l'acquisizione.
Enum | |
---|---|
UNKNOWN_RESULT |
Non impostare mai questo valore predefinito. |
SUCCESS |
Acquisizione di successo, consegna del prodotto. |
CHARGE_EXCEEDS_TRANSACTION_LIMIT |
Il valore amount di questa richiesta di acquisizione supera il limite per transazione. Se viene usato questo codice, compila il campo transactionLimit ai fini della messaggistica per gli utenti. |
CHARGE_EXCEEDS_DAILY_LIMIT |
Al momento questo account non può essere utilizzato per acquisti perché ha superato i limiti giornalieri. |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
Al momento questo account non può essere utilizzato per effettuare acquisti perché ha superato i limiti mensili. |
CHARGE_UNDER_LIMIT |
Il valore amount di questa richiesta di acquisizione non soddisfa l'importo minimo delle transazioni. |
INSUFFICIENT_FUNDS |
Questo account non dispone di fondi sufficienti per garantire l'acquisizione. |
ACCOUNT_DOES_NOT_SUPPORT_CURRENCY |
Questo account non supporta la valuta richiesta. |
ACCOUNT_CLOSED |
L'account dell'utente presso l'integratore è stato chiuso. Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento ripetendo il flusso di associazione. |
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER |
L'account dell'utente con l'integratore è stato chiuso e si è verificata una presenza di presunte violazioni dell'account. Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento ripetendo il flusso di associazione. |
ACCOUNT_ON_HOLD |
L'account è sospeso. |
ACCOUNT_CLOSED_FRAUD |
L'account dell'utente presso l'integratore è stato chiuso a causa di attività fraudolente. Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento ripetendo il flusso di associazione. |
GOOGLE_PAYMENT_TOKEN_INVALIDATED_BY_USER |
L'account è attivo, ma il GPT è stato invalidato dall'utente nell'integratore. Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento ripetendo il flusso di associazione. |
TOKEN_REFRESH_REQUIRED |
Per restituire questo valore, l'utente deve eseguire un flusso di aggiornamento. |
OTP_NOT_MATCHED |
L'OTP non corrispondeva a quanto inviato dall'integratore. |
OTP_ALREADY_USED |
OTP già usata. |
RISK_DECLINED |
La transazione è stata rifiutata a causa di un controllo del rischio da parte dell'integratore. Si tratta di un errore permanente per il pagamento, ma non comporta la chiusura dello strumento dell'utente presso Google. |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
Nell'account dell'utente non è configurata alcuna fonte di pagamento attiva in grado di pagare la transazione. |
FUNDING_SOURCE_UNAVAILABLE |
L'emittente sottostante o la fonte di fondi non sono disponibili. Se un nuovo tentativo li ritenta, l'operazione non andrà a buon fine. Google riproverà i pagamenti quando un partner restituisce un codice di risposta 4xx o 5xx. Per questo motivo, in genere i partner dovrebbero restituire uno di questi codici di risposta se un nuovo tentativo di questo stesso pagamento può andare a buon fine quando la fonte di fondi sottostante sarà di nuovo disponibile. Tuttavia, se per motivi tecnici il tentativo di Google di riprovare a eseguire il pagamento continuerà a non andare a buon fine, il partner può restituire "FUNDING_SOURCE_UNAVAILABLE" per comunicare a Google che non deve riprovare a eseguire lo stesso pagamento. Nota: Google potrebbe comunque riprovare a eseguire questo pagamento, ma solo con un ID richiesta diverso, ma questa richiesta di pagamento verrà contrassegnata come Rifiutata. |
MANDATE_NOT_ACTIVE |
Il mandato utilizzato per questa acquisizione non è più attivo. Questo valore restituito causerà la chiusura dello strumento di mandato dell'utente con Google. |
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED |
La notifica inviata all'utente per il pagamento di un mandato ricorrente è scaduta. |