Arborescence des pages

Vous regardez une version antérieure (v. /display/DT/Demande+d%27une+clef+de+chiffrement) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 9) afficher la version suivante »


Le principe 

Vous pouvez demander des paramètres de chiffrement à Payline afin d'encoder vos données sensibles pour vos appels web services.

Veuillez contacter notre équipe commerciale pour accéder à cette fonctionnalité.

Les étapes de chiffrement

Le traitement se déroule en 3 étapes : 

  1. Le marchand demande des paramètres pour générer la clef de chiffrement.
  2. Le marchand encrypte les données sensibles sur son serveur.
  3. Le marchand appelle les web services de Payline avec les données encryptées.

Comment intégrer ces paramètres de chiffrement

Pour commencer cette étape, vous devez avoir un commerçant et une clef d'accès marchand.

Vous devez intégrer les web services Payline et connaitre le chiffrement de données RSA : 

  • getEncryptionKey : permet de récupérer les paramètres de chiffrement pour chiffrer votre message. 


Vous devez intégrer les web services Payline : 

  1. Le marchand réalise un getEncryptionKey : permet de récupérer les paramètres de chiffrement.
    Le marchand récupère les paramètres de chiffrement et la key.keyId de getEncryptionKeyReponse

  2. Le marchand peut alors encrypter le message avec les données sensibles.

    La fonction de chiffrement doit :
    • générer une clef public avec les paramètres récupérés dans le getEncryptionKeyReponse : algo, modulus, exponent ;
    • construire la clé publique avec les paramètres : Modulus et publicExponent ;
    • construire le Cipher est retouné par le service getEncryptionKeyReponse ;
    • encrypter le message avec les paramètres suivant : le message formaté avec les données sensibles, le Cipher et la PublicKey.

           Message = "CardNumber=497010000000006,ExpDate=0220,CVX=123,OwnerBirthDate=,Password=PaylineXXXX,Cardholder=John Doe"

    • encoder le message en base64.

  3. Le marchand peut alors appeler les web services Payline en transmettant le message encrypté dans la balise encryptionData et la clef ID du service getEncryptionKeyReponse dans la balise encryptionKeyId.
    Consulter le wbs getEncryptionKey pour lister les wbs utilisant le message encrypté.


A partir de la version 21 : Payline rajoute des éléments Cipher, Algo et Size pour chiffrer le message.


Example d'une fonction d'encryption
   public void getRSAEncodedMessage() throws Exception{
       String message = "CardNumber=497010000000006,ExpDate=0220,CVX=123,OwnerBirthDate=,Password=Payline,Cardholder=Alain Durand";
       String cipherName = "RSA/ECB/OAEPWithSHA-256AndMGF1Padding";
       Cipher cipher = Cipher.getInstance(cipherName);
       String algo = "RSA";
       String modulus = "AOLndIya3+ViAuP07V1Ky+YRuZK6zsMUsVIPP3xhFCS1CSJb9oBLmmzkMMASAn0TQ7BrELuNbY1+9VT30ah1N0mX0BzIBqE5sojV+CkafF+LtIntpF1wUhguXlcFOXcBLCECiMA4gBqHJMrVxnF626M1S6Wi2++WUwFgPTtHdn4B7e0RMvWqFr6uKBDq1qhdP8iziiAn/YPPp5ObgxuabWvPAZvRMDmgflNLYCOZB05LjZXMDvkLaYy244iY0tmVWwa7WYi2lJ7N0wK6gpDXD1WQh42AQuyVQX9i/m3oOjH8iqdRZG8FuaoHkBtON9zhz+ZyuBAwb+zNZWBDvnp6V0E=";
       String publicExponent = "AQAB";

       final KeyFactory fact = KeyFactory.getInstance(algo);
       PublicKey publicKey =  fact.generatePublic(new RSAPublicKeySpec(new BigInteger(Base64.decodeBase64(modulus.getBytes())), new BigInteger(Base64.decodeBase64(publicExponent.getBytes()))));
       System.out.println("Message encoded : " + Base64.encodeBase64String(encrypt(cipher, publicKey, message)));
   }


   public static byte[] encrypt(Cipher cipher, Key key, String message) throws Exception {
       cipher.init(Cipher.ENCRYPT_MODE, key);
       return cipher.doFinal(message.getBytes());
   }




  • Aucune étiquette