• France
Rechercher
Catégories
Tags
Français
Français
Anglais
Implémentation
Formulaire embarqué (cartes)
API REST de paiement
Formulaire en redirection
Push mail
Échange de fichiers
Paiement mobile
Exemples de code
Logos
Modules de paiement
Back office
Guides
Aide
FAQ
Tutoriels vidéos
Contacter le support

Création et utilisation d'alias (token)

Le paiement en un clic est aussi appelé paiement par alias. On trouvera aussi le terme token de paiement pour désigner un alias.

Le paiement par alias permet aux sites marchands d’offrir à leur clients la possibilité d’associer un moyen de paiement à un identifiant, dans le but de faciliter les paiements ultérieurs sur le site (plus besoin de ressaisir son numéro de carte bancaire).

Paiements avec l'alias

Les alias permettent :

  • Le paiement en un clic: L’acheteur n’ayant plus à saisir ses données bancaires lors des paiements ultérieurs. Dans ce cas, une simple étape de confirmation est présentée avec un récapitulatif de la transaction. Si le moyen de paiement est une carte bancaire, le cryptogramme visuel peut être requis à cette étape si cette dernière en possède un.
  • Le paiement en zero clic: Ce mode permet de créer une transaction à partir d'un alias sans interaction utilisateur. La création s'effectue lors d'un appel serveur à serveur.
  • Le paiement par abonnement. A chaque compte client est associé une récurrence et un montant, avec une durée limitée ou non dans le temps.

Sous certaines conditions (à voir avec l’interlocuteur de la plateforme de paiement), il est possible de partager des identifiants (alias) entre plusieurs entités juridiques. Les identifiants partagés entre plusieurs entités juridiques doivent être uniques et doivent être impérativement générés par la plateforme de paiement.

Creation d'un alias lors d'un encaissement

Le paramètre formAction permet la création d'un alias. Utilisez l'une des deux valeurs suivantes:

formAction Description
ASK_REGISTER_PAY Ajoute une case à cocher sur le formulaire de paiement pour enregister la carte
REGISTER_PAY L'alias sera crée automatiquement

L'e-mail est obligatoire pour toute création d'alias.

Dans l'appel au web service Charge/CreatePayment:

/doc/fr-FR/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.askRegisterPay.php#L9-L47
https://api.systempay.fr/api-payment/V4/Charge/CreatePayment
    {
        "amount": 990,
        "currency": "EUR",
        "formAction": "ASK_REGISTER_PAY",
        "orderId": "myOrderId-999999",
        "customer": {
            "email": "sample@example.com"
        }
    }
    /**
 * I initialize the PHP SDK
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/keys.php';
require_once __DIR__ . '/helpers.php';

/** 
 * Initialize the SDK 
 * see keys.php
 */
$client = new Lyra\Client();

/**
 * I create a formToken
 */
$store = array(
  "amount" => 250, 
  "currency" => "EUR", 
  "formAction" => "ASK_REGISTER_PAY",
  "orderId" => uniqid("MyOrderId"),
  "customer" => array(
    "email" => "sample@example.com"
));

$response = $client->post("V4/Charge/CreatePayment", $store);

/* I check if there are some errors */
if ($response['status'] != 'SUCCESS') {
    /* an error occurs, I throw an exception */
    display_error($response);
    $error = $response['answer'];
    throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage']);
}

/* everything is fine, I extract the formToken */
$formToken = $response["answer"]["formToken"];

?>

A la fin du paiement, l'objet PaymentTransaction contiendra l'alias du moyen de paiement dans la propriété paymentMethodToken:

{
    "orderCycle": "CLOSED",
    "orderStatus": "PAID",
    "serverDate": "2018-10-02T16:38:13+00:00",
    "orderDetails": (...)
    "customer": (...)
    "transactions": [
    {
        "shopId": "73239078",
        "uuid": "7af034f2883240c2876f6c61c7eab8ea",
        "amount": 990,
        "currency": "EUR",
        "paymentMethodType": "CARD",
        "paymentMethodToken": "b6e51ba31f934ac5b25ccad2a52ccd56",
        (...)
        "_type": "V4/PaymentTransaction"
        }
    ],
    "_type": "V4/Payment"
}

Creation d'un alias sans encaisser

Dans certains cas, vous souhaitez uniquement créer un alias sans éffectuer d'encaissement. Pour cela, vous devez utiliser le web service Charge/CreateToken:

