Search Overlay

Paiement alternatif avec jeton

Paysafe Checkout prend actuellement en charge les modes de paiement alternatifs (MPA) suivants : Interac et PayPal. Pour de plus amples renseignements, voir l’API Paiements alternatifs.

Une fois que vous avez reçu le jeton MPA à usage unique de Paysafe Checkout, vous pouvez l’utiliser pour effectuer un paiement à l’aide de l’API Paiements alternatifs.

Si vos transactions sont libellées en plusieurs devises, vous devez réfléchir à la manière dont vous allez gérer les multiples comptes marchands concernés et sélectionner le bon compte à utiliser lors de l’encaissement des paiements.

Actuellement, Paysafe accepte les devises suivantes :

  • pour PayPal : la plupart des principales devises, y compris USD, CAD, GBP et EUR.
  • pour Interac : CAD seulement

Le point de terminaison de paiement utilise la clé API de serveur à serveur. N’utilisez pas l’API Paiements alternatifs à partir du navigateur Web du client, car cela exposerait cette clé.

Appelez le point de terminaison d’API Paiements alternatifs à partir de votre serveur pour effectuer le paiement :

POST /alternatepayments/v1/accounts/account_id/payments

curl -X POST https://api.test.paysafe.com/alternatepayments/v1/accounts/1001199750/payments \
-u test_username:B-qa2-0-59564dfa-0-302c021426a55dde98dc2a052cccc1ddc8daa776a7a4fe2e0214080388fded986767abc445e58af123c01003cb8b \
-H 'Content-Type: application/json' \
-d ' {
"merchantRefNum": "1537363109",
"amount": 5000,
"settleWithAuth": false,
"returnLinks": [{
"rel": "default",
"href": "https://mysite.com/return"
}],
"paymentType": "INTERAC",
"paymentToken": "AP97U2uORetNQZaO"
} '

Avant d’essayer l’exemple, vous devez :

  • Remplacez le numéro de compte (1001199750) dans l’URL par le numéro de compte de test que vous avez reçu de Paysafe pour le prestataire de MPA.
  • Remplacez le nom d’utilisateur et le mot de passe de l’utilisateur de la clé API (après le -u) par la clé API de test que vous avez reçue de Paysafe.
  • Remplacez le type de paiement (INTERAC), si nécessaire, par le type de paiement que vous effectuez. Actuellement, Interac et PayPal sont pris en charge.
  • Remplacez le jeton de paiement (AP97U2uORetNQZaO) par le jeton de test que vous avez obtenu dans la méthode resultCallback (dans le cas où vous avez défini le paramètre environment sur TEST).

La requête de paiement par MPA contient les paramètres suivants.

ÉlémentTypeDescription
montant

integer

max=999999999

Il s’agit du montant de la requête, en unités mineures.
merchantRefNum

string

length<=255

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.
settleWithAuthbooleanIndique si la requête est une autorisation uniquement (pas de règlement). Cette valeur doit être définie sur false.
paymentTypeenumIl s’agit du type de paiement. La valeur doit correspondre au type de paiement figurant dans la liste des prestataires pris en charge, c’est-à-dire INTERAC ou PAYPAL.
paymentTokenstringIl s’agit du jeton de paiement renvoyé par Paysafe Checkout pour la requête de MPA.

Tous les paramètres du tableau ci-dessus sont obligatoires pour la requête de paiement par MPA.

{
"id": "0643c070-15c0-4218-8af1-1dc82b4f93fc",
"merchantRefNum": "1537363109",
"amount": 5000,
"currencyCode": "CAD",
"paymentType": "INTERAC",
"settleWithAuth": false,
"availableToSettle": 5000,
"availableToRefund": 0,
"txnTime": "2018-09-19T13:17:35Z",
"status": "COMPLETED",
"gatewayResponse": {
"id": "d3188d9c-f81a-4958-8505-03764bf577f2"
"processor": "INTERAC"
},
"links": [{
"rel": "self",
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1001199750/payments/0643c070-15c0-4218-8af1-1dc82b4f93fc"
}]
}

La réponse au paiement par MPA contient les paramètres supplémentaires suivants.

