- Requête HTTP
- Corps de la requête
- Corps de la réponse
- RequestHeader
<ph type="x-smartling-placeholder">
- </ph>
- Représentation JSON
- Version
<ph type="x-smartling-placeholder">
- </ph>
- Représentation JSON
- StandardCard
<ph type="x-smartling-placeholder">
- </ph>
- Représentation JSON
- AvsData
<ph type="x-smartling-placeholder">
- </ph>
- Représentation JSON
- ResponseHeader
<ph type="x-smartling-placeholder">
- </ph>
- Représentation JSON
- CardNetworkResult
<ph type="x-smartling-placeholder">
- </ph>
- Représentation JSON
- Réseau
- AvsResult
<ph type="x-smartling-placeholder">
- </ph>
- Représentation JSON
- VerificationResult
- CvnResult
Vérifie la carte d'un utilisateur pour voir si elle est valide.
Cette méthode est appelée par Google pour vérifier les informations relatives à la carte d'un utilisateur et déterminer si elle peut être utilisée pour des paiements. Cet appel ne permet pas de transférer de l'argent, et le compte de l'utilisateur ne devrait pas subir de modification définitive.
Voici un exemple de requête:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "ZWNobyB0cmFuc2FjdGlvbg",
"requestTimestamp": "1481855969503"
},
"standardCard": {
"accountNumber": "4123456789101112",
"expiryDate": "01/2020",
"cvn": "123"
},
"avsData": {
"streetAddress": "123 Main St APT #200",
"localityName": "Springfield",
"administrativeAreaName": "CO",
"countryCode": "US"
}
}
Voici un exemple de réponse:
{
"responseHeader": {
"responseTimestamp": "1481855970403",
},
"cardNetworkResult": {
"network": "VISA",
"iso8583Result": "00",
"rawNetworkResult": "00"
},
"avsResult": {
"rawAvsResult": "B",
"streetAddress": "MATCH",
"localityName": "MATCH",
"administrativeAreaName": "MATCH",
"postalCodeNumber": "NOT_SENT",
"countryCode": "SKIPPED"
},
"cvnResult": "MATCH"
}
Requête HTTP
POST https://card-verification-service.google.com/v1/card/verifycard
L'URL utilise la syntaxe de transcodage gRPC.
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 à toutes les requêtes. |
standardCard |
OBLIGATOIRE: données sur la carte de paiement de l'utilisateur. |
avsData |
FACULTATIF: adresse de l'utilisateur à valider par AVS. |
Corps de la réponse
Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :
Objet de réponse pour la méthode card.verifycard hébergée par l'intégrateur de paiement.
Représentation JSON | |
---|---|
{ "responseHeader": { object( |
Champs | |
---|---|
responseHeader |
OBLIGATOIRE: en-tête commun à toutes les réponses. |
cardNetworkResult |
OBLIGATOIRE: résultat de l'octroi de l'autorisation sur le réseau de cartes. |
avsResult |
FACULTATIF: résultat de la vérification des champs d'adresse envoyés dans la requête. Ce champ est obligatoire si |
cvnResult |
OBLIGATOIRE: résultat de la validation du CVN envoyé dans la requête. Si le cryptogramme n'a pas été défini dans la demande, cette valeur doit être |
RequestHeader
Objet d'en-tête défini sur toutes les requêtes envoyées au serveur.
Représentation JSON | |
---|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object( |
Champs | |
---|---|
requestId |
OBLIGATOIRE: Identifiant unique de la 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 |
REQUIRED: horodatage de cette requête représenté en millisecondes depuis l'epoch. Le récepteur doit vérifier que cet horodatage correspond à ± 60 secondes du "now" (maintenant). Cet horodatage de requête n'est pas idempotent lors des nouvelles tentatives. |
userLocale |
FACULTATIF: code de langue ISO 639-2 Alpha 3 à deux ou trois lettres, éventuellement suivi d'un trait d'union et d'un code pays ISO 3166-1 Alpha-2, par exemple "pt", "pt-BR", "fil" ou "fil-PH". Utilisez-le pour définir les champs |
protocolVersion |
OBLIGATOIRE: version de cette requête. |
Version
Objet de version, qui est une forme structurée de la structure de version a.b.c
classique. La compatibilité des versions majeures du même numéro est garantie. Notez que les révisions mineures et les révisions peuvent changer fréquemment et sans préavis. L'intégrateur doit prendre en charge toutes les requêtes concernant la même version majeure.
Représentation JSON | |
---|---|
{ "major": number, "minor": number, "revision": number } |
Champs | |
---|---|
major |
OBLIGATOIRE: version majeure. Ceci est indiqué pour les demandes de compatibilité avec différentes versions. Leur compatibilité n'est pas garantie. |
minor |
OBLIGATOIRE: version mineure. Cela indique des corrections de bugs importantes. |
revision |
OBLIGATOIRE: version mineure. Cela indique des corrections de bugs mineures. |
StandardCard
Représentation standard d'une fiche
Représentation JSON | |
---|---|
{ "accountNumber": string, "expiryDate": string, "cvn": string } |
Champs | |
---|---|
accountNumber |
OBLIGATOIRE: numéro de compte principal (PAN) en texte brut de la carte. |
expiryDate |
FACULTATIF: date d'expiration de la carte au format MM/AAAA. Facultatif, car certaines cartes n'ont pas de date d'expiration dans certaines régions. |
cvn |
FACULTATIF: si Google a recueilli le cryptogramme de l'utilisateur auprès de l'utilisateur, il est indiqué ici et doit être validé. |
AvsData
Contient les champs d'adresse à vérifier par AVS.
Représentation JSON | |
---|---|
{ "streetAddress": string, "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
Champs | |
---|---|
streetAddress |
FACULTATIF: adresse postale de l'adresse de facturation de l'utilisateur. Lorsque l'utilisateur a fourni plusieurs lignes pour saisir son adresse postale (par exemple, une ligne pour le numéro d'appartement), les lignes sont concaténées avec des espaces. |
localityName |
FACULTATIF: ce terme manque généralement de précision, mais il fait généralement référence à la partie ville/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 (Japon et Chine, par exemple), laissez le champ localityName vide et utilisez address_line. Exemples : une "city" aux États-Unis, une "comune" en Italie, une "post town" au Royaume-Uni. |
administrativeAreaName |
FACULTATIF: subdivision administrative de niveau supérieur de ce pays pour l'adresse de facturation de l'utilisateur. Exemples: État des États-Unis, région d'Italie, État membre du Royaume-Uni, préfecture du Japon Lorsque le pays est == US, il s'agit généralement d'une abréviation à deux caractères correspondant à l'État américain. |
postalCodeNumber |
FACULTATIF: code postal de facturation de l'utilisateur. |
countryCode |
FACULTATIF: code pays de l'adresse de facturation de l'utilisateur au format ISO-3166-1 Alpha-2. |
ResponseHeader
Objet d'en-tête défini sur toutes les réponses envoyées par le serveur.
Représentation JSON | |
---|---|
{ "responseTimestamp": string } |
Champs | |
---|---|
responseTimestamp |
REQUIRED: horodatage de cette réponse représenté en millisecondes depuis l'epoch. Le récepteur doit vérifier que cet horodatage correspond à ± 60 secondes du "now" (maintenant). |
CardNetworkResult
Contient un réseau et un code de résultat brut provenant de ce réseau.
Représentation JSON | |
---|---|
{
"network": enum( |
Champs | |
---|---|
network |
OBLIGATOIRE: réseau d'où provient le code de résultat. |
iso8583Result |
OBLIGATOIRE: code ISO-8583 renvoyé par le réseau. Si le réseau utilise son propre format de code de réponse, l'intégrateur doit mapper ces codes de réponse aux codes renvoyés ISO-8583. |
rawNetworkResult |
OBLIGATOIRE: valeur brute renvoyée par le réseau. Les réseaux qui utilisent les codes de retour ISO-8583 auront déjà la même valeur dans ce champ et dans |
Réseau
Définit les réseaux de cartes susceptibles d'avoir renvoyé l'rawResult
.
Enums | |
---|---|
UNKNOWN_NETWORK |
Le réseau n'a pas été reconnu. |
NETWORK_NOT_INVOLVED |
Utilisez cette valeur si le refus ne provient pas du réseau (par exemple, si l'intégrateur a refusé l'achat avant même qu'il ne soit envoyé sur le réseau de la carte). |
AMEX |
AMEX Network |
COMPROCARD |
Réseau COMPROCARD |
DANKORT |
DANKORT Network |
DINACARD |
DINACARD Network |
DINERS_CLUB |
Réseau DINERS_CLUB |
DISCOVER |
DISCOVER Network |
EFTPOS |
Réseau EFTPOS |
ELO |
ELO Network |
ENROUTE |
ENROUTE Network |
FELICA |
FELICA Network |
GE_CAPITAL |
Réseau GE_CAPITAL |
HIPERCARD |
HIPERCARD Network |
ID |
Réseau d'ID |
INTERAC |
Réseau INTERAC |
JCB |
Réseau JCB |
LASER |
LASER Network |
MAESTRO |
MAESTRO Network |
MASTERCARD |
MASTERCARD Network |
PPT |
Réseau PPT |
QUICPAY |
Réseau QUICPAY |
RUPAY |
Réseau RUPAY |
SBERCARD |
SBERCARD Network |
SOLO |
SOLO Network |
SYNCHRONY |
SYNCHRONY Network |
UNIONPAY |
UNIONPAY Network |
VISA |
VISA Network |
AvsResult
Résultat de la validation des champs d'adresse fournis dans la requête.
Tous les champs sont obligatoires, car nous voulons un résultat explicite pour chaque champ au lieu de compter sur l'absence d'un champ comme résultat implicite.
Représentation JSON | |
---|---|
{ "rawAvsResult": string, "streetAddress": enum( |
Champs | |
---|---|
rawAvsResult |
OBLIGATOIRE: valeur AVS brute renvoyée par le réseau de la carte. |
streetAddress |
OBLIGATOIRE: résultat de la validation de l'élément Si le champ n'a pas été défini dans la requête, cette valeur doit être "NOT_SENT". |
localityName |
OBLIGATOIRE: résultat de la validation de l'élément Si le champ n'a pas été défini dans la requête, cette valeur doit être "NOT_SENT". |
administrativeAreaName |
OBLIGATOIRE: résultat de la validation de l'élément Si le champ n'a pas été défini dans la requête, cette valeur doit être "NOT_SENT". |
postalCodeNumber |
OBLIGATOIRE: résultat de la validation de l'élément Si le champ n'a pas été défini dans la requête, cette valeur doit être "NOT_SENT". |
countryCode |
OBLIGATOIRE: résultat de la validation de l'élément Si le champ n'a pas été défini dans la requête, cette valeur doit être "NOT_SENT". |
VerificationResult
Enums | |
---|---|
UNKNOWN_AVS_MATCH |
Ne définissez jamais cette valeur par défaut. |
NOT_SENT |
Google n'a pas envoyé ce champ. Nous n'avons donc pas pu le modifier. |
MATCH |
Google a envoyé le champ à l'intégrateur, qui a été vérifié via AVS et correspond à la valeur attendue. |
MISMATCH |
Google a envoyé le champ à l'intégrateur, qui a été vérifié via AVS, mais ne correspondait pas à la valeur attendue. |
SKIPPED |
Google a envoyé le champ à l'intégrateur, mais celui-ci n'a pas vérifié le champ. |
NOT_SPECIFIED |
Google a envoyé le champ à l'intégrateur, qui l'a vérifié via AVS, mais le code de résultat AVS ne fournit pas suffisamment d'informations pour que l'intégrateur sache si le champ correspond à la valeur attendue. |
CvnResult
Résultat de la validation du cryptogramme fourni dans la demande.
Enums | |
---|---|
UNKNOWN_CVN_RESULT |
Ne définissez jamais cette valeur par défaut. |
NOT_SENT |
Google n'a pas fourni le cryptogramme. Il n'a donc pas pu être validé. |
NOT_VERIFIED |
Google a envoyé le cryptogramme, mais celui-ci n'a pas été validé. Cela correspond à un code de résultat réseau de "F" |
MATCH |
Google a envoyé le cryptogramme, celui-ci a été validé et il a été mis en correspondance. Cela correspond au code de résultat réseau "M". |
MISMATCH |
Google a envoyé le cryptogramme. Celui-ci a été validé, mais il ne correspondait pas. Cela correspond au code de résultat réseau "N". |