Instructions rapides

1. Créer un compte

Sur la page d'accueil, clique sur Mon compte, puis sur Créer un compte, ou utilise le bouton S'inscrire gratuitement.

Remplis le formulaire d'inscription et tu obtiendras un email d'activation que tu devras confirmer.

Lorsque ton compte Paymill sera mis en place, tu auras accès au cockpit marchand. Là, tu pourras voir les transactions correspondant à tes clés-test et clés-live. A l’aide du bouton en haut sur ta droite, passe facilement de l’un à l’autre.

2. Clés API

Tu auras besoin d’un jeu de deux clés pour utiliser Paymill :

Clé publique :

<DEIN_PUBLIC_KEY>

Cette clé est destinée à ton formulaire de paiement et pourra donc être vue par des tiers. C'est à l'aide de la clé publique que tu pourras générer un code d'authentification pour la carte bancaire de ton client avec notre bridge JavaScript. Plus d’informations à ce sujet un peu plus loin.

Clé privée :

<DEIN_PRIVATE_KEY>

Dès que tu auras obtenu le code d'authentification, tu pourras effectuer un paiement (ou toute autre transaction) par le biais de notre API, typiquement après la conclusion d'une commande. Tu devras entrer ta clé privée pour toutes les requêtes vers notre API.

Information importante au sujet des clés privées et publiques:

Tu recevras un jeu de clés test et un jeu de clés "live". Utilise les clés-test pour effectuer des transactions-test. Les clés "live" seront utilisées pour les vraies transactions par carte bancaire.

Si tu n'as pas de système de test, tu devras remplacer tes deux clés test par tes clés live avant de mettre ta page de paiement à la disposition de tes clients.

3. Comment accéder à mes clés API

Rends-toi d'abord dans Mon compte, un menu apparaîtra avec les options Paramètres, Activation, Déconnexion.

Choisis l'option Paramètres, et une boîte de dialogue apparaîtra.

Il y a cinq onglets dans cette boîte de dialogue (Compte, Clés API, Supprimers les données, Paiements et Webhooks). Dans l’onglet Compte, tu pourras modifier ton mot de passe. Dans l’onglet Supprimer les données, tu pourras supprimer tes données-test. Paiements te permet d’ajouter ou de retirer des modes de paiement et de télécharger tes factures récentes (une fois que le compte est activé).

Dans l’onglet Clés API, tu trouveras tes clés test qui te permettront d’effectuer des paiements-test. Pour obtenir des paiements "live", il te faudra activer ton compte.

Intégration – guide rapide

L’exemple suivant PHP peut être copié tel quel pour un test rapide de nos services.
Veuillez noter que vous devez avoir un compte PAYMILL validé avec les clés test (ci-dessus).

Pour des informations plus détaillées, nous t’invitons à lire les explications suivantes.

4. Formulaire de paiement

Tu trouveras un exemple de l'intégration du formulaire de paiement de Paymill sur GitHub ici sous forme d'intégration Gist. Tu trouveras plus d'informations au sujet de notre formulaire de paiement sur notre page Formulaire de paiement.

Le formulaire de paiement doit comprendre au minimum les champs suivants:

  • Numéro de la carte
  • Mois d’expiration
  • Année d’expiration
  • Année d’expiration (CVC)
  • Montant de la transaction (en décimal c’est-à-dire « 0.15 » pour 0.15 Euros)
  • Devise (ISO 4217, par exemple « EUR »)
<script type="text/javascript">
  var PAYMILL_PUBLIC_KEY = '2509489868036d8505c3624b2496074d';
</script>
<script type="text/javascript" src="/bf04fcff7bf9525aca395b4dfecd7e37/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="https://bridge.www.paymill.org/"></script>
<script type="text/javascript">
$(document).ready(function () {

  function PaymillResponseHandler(error, result) {
    if (error) {
      // Displays the error above the form
      $(".payment-errors").text(error.apierror);
    } else {
      $(".payment-errors").text("");
      var form = $("#payment-form");
      // Token
      var token = result.token;

      // Insert token into form in order to submit to server
      form.append("<input type='hidden' name='paymillToken' value='" + token + "'/>");
      form.get(0).submit();
    }
    $(".submit-button").removeAttr("disabled");
  }

  $("#payment-form").submit(function (event) {
    // Deactivate submit button to avoid further clicks
    $('.submit-button').attr("disabled", "disabled");

    if (!paymill.validateCardNumber($('.card-number').val())) {
      $(".payment-errors").text("Invalid card number");
      $(".submit-button").removeAttr("disabled");
      return false;
    }

    if (!paymill.validateExpiry(
          $('.card-expiry-month').val(),
          $('.card-expiry-year').val())
      ) {
      $(".payment-errors").text("Invalid expiration date");
      $(".submit-button").removeAttr("disabled");
      return false;
    }

    paymill.createToken({
      number:         $('.card-number').val(),
      exp_month:      $('.card-expiry-month').val(),
      exp_year:       $('.card-expiry-year').val(),
      cvc:            $('.card-cvc').val(),
      cardholder:     $('.card-holdername').val(),
      amount_int:     $('.card-amount-int').val(), // E.g. "15" for 0.15 EUR
      currency:       $('.card-currency').val()    // ISO 4217 e.g. "EUR"
    }, PaymillResponseHandler);

    return false;
  });
});
</script>

Informations importantes au sujet des données des cartes bancaires dans ton formulaire HTML :

Avec le formulaire de paiement, il est important que tu ne mettes pas un paramètre nom avec les tags <input> pour les données des cartes bancaires !