ÉlémentTypeDescription
IdstringIl s’agit de l’identifiant unique pour ce paiement par MPA.
currencyCodestringIl s’agit de la devise du paiement. La devise du compte est utilisée par défaut.
availableToSettlenumberIl s’agit du montant restant à imputer, en unités mineures.
availableToRefundnumberIl s’agit du montant restant à rembourser, en unités mineures.
txnTimeUTC formatted date

Il s’agit de la date et de l’heure auxquelles la transaction a été traitée.

P. ex. 2017-12-11T16:33:49Z

statusenumIl s’agit de l’état de la requête.
gatewayResponseobjectIl s’agit des données renvoyées par la passerelle externe.
linkstableau d’objets de lienIl s’agit d’un ensemble de liens liés à la ressource.

Politique de jeu responsable et de protection des vendeurs de PayPal

La Politique de protection des vendeurs de PayPal peut protéger les transactions d’un marchand contre les rétrofacturations et les annulations, ainsi que contre les frais qui y sont associés. Cela signifie que si un client conteste un achat PayPal qu’il a effectué sur votre site, vous pouvez être autorisé à conserver le montant total de l’achat et à éviter les frais de rétrofacturation (pour les transactions effectuées par carte de débit ou de crédit). La Politique de jeu responsable de PayPal permet aux marchands d’identifier de manière unique les comptes PayPal utilisés en relation avec les comptes de jeu des consommateurs, afin que le marchand puisse autoriser l’utilisation d’un compte PayPal avec un seul compte de jeu des consommateurs.

Afin d’être couvert par les politiques de protection des vendeurs et le jeu responsable de PayPal, le marchand peut suivre ces trois étapes simples.

Pour la politique de jeu responsable de PayPal, seules les étapes 2 et 3 sont suffisantes, l’étape 1 n’est pas nécessaire.

  1. Le marchand fournit l’adresse de livraison du client et ses préférences en matière d’expédition dans la requête Paysafe Checkout pour PayPal.
  2. Paysafe renvoie un jeton PayPal à usage unique dans la réponse au paiement (le jeton dans resultCallback) – utiliser ce jeton pour effectuer un appel de recherche à l’aide de l’API Paiements alternatifs. Grâce à cet appel de recherche, vous pouvez valider l’adresse de livraison du client et l’identifiant du payeur (le paramètre payerId), qui sont inclus dans la réponse. (PayPal utilise le PayerID pour identifier le client de manière unique, et le marchand peut alors décider de ne pas poursuivre la transaction si le même payerId est utilisé avec un autre compte de consommateur enregistré chez le marchand).
  3. Après avoir validé le client, vous pouvez utiliser le jeton de paiement pour effectuer un paiement avec l’API Paiements alternatifs. Le jeton renvoyé lors du paiement est utilisé pour le paymentToken dans cet appel à l’API Paiements alternatifs.

1. Utiliser Paysafe Checkout pour s’inscrire à la protection des vendeurs PayPal

Voici comment Paysafe Checkout doit être configuré avec une adresse de livraison et une préférence en matière d’expédition afin d’activer la protection des vendeurs PayPal :

var options = {
amount: 105,
paymentMethodHeaders: JSON.stringify(paymentMethodHeaders),
environment: env,
preferredPaymentMethod: "PAYPAL",
currency: "EUR",
companyName: "Example Inc.",
holderName: "Nikolay Diyanov",
shippingAddress: {
recipientName: "Brian Robinson",
street: "100 Queen Street",
street2: "201",
city: "San Jose",
country: "US",
zip: "95131",
state: "CA",
},
paymentMethodDetails: {
paypal: {
shippingPreference: "SET_PROVIDED_ADDRESS",
},
},
}

paysafe.checkout.setup(apiKey, options, function (instance, error, result) {

});

2. Vérifier le client avec l’API Paiements alternatifs

Après avoir reçu le jeton dans la réponse Paysafe Checkout, appelez le point de terminaison d’API Paiements alternatifs à partir de votre serveur pour vérifier le PayerID et l’adresse de livraison :

/alternatepayments/v1/accounts/account_id/initialpayments/paymenttoken