/doc/fr-FR/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.token.php#L9-L44
https://api.systempay.fr/api-payment/V4/Charge/CreateToken
{
    "currency": "EUR",
    "orderId": "myOrderId-999999",
    "customer": {
        "email": "sample@example.com"
    }  
}
    /**
 * I initialize the PHP SDK
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/keys.php';
require_once __DIR__ . '/helpers.php';

/** 
 * Initialize the SDK 
 * see keys.php
 */
$client = new Lyra\Client();

/**
 * I create a formToken
 */
$store = array(
  "orderId" => uniqid("MyOrderId"),
  "customer" => array(
    "email" => "sample@example.com",
));

$response = $client->post("V4/Charge/CreateToken", $store);

/* I check if there are some errors */
if ($response['status'] != 'SUCCESS') {
    /* an error occurs, I throw an exception */
    display_error($response);
    $error = $response['answer'];
    throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage']);
}

/* everything is fine, I extract the formToken */
$formToken = $response["answer"]["formToken"];

?>

L'e-mail est obligatoire pour toute création d'alias.

L'appel fonctionne comme Charge/CreatePayment. Une transaction de type VERIFICATION sera créée.

kr-answer contiendra donc un objet de type Payment et l'alias sera retourné dans transactions[0].paymentMethodToken.

Utilisation d'un alias: paiement en un clic avec affichage du formulaire

Si vous avez préalablement enregistré un moyen de paiement (alias de carte), vous pouvez créer un paiement en transmettant l'alias à débiter dans le champ paymentMethodToken lors d'un appel au web service Charge/ CreatePayment. Grâce à cette méthode, l'acheteur n'a pas besoin de saisir à nouveau ses informations de carte. Un formulaire pré-rempli sera présenté à l'acheteur, il n'aura plus qu'à valider.

Si votre boutique est configurée pour demander le CVV, ou une authentification 3D-Secure, lors d'un paiement par alias, le formulaire s'adaptera automatiquement.

Pour l'utiliser, il suffit d'envoyer l'alias préalablement créé en utilisant le Web Service Charge/CreatePayment.

Exemple:

/doc/fr-FR/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.token.usage.php#L9-L44
https://api.systempay.fr/api-payment/V4/Charge/CreatePayment
    {
        "amount": 990,
        "currency": "EUR",
        "paymentMethodToken": "b6e51ba31f934ac5b25ccad2a52ccd56"
    }
    /**
 * I initialize the PHP SDK
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/keys.php';
require_once __DIR__ . '/helpers.php';

/** 
 * Initialize the SDK 
 * see keys.php
 */
$client = new Lyra\Client();

/**
 * create a transaction with a payment method token
 */
$store = array(
  "amount" => 250, 
  "currency" => "EUR",
  "paymentMethodToken" => "b6e51ba31f934ac5b25ccad2a52ccd56"
);

/**
 * do the web-service call
 */
$response = $client->post("V4/Charge/CreatePayment", $store);

/* I check if there are some errors */
if ($response['status'] != 'SUCCESS') {
    /* an error occurs, I throw an exception */
    display_error($response);
    $error = $response['answer'];
    throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage']);
}

?>

Charge/CreatePayment retourne un formToken. Vous devez ensuite générer votre formulaire de paiement à l'aide du client JavaScript, de la même façon qu'un paiement simple.

Pour plus d'informations, rendez-vous ici: undefined.

Utilisation d'un alias: paiement zéro click sans affichage de formulaire

Vous pouvez créer une transaction à partir d'un alias sans interaction utilisateur (sans demande du CVV ni authentification 3D Secure). L'appel se fera de serveur à serveur et retournera une transaction (pas de notification à la fin du paiement dans ce cas).

Pour cela, effectuez un appel au web service Charge/CreatePayment en transmettant l'alias et en valorisant formAction à SILENT.

Exemple:

/doc/fr-FR/rest/V4.0/api/kb/authentication.html
https://api.systempay.fr/api-payment/V4/Charge/CreatePayment
    {
        "amount": 990,
        "currency": "EUR",
        "paymentMethodToken": "b6e51ba31f934ac5b25ccad2a52ccd56",
        "formAction": "SILENT"
    }

Charge/CreatePayment retourne directement une transaction comme :

{
    "shopId": "73239078",
    "orderCycle": "CLOSED",
    "orderStatus": "PAID",
    "serverDate": "2018-09-27T14:02:17+00:00",
    "orderDetails": (...)
    "customer": (...)
    },
    "transactions": [{
        "shopId": "73239078",
        "uuid": "5b158f084502428499b2d34ad074df05",
        "amount": 990,
        (...)
        "_type": "V4/PaymentTransaction"
    }],
    "_type": "V4/Payment"
}
© 2023 | Tous droits réservés à Systempay | Mentions légales
2.16.0-doc-1.8