Mise en œuvre d'une intégration Batch

Conditions préalables Copied to Clipboard

  • Vérifiez que votre profil de commerçant est activé pour le service Batch.
  • Avant de commencer l'intégration, voir les bonnes pratiques et conseils.

Étapes d'intégration Copied to Clipboard

Étape 1 : Accéder à la passerelle

Tout d'abord, vérifiez votre connectivité à Mastercard Gateway.

Étape 2 : Connaître vos champs de saisie

Avant de commencer à créer l'intégration, vous devez préparer les valeurs des champs de saisie.

Étape 3 : Créer une demande de batch

La création du corps de la demande est une étape essentielle dans l'intégration.

Étape 4 : Envoyer une demande de batch

Il existe de nombreux composants pour garantir l'envoi sécurisé du corps de la demande de transaction à Mastercard Gateway.

Étape 5 : Extraire le statut du batch

Une fois qu'un batch est soumis, vous pouvez périodiquement demander son état pour déterminer l'état actuel du traitement du batch.

Étape 6 : Traiter la réponse du batch

Une fois que le traitement d'un batch est terminé, vous pouvez demander un fichier de réponse contenant le résultat de chacune des opérations chargées.

Étape 7 : Test et mise en service

Les tests vous permettent de vérifier si votre intégration fonctionne comme vous le souhaitez.

Dépannage et questions fréquentes Copied to Clipboard

Puis-je utiliser plusieurs profils de commerçants dans une seule demande de batch ?

