Traiter un achat par carte avec 3D Secure 2
POST /cardpayments/v1/accounts/account_id/auths
Une fois que l’utilisateur a été authentifié et que l’authentification a été enregistrée et validée sur la plateforme de Paysafe Group, vous pouvez envoyer une requête POST normale au point d’extrémité auths.
Votre requête doit contenir l’objet supplémentaire JSON Authentication.
Voir notre documentation API complète pour une description intégrale des paramètres requis pour la requête d’authentification.
curl -X POST https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/auths \
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc6712d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H ’Content-Type: application/json’ \
-d ’ {
"merchantRefNum": "demo-1",
"amount":10098,
"settleWithAuth": true,
"card": {
"cardNum": "4111111111111111",
"cardExpiry": {
"month": 2,
"year": 2027
},
"cvv": 123
},
"authentication": {
"eci": 5,
"cavv": "AAABCIEjYgAAAAAAlCNiENiWiV+=",
"threeDResult": "Y",
"threeDSecureVersion":"2.1.0",
"directoryServerTransactionId":"a3a721f3-b6fa-4cb5-84ea-c7b5c39890a2"
},
"billingDetails": {
"street": "100 Queen Street West",
"city": "Toronto",
"state": "ON",
"country": "CA",
"zip": "M5H 2N2"
}
} '
curl -X POST https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/auths \
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc6712d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H ’Content-Type: application/json’ \
-d ’ {
"merchantRefNum": "demo-1",
"amount":10098,
"settleWithAuth": true,
"card": {
"cardNum": "4111111111111111",
"cardExpiry": {
"month": 2,
"year": 2027
},
"cvv": 123
},
"authentication": {
"eci":5,
"cavv":"AAABCIEjYgAAAAAAlCNiENiWiV+=",
"xid":"OU9rcTRCY1VJTFlDWTFESXFtTHU=",
"threeDEnrollment":"Y",
"threeDResult":"Y",
"threeDSecureVersion":"1.0.2",
"signatureStatus":"Y"
},
"billingDetails": {
"street": "100 Queen Street West",
"city": "Toronto",
"state": "ON",
"country": "CA",
"zip": "M5H 2N2"
}
} '
Par défaut, le système de traitement des cartes vérifie qu’il n’y a pas de transactions en double.
Avant d’essayer l’exemple, vous devez :
- Remplacer le numéro de compte (89987201) dans l’URL par le numéro de compte de test que vous avez reçu.
- Remplacer la clé API (après le -u) par la clé API que vous avez reçue.
La requête contient les paramètres suivants :
Élément | Élément enfant | Type | Requis? | Description |
---|---|---|---|---|
merchantRefNum | string | Oui | Il s’agit du numéro de référence du marchand, créé par ce dernier, et soumis dans le cadre de la requête. Un numéro de référence unique du marchand doit être fourni pour chaque transaction. | |
montant | integer | Oui | Il s’agit du montant de la requête, en unités mineures. | |
settleWithAuth | boolean | No | Indique si la requête est une autorisation (pas de règlement) ou un achat (autorisation et règlement). La valeur par défaut est false. | |
carte | cardNum | string | Oui | Il s’agit du numéro de carte utilisé pour la requête. |
cardExpiry | object | Oui | Il s’agit de la date d’expiration de la carte. Les paramètres suivants sont requis :
| |
cvv | string | Non | Il s’agit du code de sécurité à 3 ou 4 chiffres qui apparaît sur la carte, après le numéro de carte. | |
authentification | eci | integer | Oui | Il s’agit du code de l’indicateur de commerce électronique, qui est renvoyé par l’émetteur de la carte indiquant si le titulaire de la carte a été authentifié avec succès. |
cavv | string length<=80 | Oui | Il s’agit de la valeur de vérification de l’authentification du titulaire de carte, qui est renvoyée par l’émetteur de la carte, indiquant que la transaction a été authentifiée. | |
threeDResult | enum | No | Indique le résultat de l’authentification. Les valeurs éventuelles sont :
La valeur R n’existe que pour 3D Secure 2. | |
directoryServerTransactionId | string length<=36 | No | Il s’agit de l’identifiant de transaction de serveur répertoire unique requis pour Mastercard. Ce champ est obligatoire lorsque l’émetteur de la carte est Mastercard. Existe seulement pour 3D Secure 2. | |
threeDSecureVersion | string min=5, max=8 | Oui | Il s’agit de la version du protocole 3D Secure. | |
billingDetails | street | string | No | Il s’agit de la première ligne de l’adresse municipale figurant dans l’adresse de facturation. |
city | string | No | Il s’agit de la ville figurant dans l’adresse de facturation. | |
state | string length<=40 | No | Il s’agit de la province ou de l’État ou de la province figurant dans l’adresse de facturation. | |
country | string length=2 | No | Il s’agit du pays figurant dans l’adresse de facturation. | |
zip | string length<=10 | No | Il s’agit du code postal de l’adresse de facturation. |
{
"links": [{
"rel": "self",
"href": "https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/auths/ebf6ae3d-88e1-40da-9b98-81044467345b"
}, {
"rel": "settlement",
"href": "https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/settlements/ebf6ae3d-88e1-40da-9b98-81044467345b"
}],
"id": "ebf6ae3d-88e1-40da-9b98-81044467345b",
"merchantRefNum": "demo-1",
"txnTime": "2017-05-01T14:52:35Z",
"status": "COMPLETED",
"amount":10098,
"settleWithAuth": true,
"availableToSettle": 0,
"card": {
"type": "VI",
"lastDigits": "1111",
"cardExpiry": {
"month": 2,
"year": 2027
}
"authentication": {
"eci": 5,
"cavv": "AAABCIEjYgAAAAAAlCNiENiWiV+=",
"threeDResult": "Y",
"threeDSecureVersion":"2.1.0",
"directoryServerTransactionId":"a3a721f3-b6fa-4cb5-84ea-c7b5c39890a2"
},
"billingDetails": {
"street": "100 Queen Street West",
"city": "Toronto",
"state": "ON",
"country": "CA",
"zip": "M5H 2N2"
}
} '
{
"links": [{
"rel": "self",
"href": "https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/auths/ebf6ae3d-88e1-40da-9b98-81044467345b"
}, {
"rel": "settlement",
"href": "https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/settlements/ebf6ae3d-88e1-40da-9b98-81044467345b"
}],
"id": "ebf6ae3d-88e1-40da-9b98-81044467345b",
"merchantRefNum": "demo-1",
"txnTime": "2017-05-01T14:52:35Z",
"status": "COMPLETED",
"amount":10098,
"settleWithAuth": true,
"availableToSettle": 0,
"card": {
"type": "VI",
"lastDigits": "1111",
"cardExpiry": {
"month": 2,
"year": 2027
}
"authentication": {
"eci":5,
"cavv":"AAABCIEjYgAAAAAAlCNiENiWiV+=",
"xid":"OU9rcTRCY1VJTFlDWTFESXFtTHU=",
"threeDEnrollment":"Y",
"threeDResult":"Y",
"threeDSecureVersion":"1.0.2",
"signatureStatus":"Y"
},
"billingDetails": {
"street": "100 Queen Street West",
"city": "Toronto",
"state": "ON",
"country": "CA",
"zip": "M5H 2N2"
}
} '
L’état est défini à COMPLETED et la valeur de availableToSettle est 0 parce que la carte a été débitée automatiquement dans le cadre de la requête, étant donné que le signalement settleWithAuth a été défini sur « true ». Vous pouvez consulter la transaction à tout moment en utilisant le merchantRefNum ou l’identifiant renvoyé dans la réponse.
Les paramètres de réponse non contenus dans la requête sont décrits ci-dessous :
Élément | Élément enfant | Type | Description |
---|---|---|---|
links | tableau d’objets de lien | Contient un lien self qui peut être utilisé pour obtenir des détails sur l’autorisation. Contient un lien de règlement qui peut être utilisé pour obtenir des détails sur le règlement (saisie). | |
Id | string length<=36 | Il s’agit de l’identifiant renvoyé dans la réponse. | |
txnTime | string Format UTC | Il s’agit de la date et de l’heure auxquelles la requête a été traitée. | |
status | enum | L’état de l’autorisation associé à cet achat. Les valeurs éventuelles sont :
| |
availableToSettle | integer max=99999999999 | Il s’agit du montant de l’autorisation restant à imputer, en unités mineures. | |
carte | type | enum | Il s’agit du numéro de carte utilisé pour la requête. Les valeurs éventuelles sont :
|
lastDigits | string | Il s’agit des quatre derniers chiffres de la carte utilisée pour la requête. |