Method: asynchronousCapture

Déclenche le démarrage d'une opération de transfert d'argent entre le compte d'un client et l'intégrateur. L'intégrateur doit accuser réception de la demande et effectuer les actions nécessaires pour terminer la capture (par exemple, recueillir un code d'accès auprès de l'utilisateur). L'intégrateur informe Google du résultat final de la capture en appelant l'API CaptureResultNotification.

La combinaison de requestId dans l'en-tête et de paymentIntegratorAccountId est la clé d'idempotence et identifie cette transaction de manière unique. Toutes les mutations sur 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": 1,
      "revision": 0
    },
    "requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
    "requestTimestamp": "1502220196077"
  },
  "paymentIntegratorAccountId": "InvisiCashIN_INR",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "728000000"
}

Voici un exemple de réponse:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "ACKNOWLEDGED",
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}

Requête HTTP

POST https://www.integratorhost.example.com/v1/asynchronousCapture

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 (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field fopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  },
  "tokenizedInstrumentDetails": {
    object (TokenizedInstrumentDetails)
  }
  // End of list of possible types for union field fopDetails.
}
Champs
requestHeader

object (RequestHeader)

OBLIGATOIRE: en-tête commun à toutes les requêtes.

paymentIntegratorAccountId

string

OBLIGATOIRE: identifiant de compte de l'intégrateur de paiement qui identifie les contraintes contractuelles liées à cette transaction.

transactionDescription

string

OBLIGATOIRE: description de la transaction pouvant figurer sur la déclaration du client. Localisé dans le paramètre userLocale trouvé dans requestHeader. Ce format peut être modifié sans préavis et ne doit jamais être analysé.

currencyCode

string

OBLIGATOIRE: code de devise ISO 4217 à trois lettres

amount

string (Int64Value format)

OBLIGATOIRE: montant de l'achat, en unités de la devise.

Champ d'union fopDetails.

fopDetails ne peut être qu'un des éléments suivants :

upiDetails

object (UpiDetails)

FACULTATIF: détails du paiement spécifiques aux modes UPI.

tokenizedInstrumentDetails

object (TokenizedInstrumentDetails)

FACULTATIF: détails du paiement spécifiques aux modes tokenisés.

Corps de la réponse

Objet de 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 (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "result": enum (AsynchronousCaptureResultCode)
}
Champs
responseHeader

object (ResponseHeader)

OBLIGATOIRE: en-tête commun à toutes les réponses.

paymentIntegratorTransactionId

string

OBLIGATOIRE: cet identifiant est spécifique à l'intégrateur et est généré par celui-ci. 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 versement.

result

enum (AsynchronousCaptureResultCode)

OBLIGATOIRE: résultat de l'appel de capture asynchrone.

UpiDetails

Informations sur le compte UPI à partir duquel effectuer la capture.

Représentation JSON
{
  "vpa": string
}
Champs
vpa

string

OBLIGATOIRE: adresse de paiement virtuelle (VPA) de l'utilisateur utilisée pour transférer de l'argent à l'aide du protocole UPI. Par exemple : foo@icici.

TokenizedInstrumentDetails

Informations sur le compte à partir duquel effectuer la capture.

Représentation JSON
{
  "googlePaymentToken": string
}
Champs
googlePaymentToken

string

OBLIGATOIRE: il s'agit du jeton que les deux entreprises utiliseront pour identifier le compte lors des achats mutuels.

AsynchronousCaptureResultCode

Codes de résultat pour asynchroneCapture.

Enums
UNKNOWN_RESULT Ne définissez jamais cette valeur par défaut.
ACKNOWLEDGED La capture a été demandée et l'intégrateur effectuera des étapes supplémentaires pour déterminer si elle a réussi ou refusé. Une fois que l'intégrateur connaît le résultat de la capture, il en informe Google en appelant l'API captureResultNotification.
ACCOUNT_CLOSED

Le compte de l'utilisateur détenu par l'intégrateur a été clôturé.

Le renvoi de cette valeur entraîne la clôture du mode de paiement de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument en reprenant le flux d'association.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Le compte de l'utilisateur associé à l'intégrateur a été clôturé. Le compte a probablement été piraté.

Le renvoi de cette valeur entraîne la clôture du mode de paiement de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument en reprenant le flux 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îne la clôture du mode de paiement de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument en reprenant le flux d'association.