Oui, vous pouvez utiliser plusieurs profils de commerçants dans une seule demande de batch si vous pouvez garantir que les informations d'identification de l'opération (identifiant du commerçant et mot de passe d'authentification) pour chaque ligne d'enregistrement de l'opération sont valides pour permettre une authentification et une autorisation réussies.

Par défaut, pour chaque opération d'un batch, les informations d'indentification de l'opération utilisent les informations d'authentification fournies dans l'en-tête de la demande de batch (identifiant et mot de passe du commerçant). Vous pouvez choisir d'utiliser le mécanisme par défaut ou de fournir les informations d'identification de l'opération pour chaque ligne d'enregistrement de l'opération. Pour la dernière option, l'authentification de l'opération utilise les informations d'identification de niveau de l'opération et ne sélectionne pas par défaut les informations d'identification de chargement de batch. Si les informations d'identification au niveau de l'opération sont incorrectes, le téléchargement du batch sera rejeté.

Dans l'exemple de fichier de batch ci-dessous, les opérations VOID (Annuler) utilisent les informations d'identification fournies dans l'en-tête de demande de batch, car l'identifiant et le mot de passe du commerçant n'ont pas été fournis.

merchant,apiPassword,apiOperation,order.id,transaction.id,transaction.amount,transaction.currency,
cardDetails.card.number, 
cardDetails.card.expiry.month,cardDetails.card.expiry.year,card.number,result,error.cause, error.explanation,response.gatewayCode
TESTMERCHANT,<TESTMERCHANT_API_PASSWORD>,PAY,921830104167,TXID1,30,AUD,5123456789012346,05,13,,,,,
TESTMERCHANT,<TESTMERCHANT_API_PASSWORD>,PAY,921830104168,TXID1,30,AUD,5123456789012346,05,13,,,,,
,,VOID,1256378915689,TXID1,100,AUD,4987654321098769,05,13,,,,,
,,VOID,1256378915690,TXID1,100,AUD,4987654321098769,05,13,,,,,
,,VOID,1256378915691,TXID1,100,AUD,4987654321098769,05,13,,,,,

Quelles sont les causes possibles d'échec d'une soumission de batch ?

Une soumission de batch peut échouer en raison des conditions d'erreur suivantes.

Scénario Message d'erreur
Batch incomplet en raison de la non-concordance du résumé du message SHA-1 L'envoi du batch a échoué pour l'une des raisons suivantes :
  • Le MIC soumis ne correspond pas au MIC calculé pour le fichier de batch reçu.
  • Le MIC n'a pas fait l'objet d'un hachage via l'algorithme SHA-1.
  • Le codage du MIC n'est pas en hexadécimal.
  • Aucun MIC n'est indiqué dans le corps de la demande.
Veuillez vérifier la demande et essayer de soumettre à nouveau le batch.
Nom de batch en double
  • Un batch du même nom mais avec un contenu différent a déjà été chargé et validé.
  • Un batch du même nom est en cours de chargement.
Échec de l'envoi du batch : un batch du même nom est en cours de chargement ou un batch du même nom mais avec un contenu différent a déjà été chargé. Si le fichier est en cours de chargement, veuillez patienter jusqu'à la fin de l'opération. Si vous utilisez un nom de fichier déjà pris, renommez le fichier et relancez la soumission.
Une erreur d'authentification est renvoyée si vous ne disposez pas de privilèges suffisants pour soumettre des batches :
  • Le commerçant ne dispose du privilège « API et Hosted Batch »
  • ID du commerçant invalide
  • Mot de passe incorrect
Échec de l'authentification : les informations d'identification fournies dans l'enregistrement <record number> sont incorrectes. Les raisons peuvent être les suivantes :
  • Un ID de commerçant est fourni, mais ce commerçant ne dispose pas de privilèges suffisants pour soumettre des batches pour traitement.
  • L'ID de commerçant est incorrect.
  • Le mot de passe fourni est incorrect.
Corrigez les informations d'identification et assurez-vous que le commerçant dispose de privilèges suffisants pour soumettre des batches pour traitement, puis essayez de soumettre à nouveau la demande.
Une erreur d'authentification est renvoyée si vous fournissez uniquement le mot de passe mais aucun ID de commerçant au niveau de l'opération. Échec de l'authentification. L'enregistrement <record number> du fichier de batch comporte un mot de passe, mais pas d'ID de commerçant. Ajoutez un ID de commerçant ou supprimez le mot de passe pour utiliser les informations d'identification du commerçant au niveau du batch pour cet enregistrement, puis réessayer de soumettre la demande.
Une erreur d'authentification est renvoyée si les informations d'identification du batch ne sont pas formatées correctement. Échec de l'authentification : les informations d'identification fournies dans l'en-tête :
  • utilisent un caractère non valide ;
  • utilisent un codage base 64 non valide ;
  • dépassent 70 caractères.
Corriger la demande, puis réessayez de la soumettre.
Une erreur d'authentification est renvoyée si :
  • Les informations d'identification du batch ne sont pas valides
  • Le commerçant ne dispose du privilège « API et Batch ».
  • L'ID de commerçant est vide
  • L'ID de commerçant est incorrect
  • Le mot de passe est vide
  • Le mot de passe est incorrect
Échec de l'authentification : Les informations d'identification fournies pour le batch ne sont pas valides. corrigez les informations d'identification et réessayez de soumettre la demande.
Une erreur d'analyse est renvoyée si l'en-tête contient des caractères non valides. Échec de l'envoi du batch : le batch n'a pas pu être analysé car l'en-tête contenait un caractère illégal. Les caractères autorisés sont les suivants :
  • Les caractères alphanumériques (a-z, A-Z, 0-9)
  • Le point (.)
  • Les crochets ([ ])
Corrigez les noms d'en-tête et assurez-vous que vous utilisez le bon codage, puis essayez de soumettre à nouveau le batch.
Une erreur d'analyse est renvoyée si une ligne d'enregistrement d'opération contient plus de valeurs que celles définies dans l'en-tête. Échec de l'envoi du batch : le batch n'a pas pu être analysé parce que l'enregistrement <record number> contenait plus de valeurs qu'il n'en était défini dans l'en-tête. Corrigez le batch, puis réessayer de le soumettre.
Une erreur d'analyse est renvoyée si la taille maximale d'un champ individuel est dépassée ou si une erreur d'analyse inconnue s'est produite dans un enregistrement d'opération. Échec de l'envoi du batch : le batch n'a pas pu être analysé en raison d'une erreur dans l'enregistrement <record number>. Assurez-vous que le batch est conforme au format de fichier et que vous utilisez le bon codage, puis essayez de soumettre à nouveau le batch.
Une erreur de codage est renvoyée si aucun codage n'a été fourni ou si le codage fourni n'est pas pris en charge. Échec de la demande : le codage fourni n'est pas pris en charge. Les codages pris en charge sont UTF-8 et LATIN1. Soumettez à nouveau la demande en utilisant un codage pris en charge.
Le batch est introuvable Échec de la demande : un batch portant ce nom est introuvable.
Corrigez le nom du batch et soumettez à nouveau la demande.
Le contrôle de longueur pour la version fournie a échoué. Échec de la demande : la version fournie n'est pas valide. Corrigez la version et soumettez à nouveau la demande.
La vérification de la longueur du nom de batch fourni a échoué. Échec de la demande : le nom de batch fourni n'est pas valide. Corrigez le nom du batch et soumettez à nouveau la demande.
La vérification de la longueur de l'ID du commerçant fourni a échoué. Échec de la demande : l'ID du commerçant fourni n'est pas valide. Corrigez l'ID de commerçant et soumettez à nouveau la demande.
Une erreur de passerelle s'est produite La demande n'a pas pu être soumise à la passerelle en raison d'une erreur interne de celle-ci. Réessayez ultérieurement.
Les opérations ayant échoué dans un fichier de batch sont-elles réessayées ?

Le traitement des opérations par Batch peut échouer en raison d'une défaillance des communications ou des systèmes due à l'une des erreurs suivantes :

  • Une erreur due à une défaillance interne du système s'est produite.
  • Une erreur s'est produite car les ressources du serveur étaient insuffisantes pour traiter la demande à ce moment-là.
  • Une erreur s'est produite lors du traitement d'une transaction de vérification de Tokenization

Lorsque cela se produit et qu'il est possible de relancer une opération, Batch tente d'envoyer celle-ci pour traitement jusqu'à la réception d'une réponse ne pouvant pas faire l'objet d'une nouvelle tentative ou jusqu'à ce que la limite des tentatives soit atteinte.

Que se passe-t-il si je charge un nom de batch en double avec le même contenu ou un contenu différent ?

Batch stocke les noms de batch et leur code d'intégrité du message (MIC) correspondant que vous avez chargés. Les batches portant un nom de batch précédemment soumis mais avec un contenu différent peuvent être identifiés et seront rejetés par Batch.

Il est également possible d'identifier les batches de nom et de contenu identiques soumis précédemment. Batch renvoie le même statut que pour le batch chargé précédemment. Ainsi, si le commerçant pense qu'il existe un problème de transmission, il peut vérifier que le batch a été chargé correctement vers Batch.

Si un nom de batch en double est soumis avec un contenu de batch différent ou si ce batch est chargé alors que le premier batch est en cours de chargement, le code de statut HTTP 409 et un message d'erreur sont renvoyés.
Pourquoi une erreur de format d'en-tête avec le code HTTP 400 s'affiche-t-elle ?

Les valeurs de la ligne d'en-tête d'une demande de batch soumise pour traitement ne peuvent contenir que des caractères figurant dans les noms de champ NVP API. Les caractères suivants sont autorisés :

  • Les caractères alphanumériques (a-z, A-Z, 0-9)
  • Le point (.)
  • Les crochets ([ ])
Pourquoi est-ce que je reçois une erreur d'analyse lorsque je soumets un batch pour traitement ?

Batch rejette un batch en cas de détection d'erreurs d'analyse. L'analyse comprend la division du batch en lignes et des lignes en champs.

Une erreur d'analyse peut se produire dans les cas suivants :

  • Un enregistrement d'opération contient plus de virgules que ce qui figure dans l'enregistrement d'en-tête.
  • La taille de champ individuel maximale est atteinte.

Vous devez d'abord corriger ces erreurs avant de soumettre à nouveau le batch pour traitement.

Bonnes pratiques et conseils Copied to Clipboard

Est-il certain que l'ordre dans lequel les opérations sont spécifiées dans un fichier de batch sera l'ordre de traitement ?

Le service Batch ne garantit pas qu'il traitera les opérations dans le même ordre que celui spécifié dans le fichier de batch, le répartiteur Batch pouvant traiter les opérations en parallèle. Ce comportement peut également être attribué à la fonction de nouvel essai, c'est-à-dire que si certaines opérations d'un fichier de batch nécessitent un nouvel essai, les opérations qui sont prêtes seront traitées en premier, quel que soit l'ordre dans lequel elles sont spécifiées. Par exemple, même si des opérations ultérieures sont spécifiées après des opérations initiales [opération Capture (Collecter) suivie d'une opération Authorization (Autorisation), opération Void (Annuler) suivie d'une opération Pay (Payer)], l'opération Capture (Collecter) peut être effectuée avant l'opération opération Authorization (Autorisation) ou l'opération Void (Annuler) avant l'opération Pay (Payer).

Par conséquent, pour les opérations qui doivent suivre strictement un ordre donné, il est recommandé d'exécuter d'abord le batch d'opérations initial, d'attendre le fichier de réponse du batch et, en cas de succès, d'exécuter le batch d'opérations suivant.

Comment puis-je utiliser la Tokenization avec Batch ?

La Tokenization stocke les détails des cartes dans un jeton. Pour utiliser Tokenization avec Batch, vous devez utiliser l'identifiant de jeton dans le fichier de batch, comme indiqué ci-dessous.

apiOperation,cardDetails.card.number,cardDetails.card.expiry.month,cardDetails.card.expiry.year,cardDetails.card.securityCode,cardDetails.cardToken,transaction.amount,transaction.currency,transaction.id,transaction.authorizationCode,order.id,card.start.month,card.start.year,card.issueNumber,card.bankAccountType
AUTHORIZE,,,,,200,10,AUD,TXID1,,10323711802,,,,
AUTHORIZE,,,,,300,20,AUD,TXID1,,10323711803,,,,
AUTHORIZE,,,,,400,10,AUD,TXID1,,10323711804,,,,
AUTHORIZE,,,,,500,5.99,AUD,TXID1,,10323711805,,,,
Dois-je fournir les informations d'identification de l'opération pour chaque ligne d'enregistrement d'opération dans un fichier de batch ?

Les informations d'identification de l'opération incluent l'identifiant du commerçant et le mot de passe. Pour chaque opération d'un batch, les informations d'indentification d'opération utilisent par défaut les informations d'identification d'authentification fournies dans l'en-tête de la demande de batch (identifiant et mot de passe du commerçant). Toutefois, si vous spécifiez des valeurs pour ces deux champs dans les lignes d'enregistrement d'opération, l'authentification de l'opération utilisera les informations d'identification au niveau de l'opération, et non les informations d'identification par défaut du batch chargé.

Dans le cas de plusieurs profils de commerçant, vous pouvez choisir d'utiliser par défaut les informations d'authentification fournies avec l'en-tête de la demande de batch et/ou de fournir les informations d'identification d'opération pour un ou plusieurs profils de commerçant.
Si vous souhaitez utiliser les informations d'identification au niveau de l'opération, vous devez fournir À LA FOIS l'identifiant du commerçant et ses informations d'identification pour chaque ligne d'enregistrement d'opération, et non l'un ou l'autre de ces éléments. Si vous n'êtes pas autorisé à utiliser la fonction Batch ou si les informations d'identification au niveau de l'opération sont incorrectes, le téléchargement du batch sera rejeté. Si vous souhaitez utiliser par défaut les informations d'identification figurant dans l'en-tête de la demande de batch, ne les incluez pas dans la demande.
Puis-je traiter plusieurs types d'opérations (Pay (Payer), Refund (Rembourser), Auth (Autoriser), Capture (Collecter), Void (Annuler), etc.) dans un seul fichier de batch ?

Oui, vous pouvez traiter plusieurs types d'opérations dans un seul fichier de batch à condition qu'elles ne soient PAS liées à la même commande, c'est-à-dire qu'elles ne contiennent pas le même identifiant de commande. Le service Batch ne garantit pas qu'il traitera les opérations dans le même ordre que celui spécifié dans le fichier de batch, le répartiteur Batch pouvant traiter les opérations en parallèle. Ce comportement peut également être attribué à la fonction de nouvel essai, c'est-à-dire que si certaines opérations d'un fichier de batch nécessitent un nouvel essai, les opérations qui sont prêtes seront traitées en premier, quel que soit l'ordre dans lequel elles sont spécifiées. Par exemple, si des opérations Pay (Payer) et Void (Annuler) figurent dans le même fichier de batch, l'opération Void (Annuler) peut être effectuée avant l'opération Pay (Payer). Toutefois, si les opérations ne sont PAS liées à la même commande (c.-à-d. si elles contiennent des identificateurs de commande différents), vous pouvez placer plusieurs types d'opérations dans un même fichier de batch.

Puis-je utiliser des sources multiples de détails de carte dans un seul fichier de batch ?

Oui, vous pouvez utiliser des sources multiples de détails de cartes dans un seul fichier de batch, à l'exception de l'identifiant de session de paiement. Pour plus d'informations sur les sources multiples, voir Sources multiples de détails de cartes.

Les opérations Authorize (Autoriser) de l'exemple ci-dessous utilisent des jetons au lieu des détails de la carte.


apiOperation,order.id,transaction.id,transaction.amount,transaction.currency,cardDetails.card.number,cardDetails.card.expiry.month,cardDetails.card.expiry.year,card.number,cardDetails.cardToken,result,error.cause,error.explanation,response.gatewayCode
PAY,921830104167,TXID1,30,AUD,5123456789012346,05,13,,,,,,
PAY,921830104168,TXID1,50,AUD,5123456789012346,05,13,,,,,,
PAY,921830104169,TXID1,100,AUD,4987654321098769,05,13,,,,,,
AUTHORIZE,10072028281,TXID1,,,,,,,200,,,,,
AUTHORIZE,10072028282,TXID1,,,,,,,300,,,,,
AUTHORIZE,10072028283,TXID1,,,,,,,400,,,,,