Ainsi, les données de la carte bancaire ne seront pas renvoyées à ton serveur, et tu n'entreras pas dans le domaine d'application de la loi sur l'enregistrement de ce type de données (Conformité PCI).

JavaScript – Intégrer le Bridge Paymill

  • En premier lieu, il faut entrer ta clé publique dans la variable PAYMILL_PUBLIC_KEY.
  • Ensuite, tu peux intégrer notre Passerelle (Bridge) en JavaScript via l'URL suivante: https://bridge.www.paymill.org

Crée ton code de paiement à l'aide de la commande createToken.

  • Dès que le formulaire de paiement est envoyé, tu pourras créer un createToken pour les cartes bancaires de tes clients à l'aide de la commande Create Token.
  • Ensuite, tu pourras rentrer ce code dans ton formulaire en champ caché, pour le renvoyer au serveur. Tous les autres appels de fonctions de paiement seront effectués à l'aide de ce code d'authentification.

Exemple d’intégration du formulaire HTML, de le bridge et de la fonction createToken pour carte de crédit:

<script type="text/javascript">
  var PAYMILL_PUBLIC_KEY = '2509489868036d8505c3624b2496074d';
</script>
<script type="text/javascript" src="/bf04fcff7bf9525aca395b4dfecd7e37/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="https://bridge.www.paymill.org/"></script>
<script type="text/javascript">
$(document).ready(function () {

  function PaymillResponseHandler(error, result) {
    if (error) {
      // Displays the error above the form
      $(".payment-errors").text(error.apierror);
    } else {
      $(".payment-errors").text("");
      var form = $("#payment-form");
      // Token
      var token = result.token;

      // Insert token into form in order to submit to server
      form.append("<input type='hidden' name='paymillToken' value='" + token + "'/>");
      form.get(0).submit();
    }
    $(".submit-button").removeAttr("disabled");
  }

  $("#payment-form").submit(function (event) {
    // Deactivate submit button to avoid further clicks
    $('.submit-button').attr("disabled", "disabled");

    if (!paymill.validateCardNumber($('.card-number').val())) {
      $(".payment-errors").text("Invalid card number");
      $(".submit-button").removeAttr("disabled");
      return false;
    }

    if (!paymill.validateExpiry(
          $('.card-expiry-month').val(),
          $('.card-expiry-year').val())
      ) {
      $(".payment-errors").text("Invalid expiration date");
      $(".submit-button").removeAttr("disabled");
      return false;
    }

    paymill.createToken({
      number:         $('.card-number').val(),
      exp_month:      $('.card-expiry-month').val(),
      exp_year:       $('.card-expiry-year').val(),
      cvc:            $('.card-cvc').val(),
      cardholder:     $('.card-holdername').val(),
      amount_int:     $('.card-amount-int').val(),  // Integer e.g. "15" for 0.15 EUR
      currency:       $('.card-currency').val()     // ISO 4217 e.g. "EUR"
    }, PaymillResponseHandler);

    return false;
  });
});
</script>
<div class="payment-errors"></div>
<form id="payment-form" action="request.php" method="POST">
  <input class="card-amount-int" type="hidden" value="15" />
  <input class="card-currency" type="hidden" value="EUR" />

  <div class="form-row"><label>Card number</label>
  <input class="card-number" type="text" value="4111111111111111" size="20" /></div>

  <div class="form-row"><label>CVC</label>
  <input class="card-cvc" type="text" value="111" size="4" /></div>

  <div class="form-row"><label>Name</label>
  <input class="card-holdername" type="text" value="Joe Doe" size="20" /></div>

  <div class="form-row"><label>Expiry Date (MM/YYYY)</label>
  <input class="card-expiry-month" type="text" value="02" size="2" />
  <span> / </span>
  <input class="card-expiry-year" type="text" value="2015" size="4" /></div>

  <button class="submit-button" type="submit">Submit</button>
</form>

5. Effectuer une transaction

Fais une copie de notre bibliothèque PHP vers un sous-dossier, lib par exemple.
Tu trouveras notre adaptateur (wrapper) PHP ici: https://github.com/Paymill/Paymill-PHP

La procédure usuelle est la suivante:

  1. Tu as besoin de deux éléments pour utiliser le wrapper PHP de Paymill:
    • L’endpoint API : https://api.www.paymill.org/v2
    • Ta Clé privée que tu trouveras dans Mon compte
  2. Intègre les classes du wrapper dans ton script.
  3. Récupère le token que tu auras obtenu par le biais du formulaire de paiement.
  4. Crée un « Transaction object » à l'aide des deux éléments nécessaires cités au point 1.
  5. Renseigne les paramètres nécessaires de la fonction, par exemple, dans le cas présent il s'agirait notamment du montantli>voir également la référence API pour tous les attributs nécessaires).
  6. Exécute ensuite ; par exemple la fonction Transaction de Paiement.
  7. Tu recevras alors un numéro d’identification de transaction, ou une notification en cas d’erreur.

Tu trouveras ici un exemple de commande :

<?php
$token = $_POST['paymillToken'];

if ($token) {
    $request = new Paymill\Request('20c8b46fe20714ad3549a6267dc647ec');
    $transaction = new Paymill\Models\Request\Transaction();
    $transaction->setAmount(4200) // e.g. "4200" for 42.00 EUR
                ->setCurrency('EUR')
                ->setToken($token)
                ->setDescription('Test Transaction');

    $response = $request->create($transaction);

    echo "Transaction: ";
    print_r($response);
}
Contact Support