Search Overlay

Gérer le défi 3DS

Remarque : En tant que partenaire ISV/Paysafe, vous devrez effectuer toutes les étapes « marchand » ci-dessous au nom de l’entité juridique mère des marchands (PMLE) sous laquelle vos marchands exerceront leurs activités.

Selon la spécification 3DS 2, l’utilisateur doit être mis au défi avant d’effectuer un paiement. C’est ce que l’on appelle également le « flux de défi ».

Il est toutefois possible qu’une banque considère le paiement comme un risque faible. Dans ce cas, aucun défi ne sera proposé à l’utilisateur. C’est ce que l’on appelle le « flux sans friction ». Votre application doit pouvoir gérer les deux flux 3DS.

Gérer le flux de défi

Lorsque vous appelez le point d’extrémité /authentications à partir des API REST de Paysafe, votre serveur recevra unsdkChallengePayload. Cela signifie que l’utilisateur doit relever un défi 3DS avant de procéder à l’authentification. Vous pouvez gérer le défi dans votre application iOS comme suit :

  • Transmettez le sdkChallengePayload à la SDK iOS Paysafe.
[self.threeDSecureService challengeWithSdkChallengePayload: sdkChallengePayload
completion:^(NSString * _Nullable authenticationId, NSError * _Nullable error) {
if(error) {
// Traitez l’erreur pour obtenir plus d’informations
} else if(authenticationId) {
// Envoyez authentificationId à votre serveur pour vérifier l’état de l’authentification
}
}];
threeDSecureService.challenge(sdkChallengePayload: sdkChallengePayload,
completion: {(result: Result<String, Error>) in
switch result {
case let .failure(error):
// Traitez l’erreur pour obtenir plus d’informations

case let .success(authenticationId):
// Envoyez authentificationId à votre serveur pour vérifier l’état de l’authentification
}
})
  • La méthode Challenge() affichera un nouvel écran qui permettra à l’utilisateur de gérer le défi 3DS requis. Une fois l’épreuve terminée, Paysafe SDK redonne le contrôle à votre application en appelant la méthode challenge() completion.
  • Une fois que l’utilisateur a relevé le défi 3DS, vous recevez l’identifiant de l’authentification en cours. Envoyez l’authenticationId à votre serveur.

  • Votre serveur fera ensuite des appels aux API REST de Paysafe et vérifiera si le paiement a été effectué ou non. Si vous recevez un autre sdkChallengePayload, répétez simplement l’étape en cours.

Si la SDK ne parvient pas à générer une empreinte digitale, vous recevrez un message d’erreur ThreeDSecureError contenant des informations utiles sur la cause de l’échec. Lors du dépannage, vous pouvez commencer par vérifier le code d’erreur et le message détaillé. Vous pouvez consulter ci-dessous les codes d’erreur actuellement pris en charge :

Information sur l’erreur
Code d’erreurValeurExplication
ERROR_CODE_CONNECTION_FAILED9001L’opération a échoué en raison d’un délai d’inactivité ou d’un problème de connectivité.
ERROR_CODE_INVALID_RESPONSE9002Le serveur a renvoyé un format de données non valide qui n’a pas pu être traité par la SDK.
ERROR_CODE_INVALID_API_KEY9013Clé API ou secret API non valide fourni lors de la création d’une API Client Paysafe.
ERROR_CODE_INTERNAL_SDK_ERROR9014Une erreur générale de la SDK. Le message détaillé doit fournir des informations supplémentaires.
ERROR_CODE_INVALID_OPTIONS9015Erreur de champs d’option non valides. Le message détaillé doit fournir des informations supplémentaires.
ERROR_CODE_INVALID_MERCHANT_CONFIGURATION9501La configuration du compte marchand fourni n’est pas valide. L’équipe de soutien de Paysafe doit être informée.
ERROR_CODE_TRANSACTION_FAILED_OR_CANCELED9601L’opération a échoué en raison d’une annulation ou d’un échec.

Si vous ne parvenez pas à résoudre le problème par vous-même, vous pouvez contacter le service de soutien de Paysafe à l’adresse suivante integrations@paysafe.com et fournir l’identifiant de corrélation de l’erreur.

Gérer le flux sans friction

Lorsqu’il n’y a pas de sdkChallengePaylod dans le résultat /authentications, cela signifie que l’utilisateur a effectué un paiement « sans friction ». Dans ce cas, la SDK iOS de Paysafe n’a pas besoin de traitement supplémentaire et vous pouvez poursuivre le flux normal de votre application.