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:

    {
        "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": "69876357",
        "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:

{
    "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’appel fonctionne comme Charge/CreatePayment. Une transaction à zéro euro sera créé. L’alias sera retourné dans transactions[0].paymentMethodToken.

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

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:

    {
        "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: Formulaire embarqué: Tester rapidement.

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. L’appel se fera de serveur à serveur et retournera une transaction.

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

Exemple:

    {
        "amount": 990,
        "currency": "EUR",
        "paymentMethodToken": "b6e51ba31f934ac5b25ccad2a52ccd56",
        "formAction": "SILENT"
    }

Charge/CreatePayment retourne directement une transaction comme :

{
    "shopId": "69876357",
    "orderCycle": "CLOSED",
    "orderStatus": "PAID",
    "serverDate": "2018-09-27T14:02:17+00:00",
    "orderDetails": (...)
    "customer": (...)
    },
    "transactions": [{
        "shopId": "69876357",
        "uuid": "5b158f084502428499b2d34ad074df05",
        "amount": 990,
        (...)
        "_type": "V4/PaymentTransaction"
    }],
    "_type": "V4/Payment"
}