- Requête HTTP
- Corps de la requête
- Corps de la réponse
- MandateDetails
- MandateWithNotificationDetails
- CaptureContext
- CaptureResultCode
Initie un transfert d'argent entre le compte du client détenu par Google et celui de la société de traitement des paiements. La combinaison de requestId
dans l'en-tête et paymentIntegratorAccountId
constitue la clé d'idempotence et identifie cette transaction de manière unique. Toutes les mutations de cette transaction (remboursements) renseignent la valeur requestId
dans le champ captureRequestId
.
Si le point de terminaison rencontre une erreur lors du traitement de la requête, le corps de la réponse de ce point de terminaison doit être de type
.ErrorResponse
Voici un exemple de requête:
{
"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": {}
}
Voici un exemple de réponse:
{
"responseHeader": {
"responseTimestamp": "1481900013178"
},
"result": "SUCCESS",
"paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}
Requête HTTP
POST https://www.integratorhost.example.com/v1/capture
Corps de la requête
Le corps de la requête contient des données présentant la structure suivante :
Représentation JSON |
---|
{ "requestHeader": { object ( |
Champs | |
---|---|
requestHeader |
OBLIGATOIRE: en-tête commun pour toutes les requêtes. |
paymentIntegratorAccountId |
OBLIGATOIRE: il s'agit de l'identifiant de compte de l'intégrateur de paiement qui identifie les contraintes contractuelles liées à cette transaction. |
transactionDescription |
OBLIGATOIRE: description de la transaction qui peut être indiquée sur le relevé du client. Localisé dans le userLocale trouvé dans le |
currencyCode |
OBLIGATOIRE: code de devise ISO 4217 à trois lettres |
amount |
OBLIGATOIRE: montant de l'achat en micros de la devise. |
captureContext |
OBLIGATOIRE: contexte de cette capture. |
Champ d'union fopDetails . OBLIGATOIRE: détails du mode de paiement pour cette transaction de capture. La fopDetails ne peut être qu'un des éléments suivants : |
|
googlePaymentToken |
Jeton que les deux entreprises utiliseront pour identifier le compte lors de leurs achats. |
mandateDetails |
Détails des paiements spécifiques aux mandats. |
mandateWithNotificationDetails |
Détails du paiement spécifiques aux mandats, pour lesquels un |
Champ d'union
|
|
authenticationRequestId |
FACULTATIF: Si tel est le cas, cela signifie que l'utilisateur a été authentifié juste avant cet appel ou qu'il a été authentifié lors de la mise en place d'un calendrier de paiement automatique. |
otpVerification |
FACULTATIF: données nécessaires pour valider un mot de passe à usage unique généré à partir de |
Corps de la réponse
Objet réponse pour la méthode de capture.
Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :
Représentation JSON |
---|
{ "responseHeader": { object ( |
Champs | |
---|---|
responseHeader |
OBLIGATOIRE: en-tête commun pour toutes les réponses. |
paymentIntegratorTransactionId |
FACULTATIF: Cet identifiant est spécifique à l'intégrateur. Il est généré par l'intégrateur. Il s'agit de l'identifiant par lequel l'intégrateur connaît cette transaction. Pour plus de commodité, cet identifiant est inclus dans les détails du paiement. |
userMessage |
OBSOLÈTE: description du résultat à présenter à l'utilisateur si le résultat n'est pas |
result |
OBLIGATOIRE: résultat de cette capture. |
rawResult |
FACULTATIF: résultat brut de cette capture. Données utilisées pour alimenter le moteur de gestion des risques et les données analytiques de Google Dans les situations de mappage de code refusé, les données sont parfois perdues. L'intégrateur peut choisir de fournir à Google un code brut. Par exemple, une passerelle de carte de crédit (l'intégrateur) peut utiliser ce champ pour communiquer à Google le code de refus exact reçu du réseau VISA. Dans ce cas, le champ Cette valeur est obligatoire si |
transactionLimit |
FACULTATIF: Si le résultat est Il doit s'agir d'une limite relative à la |
currentBalance |
FACULTATIF: Si le résultat est Cette valeur doit être exprimée dans la même devise que la valeur |
MandateDetails
Détails sur le mandat à partir duquel effectuer la capture.
Représentation JSON |
---|
{ "mandateId": string } |
Champs | |
---|---|
mandateId |
OBLIGATOIRE: ID de mandat généré par Google qui a été envoyé lors de l'appel |
MandateWithNotificationDetails
Informations sur le mandat à partir duquel la collecte doit être effectuée, ainsi que les informations sur les notifications requises
Représentation JSON |
---|
{ "mandateId": string, "upcomingTransactionNotificationId": string } |
Champs | |
---|---|
mandateId |
OBLIGATOIRE: ID de mandat généré par Google qui a été envoyé lors de l'appel |
upcomingTransactionNotificationId |
OBLIGATOIRE: |
CaptureContext
Cet objet fournit du contexte sur la façon dont la capture a été demandée.
Représentation JSON |
---|
{ "userIpAddress": string } |
Champs | |
---|---|
userIpAddress |
FACULTATIF: Il s'agit de l'adresse IP de l'appareil de l'utilisateur si celui-ci a effectué l'achat au cours d'une session. Ce champ est vide si l'utilisateur n'était pas en session. Si le contrat particulier n'exige pas ce champ, il sera toujours vide. |
CaptureResultCode
Codes de résultat pour la capture
Enums | |
---|---|
UNKNOWN_RESULT |
Ne définissez jamais cette valeur par défaut. |
SUCCESS |
Réussissez la capture, livrez les marchandises. |
CHARGE_EXCEEDS_TRANSACTION_LIMIT |
La valeur amount de cette requête de capture dépasse la limite par transaction. Si ce code est utilisé, renseignez le champ transactionLimit pour envoyer des messages aux utilisateurs. |
CHARGE_EXCEEDS_DAILY_LIMIT |
Vous ne pouvez pas utiliser ce compte pour des achats actuellement, car il a dépassé ses limites quotidiennes. |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
Vous ne pouvez pas utiliser ce compte pour des achats actuellement, car il a dépassé ses limites mensuelles. |
CHARGE_UNDER_LIMIT |
Le amount de cette demande de capture n'atteint pas le montant minimal de transaction. |
INSUFFICIENT_FUNDS |
Ce compte ne dispose pas de fonds suffisants pour garantir cette capture. |
ACCOUNT_DOES_NOT_SUPPORT_CURRENCY |
Ce compte n'est pas compatible avec la devise demandée. |
ACCOUNT_CLOSED |
Le compte de l'utilisateur détenu par l'intégrateur a été clôturé. Le renvoi de cette valeur entraînera la fermeture de l'instrument de l'utilisateur auprès de Google. L'utilisateur sera forcé d'ajouter un nouvel instrument en revenant au processus d'association. |
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER |
Le compte de l'utilisateur associé à l'intégrateur a été clôturé, et il soupçonne un piratage. Le renvoi de cette valeur entraînera la fermeture de l'instrument de l'utilisateur auprès de Google. L'utilisateur sera forcé d'ajouter un nouvel instrument en revenant au processus d'association. |
ACCOUNT_ON_HOLD |
Le compte est suspendu. |
ACCOUNT_CLOSED_FRAUD |
Le compte de l'utilisateur détenu par l'intégrateur a été clôturé pour fraude. Le renvoi de cette valeur entraînera la fermeture de l'instrument de l'utilisateur auprès de Google. L'utilisateur sera forcé d'ajouter un nouvel instrument en revenant au processus d'association. |
GOOGLE_PAYMENT_TOKEN_INVALIDATED_BY_USER |
Le compte est actif, mais le tag GPT a été invalidé par l'utilisateur côté intégrateur. Le renvoi de cette valeur entraînera la fermeture de l'instrument de l'utilisateur auprès de Google. L'utilisateur sera forcé d'ajouter un nouvel instrument en revenant au processus d'association. |
TOKEN_REFRESH_REQUIRED |
Pour renvoyer cette valeur, l'utilisateur doit suivre une procédure d'actualisation. |
OTP_NOT_MATCHED |
L'OTP ne correspond pas aux informations envoyées par l'intégrateur. |
OTP_ALREADY_USED |
L'OTP a déjà été utilisé. |
RISK_DECLINED |
La transaction a été refusée en raison d'une vérification des risques effectuée par l'intégrateur. Il s'agit d'un échec permanent pour ce paiement, mais cela n'entraîne pas la clôture du mode de paiement de l'utilisateur chez Google. |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
Aucune source de financement valide n'est configurée sur le compte de l'utilisateur pour payer la transaction. |
FUNDING_SOURCE_UNAVAILABLE |
L'émetteur ou la source des fonds sous-jacents n'est pas disponible. La nouvelle tentative de paiement existant échouera. Google réessaiera d'effectuer les paiements lorsqu'un partenaire renvoie un code de réponse 4xx ou 5xx. C'est pourquoi les partenaires doivent normalement renvoyer l'un de ces codes de réponse si une nouvelle tentative de paiement peut aboutir lorsque la source de fonds sous-jacente est à nouveau disponible. Toutefois, en cas d'échec d'une nouvelle tentative de paiement pour des raisons techniques, le partenaire peut renvoyer la mention "FUNDING_SOURCE_UNAVAILABLE" pour indiquer à Google qu'il ne doit pas retenter d'effectuer le même paiement. Remarque: Google peut tout de même effectuer une nouvelle tentative de paiement, mais avec un autre requestId, mais cette demande sera marquée comme refusée. |
MANDATE_NOT_ACTIVE |
Le mandat utilisé pour cette capture n'est plus actif. Cette valeur renvoyée entraînera la fermeture du mode de mandat de l'utilisateur auprès de Google. |
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED |
La notification envoyée à l'utilisateur pour un paiement de mandat récurrent a expiré. |