curl -X POST \
https://api.test.paysafe.com/alternatepayments/v1/accounts/1001264440/initialpayments/paymenttoken \
-u test_username:B-qa2-0-59564dfa-0-302c021426a55dde98dc2a052cccc1ddc8daa776a7a4fe2e0214080388fded986767abc445e58af123c01003cb8b \
-H 'Content-type: application/json' \
-H 'Live-Mode: false' \
-H 'Simulator: EXTERNAL' \
-d '{
"paymentToken":"APxWbE56G45X50l7"
}'

{
"id": "d8469a40-6afd-4566-9f8a-974ddb4cd5b2",
"merchantRefNum": "PayPal_12341234236",
"dupCheck": true,
"amount": 200,
"currencyCode": "EUR",
"paymentType": "PAYPAL",
"profile": {
"firstName": "Nikolay",
"lastName": "Iliyanov"
},
"shippingDetails": {
"recipientName": "Brian Robinson",
"street": "100 Queen Street",
"street2": "201",
"city": "San Jose",
"state": "CA",
"country": "US",
"zip": "95131"
},
"returnLinks": [{
"rel": "default",
"href": "https://mysite.com/return"
}],
"liveMode": false,
"txnTime": "2019-06-03T09:51:10Z",
"updatedTime": "2019-06-03T09:53:48Z",
"statusTime": "2019-06-03T09:53:48Z",
"status": "WAITING_FINALIZATION",
"gatewayResponse": {
"payerId": "2AGQAPZCY4XSQ",
"id": "PAY-6X1925138R289474GLT2O3EA",
"processor": "PAYPAL"
},
"paymentToken": "APxWbE56G45X50l7",
"links": [{
"rel": "self",
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1001264440/initialpayments/d8469a40-6afd-4566-9f8a-974ddb4cd5b2"
}],
"paypal": {
"consumerId": "metis-buyer@paysafe.com"
}
}

3. Effectuer le paiement avec l’API Paiements alternatifs

Une fois que vous avez vérifié l’identifiant du payeur PayPal (paramètre payerId) et l’adresse de livraison du client (objet shippingDetails), vous pouvez appeler le point de terminaison d’API Paiements alternatifs pour effectuer le paiement :

/alternatepayments/v1/accounts/account_id/payments

curl -X POST https://api.test.paysafe.com/alternatepayments/v1/accounts/1001264440/payments \
-u test_username:B-qa2-0-59564dfa-0-302c021426a55dde98dc2a052cccc1ddc8daa776a7a4fe2e0214080388fded986767abc445e58af123c01003cb8b \
-H 'Content-Type: application/json' \
-H 'Live-Mode: false' \
-H 'Simulator: EXTERNAL' \
-d ' {
"merchantRefNum": "PayPal_12341234237",
"amount": 200,
"settleWithAuth": false,
"returnLinks": [{
"rel": "default",
"href": "https://mysite.com/return"
}],
"paymentType": "PAYPAL",
"paymentToken": "APxWbE56G45X50l7"
} '

{
"id": "b8a726f6-fe4d-45cb-b8ef-54f431f1aac5",
"merchantRefNum": "PayPal_12341234237",
"dupCheck": true,
"amount": 200,
"currencyCode": "EUR",
"paymentType": "PAYPAL",
"profile": {
"firstName": "Nikolay",
"lastName": "Iliyanov"
},
"shippingDetails": {
"recipientName": "Brian Robinson",
"street": "100 Queen Street",
"street2": "201",
"city": "San Jose",
"state": "CA",
"country": "US",
"zip": "95131"
},
"returnLinks": [{
"rel": "default",
"href": "https://mysite.com/return"
}],
"liveMode": false,
"txnTime": "2019-06-03T10:17:16Z",
"updatedTime": "2019-06-03T10:20:03Z",
"statusTime": "2019-06-03T10:20:03Z",
"status": "COMPLETED",
"gatewayResponse": {
"payPalAuthorizationId": "24673005BM8739416",
"payerId": "2AGQAPZCY4XSQ",
"id": "PAYID-LT2PHIA4TU30285CN593990P",
"processor": "PAYPAL"
},
"paymentToken": "APxWbE56G45X50l7",
"links": [{
"rel": "self",
"href": "https://api.test.paysafe.com/alternatepayments/v1/accounts/1001264440/initialpayments/b8a726f6-fe4d-45cb-b8ef-54f431f1aac5"
}],
"paypal": {
"consumerId": "metis-buyer@paysafe.com"
}
}