- Requête HTTP
- Corps de la requête
- Corps de la réponse
- RequestHeader
- Code temporel
- Version
- PaymentLookupCriteria
- ArnCriteria
- GoogleTransactionReferenceNumberCriteria
- CaptureRequestCriteria
- RequestOriginator
- GetDisputeInquiryReportResponse
- ResponseHeader
- GetDisputeInquiryReportResult
- SuccessDetails
- PurchaseReport
- CustomerAccount
- Commande
- Montant
- Adresse
- Élément
- Taxes
- Paiement
- Remboursement
- PaymentCardDetails
- AuthResult
- Vide
- ErrorResponse
- ErrorResponseResult
- InvalidApiVersion
- InvalidPayloadSignature
- InvalidPayloadEncryption
- RequestTimestampOutOfRange
- InvalidIdentifier
- IdempotencyViolation
- InvalidFieldValue
- MissingRequiredField
- PreconditionViolation
- UserActionInProgress
- InvalidDecryptedRequest
- Interdit
Obtenez un rapport qui fournit des informations permettant de faciliter une conversation avec le service client avec un utilisateur au sujet d'une contestation potentielle d'un paiement.
Les réponses à cette requête peuvent être vides si cette méthode ne renvoie pas de code HTTP 200.
Si le point de terminaison rencontre une erreur lors du traitement de la requête, la réponse de ce point de terminaison sera de type
.ErrorResponse
Les réponses à cette requête peuvent être vides si cette méthode ne renvoie pas de code HTTP 200. Le corps de la réponse est vide dans les cas où un
avec une description claire pourrait être utilisé pour aider un pirate informatique à comprendre l'identifiant de compte d'intégrateur de paiement d'autres intégrateurs. Dans les cas où la clé de signature ne correspond pas, que l'identifiant de l'intégrateur de paiement est introuvable ou que la clé de chiffrement est inconnue, cette méthode renvoie une réponse HTTP 404 avec un corps vide. Si la signature de la requête a pu être vérifiée, des informations supplémentaires sur l'erreur sont renvoyées dans le corps de la réponse.ErrorResponse
Voici un exemple de requête:
{
"requestHeader": {
"protocolVersion": {
"major": 3
},
"requestId": "HsKv5pvtQKTtz7rdcw1YqE",
"requestTimestamp": {
"epochMillis": "1519996751331"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD"
},
"paymentLookupCriteria": {
"googleTransactionReferenceNumberCriteria": {
"googleTransactionReferenceNumber": "714545417102363157911822",
"authorizationCode": "111111"
}
},
"existingGoogleClaimId": "138431383281",
"requestOriginator": {
"organizationId": "ISSUER_256",
"organizationDescription": "Community Bank of Some City",
"agentId": "982749"
}
}
Voici un exemple de réponse:
{
"responseHeader": {
"responseTimestamp": {
"epochMillis": "1519996752221"
}
},
"result": {
"success": {
"googleClaimId": "138431383281",
"report": {
"customerAccount": {
"customerEmail": "example@gmail.com",
"customerName" : "Example Customer"
},
"order": {
"timestamp": {
"epochMillis": "1517992525972"
},
"orderId": "SOP.8976-1234-1234-123456..99",
"subTotalAmount": {
"amountMicros": "206990000",
"currencyCode": "USD"
},
"totalAmount": {
"amountMicros": "212990000",
"currencyCode": "USD"
},
"shippingAddress": {
"addressLine": ["123 Main St"],
"localityName": "Springfield",
"administrativeAreaName": "CO",
"postalCodeNumber": "80309",
"countryCode": "US"
},
"taxes": [
{
"description": "Colorado Sales Tax",
"amount": {
"amountMicros": "6000000",
"currencyCode": "USD"
}
}
],
"items": [
{
"description": "Super cool gizmo",
"merchant": "HTC",
"googleProductName": "Google Store",
"quantity": "2",
"totalPrice": {
"amountMicros": "198000000",
"currencyCode": "USD"
}
},
{
"description": "Gizmo charger",
"merchant": "HTC",
"googleProductName": "Google Store",
"quantity": "1",
"totalPrice": {
"amountMicros": "8990000",
"currencyCode": "USD"
}
}
]
},
"payment": {
"billingAddress" : {
"addressLine": ["123 Main St"],
"localityName": "Springfield",
"administrativeAreaName": "CO",
"postalCodeNumber": "80309",
"countryCode": "US"
},
"amount": {
"amountMicros": "100000000",
"currencyCode": "USD"
},
"refunds": [
{
"amount": {
"amountMicros": "9250000",
"currencyCode": "USD"
},
"initiatedTimestamp": {
"epochMillis": "1518811245384"
}
}
],
"cardDetails": {
"authResult": "APPROVED"
}
}
}
}
}
}
Requête HTTP
POST https://vgw.googleapis.com/secure-serving/gsp/v3/getDisputeInquiryReport/:PIAID
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. |
paymentLookupCriteria |
OBLIGATOIRE: critères indiquant le paiement à rechercher pour cette demande. |
existingGoogleClaimId |
FACULTATIF: chaîne générée par Google, renvoyée par un appel précédent à S'il n'est pas indiqué, un nouvel ID de revendication est généré. L'appelant peut fournir un L'ID de revendication renseigné ici ou généré est renvoyé dans le champ Fournir un |
requestOriginator |
OBLIGATOIRE: informations sur l'organisation ou le sous-groupe organisationnelle à l'origine de la requête. |
Corps de la réponse
Cette méthode accepte plusieurs types renvoyés. Pour en savoir plus sur le code d'état HTTP 4XX ou 5XX à renvoyer avec ErrorResponse
, consultez l'objet ErrorResponse
et la documentation sur les codes d'état HTTP.
Cette méthode accepte plusieurs types renvoyés. Pour en savoir plus sur le code d'état HTTP 4XX ou 5XX à renvoyer avec ErrorResponse
, consultez l'objet ErrorResponse
et la documentation sur les codes d'état HTTP.
Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :
Messages de réponse possibles | |
---|---|
État HTTP 200 |
|
État HTTP 4XX / 5XX |
|
RequestHeader
Objet d'en-tête qui est défini sur toutes les requêtes envoyées au serveur.
Représentation JSON |
---|
{ "requestId": string, "requestTimestamp": { object ( |
Champs | |
---|---|
requestId |
OBLIGATOIRE: Identifiant unique de cette requête. Il s'agit d'une chaîne d'une longueur maximale de 100 caractères, qui ne contient que les caractères "a-z", "A-Z", "0-9", ":", "-" et "_". |
requestTimestamp |
OBLIGATOIRE: horodatage de cette requête. Le destinataire doit vérifier que ce code temporel est à ± 60 secondes de "now" et refuser la requête dans le cas contraire. Cet horodatage de requête n'est pas idempotent lors de nouvelles tentatives. |
protocolVersion |
OBLIGATOIRE: version de cette requête. |
paymentIntegratorAccountId |
OBLIGATOIRE: identifie un compte unique soumis à des contraintes contractuelles. |
Code temporel
Objet de code temporel représentant un point sur la chronologie ISO en millisecondes écoulées depuis l'epoch Unix.
Représentation JSON |
---|
{ "epochMillis": string } |
Champs | |
---|---|
epochMillis |
OBLIGATOIRE: millisecondes écoulées depuis l'epoch Unix |
Version
L'objet Version contient la version majeure de l'API. La compatibilité des versions d'une même version majeure est garantie. L'intégrateur doit accepter toutes les requêtes liées à la même version majeure.
Représentation JSON |
---|
{ "major": integer } |
Champs | |
---|---|
major |
OBLIGATOIRE: version majeure. Cette option n'est pas garantie pour les demandes de compatibilité avec différentes versions. |
PaymentLookupCriteria
Conteneur pour les critères permettant de rechercher un paiement de manière unique. Un (et un seul) champ de membre doit être renseigné.
Représentation JSON |
---|
{ // Union field |
Champs | |
---|---|
Champ d'union
|
|
arnCriteria |
FACULTATIF: Recherche basée sur le numéro de référence de l'acquéreur (ARN). |
googleTransactionReferenceNumberCriteria |
FACULTATIF: effectuez une recherche à l'aide du numéro de référence de la transaction Google. |
captureRequestCriteria |
FACULTATIF: Recherche basée sur la requête de capture d'origine. |
ArnCriteria
Critères de recherche de paiement basés sur le numéro de référence de l'acquéreur (ARN).
Représentation JSON |
---|
{ "acquirerReferenceNumber": string, "authorizationCode": string } |
Champs | |
---|---|
acquirerReferenceNumber |
OBLIGATOIRE: numéro de référence de l'acquéreur qui identifie le paiement de manière unique. Doit comporter 23 chiffres. |
authorizationCode |
OBLIGATOIRE: code d'autorisation de la transaction. |
GoogleTransactionReferenceNumberCriteria
Critères de recherche de paiement basés sur le numéro de référence de la transaction généré par Google.
Représentation JSON |
---|
{ "googleTransactionReferenceNumber": string, "authorizationCode": string } |
Champs | |
---|---|
googleTransactionReferenceNumber |
OBLIGATOIRE: numéro de référence de la transaction généré par Google, qui identifie le paiement de manière unique. |
authorizationCode |
OBLIGATOIRE: code d'autorisation de la transaction. |
CaptureRequestCriteria
Critères de recherche de paiement basés sur la demande de capture d'origine.
Représentation JSON |
---|
{ "captureRequestId": string } |
Champs | |
---|---|
captureRequestId |
OBLIGATOIRE: identifiant unique pour cette transaction. Il s'agit du |
RequestOriginator
Informations sur l'organisation ou le sous-groupe d'organisations, et éventuellement sur l'employé à l'origine de la demande. Cela permet à Google d'identifier les problèmes ou les utilisations abusives, et de mettre en œuvre des contrôles à un niveau plus précis que paymentIntegratorAccountId
. Cela est particulièrement utile lorsque l'appelé est un fournisseur de services intermédiaire qui s'occupe des requêtes de plusieurs clients externes.
Représentation JSON |
---|
{ "organizationId": string, "organizationDescription": string, "agentId": string } |
Champs | |
---|---|
organizationId |
OBLIGATOIRE: identifiant de l'entreprise, de l'organisation ou du groupe organisationnelle d'où provient cette requête. Doit être unique dans cet |
organizationDescription |
OBLIGATOIRE: nom ou description lisible de l'organisation, qui peut être utilisé pour faciliter la communication entre les employés de Google et l'intégrateur au sujet de cette organisation. |
agentId |
FACULTATIF: identifiant unique de l'agent (employé) spécifique de l'organisation identifié par |
GetDisputeInquiryReportResponse
Charge utile de réponse pour la méthode getDisputeInquiryReport
.
Représentation JSON |
---|
{ "responseHeader": { object ( |
Champs | |
---|---|
responseHeader |
OBLIGATOIRE: en-tête commun pour toutes les réponses. |
result |
OBLIGATOIRE: résultat de cet appel. |
ResponseHeader
Objet d'en-tête défini sur toutes les réponses envoyées à partir du serveur.
Représentation JSON |
---|
{
"responseTimestamp": {
object ( |
Champs | |
---|---|
responseTimestamp |
REQUIRED: horodatage de cette réponse. Le destinataire doit vérifier que cet horodatage est à ± 60 secondes de "now" (maintenant) et refuser la réponse si ce n'est pas le cas. |
GetDisputeInquiryReportResult
Représentation JSON |
---|
{ // Union field |
Champs | |
---|---|
Champ d'union
|
|
success |
Le paiement a été trouvé, et un rapport est disponible. |
paymentNotFound |
Le paiement demandé est introuvable. |
paymentTooOld |
Le paiement demandé a été trouvé, mais aucun rapport n'a été fourni en raison de l'ancienneté du paiement. |
orderCannotBeReturned |
Le paiement demandé appartient à une commande qui existe, mais ne peut pas être retournée. Il peut s'agir, par exemple, de cas où l'ordonnance a été supprimée à la demande de son propriétaire. |
noAdditionalDetails |
Le paiement demandé a été trouvé, mais aucun rapport n'est disponible. |
SuccessDetails
Représentation JSON |
---|
{
"googleClaimId": string,
"report": {
object ( |
Champs | |
---|---|
googleClaimId |
OBLIGATOIRE: chaîne générée par Google qui identifie de manière unique ce litige client. Si |
report |
OBLIGATOIRE: informations concernant la contestation du paiement identifié dans la requête. |
PurchaseReport
Rapport contenant des détails pertinents sur l'achat associé au paiement demandé.
Représentation JSON |
---|
{ "customerAccount": { object ( |
Champs | |
---|---|
customerAccount |
OBLIGATOIRE: informations concernant le client et son compte. |
order |
FACULTATIF: informations concernant la commande sur laquelle le paiement a été effectué. Non disponible pour tous les rapports sur les achats. |
payment |
OBLIGATOIRE: informations concernant le paiement. Remarque: Il est possible de payer plusieurs paiements sur une même commande, mais cette liste ne contiendra que les informations relatives au paiement identifié dans la demande initiale. |
CustomerAccount
Informations sur le compte du client.
Représentation JSON |
---|
{ "customerEmail": string, "customerName": string } |
Champs | |
---|---|
customerEmail |
FACULTATIF: adresse e-mail associée au compte Google du client. |
customerName |
OBLIGATOIRE: nom du client. |
Commande
Informations sur la commande.
Représentation JSON |
---|
{ "timestamp": { object ( |
Champs | |
---|---|
timestamp |
OBLIGATOIRE: horodatage du moment où la commande a été passée. |
orderId |
OBLIGATOIRE: chaîne identifiant la commande de manière unique. |
subTotalAmount |
OBLIGATOIRE: montant total hors taxes de cette commande. |
totalAmount |
OBLIGATOIRE: montant total de cette commande, taxes comprises. |
shippingAddress |
FACULTATIF: Adresse de livraison des articles physiques de cette commande. |
items[] |
OBLIGATOIRE: liste des éléments qui faisaient partie de cet ordre. |
taxes[] |
OBLIGATOIRE: liste des taxes qui faisaient partie de cette commande. Cette liste peut être vide. |
Montant
Associe un montant en micros à un code de devise.
Représentation JSON |
---|
{ "amountMicros": string, "currencyCode": string } |
Champs | |
---|---|
amountMicros |
OBLIGATOIRE: valeur en micros. |
currencyCode |
OBLIGATOIRE: code de devise ISO 4217 à trois lettres |
Adresse
Structure contenant des informations sur une adresse physique.
Représentation JSON |
---|
{ "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
Champs | |
---|---|
addressLine[] |
FACULTATIF: contient du texte d'adresse non structuré. |
localityName |
FACULTATIF: ce terme est vague, mais il désigne généralement la partie ville d'une adresse. Dans les régions du monde où les localités ne sont pas bien définies ou ne s'intègrent pas bien dans cette structure (par exemple, le Japon et la Chine), laissez le champ LocalNameName (Nom de la ville) vide et utilisez addressLine. Exemples : une "city" aux États-Unis, une "comune" en Italie, une "post town" au Royaume-Uni. |
administrativeAreaName |
FACULTATIF : Sous-division administrative de niveau supérieur du pays ("État des États-Unis", "Région IT", "Province du CN", "Préfecture du Japon"). |
postalCodeNumber |
FACULTATIF: Malgré le nom, les valeurs "postalCodeNumber" sont souvent alphanumériques. Exemples: "94043", "SW1W", "SW1W 9TQ". |
countryCode |
FACULTATIF: Code pays de l'adresse du client, qui doit être ISO-3166-1 Alpha-2. |
Article
Informations sur un article de la commande.
Représentation JSON |
---|
{
"description": string,
"merchant": string,
"quantity": string,
"totalPrice": {
object ( |
Champs | |
---|---|
description |
OBLIGATOIRE: description de l'article acheté. |
merchant |
OBLIGATOIRE: vendeur, artiste ou fabricant de l'article. |
quantity |
FACULTATIF: quantité commandée pour cet article. Ce champ est omis si les quantités entières ne sont pas applicables au produit (les produits facturés au compteur peuvent avoir des quantités fractionnaires, par exemple). |
totalPrice |
OBLIGATOIRE: prix total de cet article. |
googleProductName |
OBLIGATOIRE: nom du service produit Google de l'article. |
Taxes
Informations sur les taxes qui s'appliquent à cette commande.
Représentation JSON |
---|
{
"description": string,
"amount": {
object ( |
Champs | |
---|---|
description |
OBLIGATOIRE: description de la taxe. |
amount |
OBLIGATOIRE: montant de la taxe. |
Paiement
Informations sur le paiement.
Représentation JSON |
---|
{ "billingAddress": { object ( |
Champs | |
---|---|
billingAddress |
OBLIGATOIRE: adresse de facturation pour ce paiement. |
amount |
OBLIGATOIRE: montant de ce paiement. |
refunds[] |
OBLIGATOIRE: liste des remboursements effectués pour ce paiement. Cette liste peut être vide. |
Champ d'union
|
|
cardDetails |
FACULTATIF: détails de paiement spécifiques aux modes de paiement associés à des cartes de crédit et de débit. |
Remboursement
Informations sur un remboursement effectué pour un paiement.
Représentation JSON |
---|
{ "amount": { object ( |
Champs | |
---|---|
amount |
OBLIGATOIRE: montant remboursé. |
initiatedTimestamp |
OBLIGATOIRE: horodatage du lancement du remboursement. |
PaymentCardDetails
Détails de paiement spécifiques aux cartes de crédit et de débit.
Représentation JSON |
---|
{
"authResult": enum ( |
Champs | |
---|---|
authResult |
OBLIGATOIRE: résultat de l'authentification de paiement. |
AuthResult
Résultats de l'authentification de paiement.
Enums | |
---|---|
UNKNOWN_RESULT |
Ne définissez jamais cette valeur par défaut. |
APPROVED |
Authentification approuvée. |
DENIED |
Authentification refusée. |
NOT_ATTEMPTED |
Échec de l'authentification. |
Vide
Ce type ne comporte aucun champ.
Cet objet est utilisé pour l'extensibilité, car les valeurs booléennes et les énumérations doivent souvent être étendues avec des données supplémentaires. Le responsable de la mise en œuvre l'utilise pour déterminer la présence. L'énumération que cela représente peut être étendue pour inclure des données dans les futures versions.
La représentation JSON de Empty
est un objet JSON vide {}
.
ErrorResponse
Objet Réponse d'erreur pour toutes les méthodes.
Représentation JSON |
---|
{ "responseHeader": { object ( |
Champs | |
---|---|
responseHeader |
OBLIGATOIRE: en-tête commun pour toutes les réponses. |
errorDescription |
FACULTATIF: Fournissez une description de cet état pour que les représentants de l'assistance puissent déboguer les erreurs. Notez qu'elle n'est jamais présentée aux utilisateurs. Il peut contenir du texte descriptif non sensible à utiliser pour le débogage. Notez que certaines valeurs de errorResponseCode doivent être accompagnées d'informations supplémentaires dans ce champ. Avertissement: N'incluez dans ce message aucun jeton, sauf s'il est défini comme public. |
paymentIntegratorErrorIdentifier |
FACULTATIF: Cet identifiant est spécifique à l'intégrateur. Il est généré par l'intégrateur. Il est utilisé à des fins de débogage uniquement afin d'identifier cet appel. Il s'agit de l'identifiant par lequel l'intégrateur connaît cet appel. |
errorResponseResult |
FACULTATIF: code capturant le type de l'erreur qui s'est produite. |
ErrorResponseResult
Codes d'erreur
Représentation JSON |
---|
{ // Union field |
Champs | |
---|---|
Champ d'union
|
|
invalidApiVersion |
Utilisé si la version d'API de la requête n'est pas compatible. Code HTTP recommandé: 400 |
invalidPayloadSignature |
Utilisé si la signature de la charge utile est effectuée avec une clé inconnue ou inactive. Code HTTP recommandé: 401 |
invalidPayloadEncryption |
Utilisé si le chiffrement de la charge utile est effectué avec une clé inconnue ou inactive. Code HTTP recommandé: 400 |
requestTimestampOutOfRange |
Utilisé si requestTimestamp ne se situe pas à environ 60 s. Code HTTP recommandé: 400 |
invalidIdentifier |
Utilisé si un identifiant envoyé dans la requête n'est pas valide ou est inconnu. Il peut s'agir de PIAID, de captureRequestId, de jeton de paiement Google, etc. Code HTTP recommandé: 404 |
idempotencyViolation |
Utilisé si la requête ne respecte pas les exigences d'idempotence de la requête. Code HTTP recommandé: 412 |
invalidFieldValue |
Utilisé si la requête contient une valeur pour un champ qui ne fait pas partie de l'ensemble des valeurs acceptées. Code HTTP recommandé: 400 |
missingRequiredField |
Utilisé si un champ obligatoire n'est pas défini dans la requête. Code HTTP recommandé: 400 |
preconditionViolation |
Utilisé si une contrainte sur l'opération n'est pas respectée (par exemple, lorsqu'une demande de remboursement dépasse le montant restant sur la transaction). Code HTTP recommandé: 400 |
userActionInProgress |
Utilisé si la requête ne peut pas être traitée pour le moment, car cela interromprait une action utilisateur en cours, qui agit de manière efficace comme un verrouillage du système. Ce code ne doit pas être utilisé pour signaler des échecs dus à des erreurs de simultanéité internes spécifiques à l'implémentation. Code HTTP recommandé: 423 |
invalidDecryptedRequest |
Utilisé si la charge utile de la requête a pu être déchiffrée, mais que le message résultant n'a pas pu être analysé. Code HTTP recommandé: 400 |
forbidden |
L'accès à la ressource demandée est interdit. Code HTTP recommandé: 403 |
InvalidApiVersion
Représentation JSON |
---|
{ "requestVersion": { object ( |
Champs | |
---|---|
requestVersion |
OBLIGATOIRE: version non valide spécifiée dans la requête. |
expectedVersion |
OBLIGATOIRE: version attendue. |
InvalidPayloadSignature
Ce type ne comporte aucun champ.
Ce message est volontairement vide pour le moment. De nouveaux champs pourraient être ajoutés à l'avenir.
InvalidPayloadEncryption
Ce type ne comporte aucun champ.
Ce message est volontairement vide pour le moment. De nouveaux champs pourraient être ajoutés à l'avenir.
RequestTimestampOutOfRange
Représentation JSON |
---|
{ "requestTimestamp": { object ( |
Champs | |
---|---|
requestTimestamp |
OBLIGATOIRE: horodatage fourni dans la requête |
serverTimestampAtReceipt |
OBLIGATOIRE: heure du serveur à la réception, utilisée à des fins de comparaison |
InvalidIdentifier
Représentation JSON |
---|
{ "invalidIdentifierType": string } |
Champs | |
---|---|
invalidIdentifierType |
OBLIGATOIRE: type d'identifiant qui n'était pas valide (par exemple, PIAID, captureRequestId, etc.). |
IdempotencyViolation
Ce type ne comporte aucun champ.
Ce message est volontairement vide pour le moment. De nouveaux champs pourraient être ajoutés à l'avenir.
InvalidFieldValue
Représentation JSON |
---|
{ "invalidFieldName": string } |
Champs | |
---|---|
invalidFieldName |
OBLIGATOIRE: nom du champ qui s'est avéré non valide. |
MissingRequiredField
Représentation JSON |
---|
{ "missingFieldNames": [ string ] } |
Champs | |
---|---|
missingFieldNames[] |
OBLIGATOIRE: noms des champs manquants |
PreconditionViolation
Ce type ne comporte aucun champ.
Ce message est volontairement vide pour le moment. De nouveaux champs pourraient être ajoutés à l'avenir.
UserActionInProgress
Ce type ne comporte aucun champ.
Ce message est volontairement vide pour le moment. De nouveaux champs pourraient être ajoutés à l'avenir.
InvalidDecryptedRequest
Ce type ne comporte aucun champ.
Ce message est volontairement vide pour le moment. De nouveaux champs pourraient être ajoutés à l'avenir.
Interdit
Ce type ne comporte aucun champ.
Ce message est volontairement vide pour le moment. De nouveaux champs pourraient être ajoutés à l'avenir.