Service de notifications instantanées

ClickBank offre un service de notifications instantanées qui vous informe des transactions réalisées pour votre compte dans le système ClickBank. Ce service vous envoie des informations en temps réel pour les événements suivants :

  • Vente : vente d’un produit standard ou vente initiale d’un produit récurrent.
  • Facturation future : facturation future d’un produit récurrent.
  • Remboursement : remboursement d’un produit standard ou récurrent.
  • Rejet de débit : rejet de débit pour un produit standard ou récurrent.
  • Annulation d’une facturation future : annulation d’un produit récurrent.
  • Restauration d’une facturation future : rétablissement d’un produit récurrent par un représentant du service clientèle ClickBank.
  • Transactions de test : transactions de test pour les types énumérés ci-dessus ou test du service de notifications instantanées que vous démarrez.

Le service tente de publier les informations via une publication de formulaire HTML à l’adresse URL que vous avez spécifiée. Chaque publication contient un groupe de paramètres d’URL correspondant à la transaction. La notification est chiffrée et doit être déchiffrée à l’aide de votre clé secrète et du vecteur d’initialisation pour pouvoir être traitée.

REMARQUE : ce service est destiné aux programmeurs expérimentés. Si vous ne possédez aucune expérience en matière de programmation, nous vous conseillons de faire appel à un développeur pour l’activation des notifications instantanées.

Cet article détaille notamment les points suivants :

Présentation

Une fois activé, le service de notifications instantanées est déclenché chaque fois qu’une transaction est créée ou qu’une action est réalisée au niveau d’une transaction dans votre compte ClickBank. Le flux principal se compose des étapes ci-dessous :

  1. Une action a lieu dans le système ClickBank (une vente ou une facturation future par exemple).
  2. ClickBank chiffre une notification à l’aide de votre clé secrète et d’un vecteur d’initialisation.
  3. ClickBank publie les paramètres HTML FORM à l’adresse URL que vous avez spécifiée.
    Votre adresse URL doit utiliser le protocole TLS (Transport Layer Security) ou SSL (Secure Socket Layer).
  4. ClickBank utilise la fonctionnalité de Surveillance du code de réponse pour vérifier que la notification a été reçue.
  5. L’application que vous avez créée déchiffre le message (à l’aide de votre clé secrète et du vecteur d’initialisation) et traite les paramètres de publication.

Le processus de configuration du service dans votre compte ClickBank est simple. Toutefois, vous devez également créer une application chargée de traiter les paramètres d’URL des notifications instantanées, tâche plus technique. Pour tirer le meilleur parti de ce service, votre application doit, au moins, être capable de déchiffrer le message et de traiter les paramètres indiqués dans la section Paramètres de ce document.

Pour toute assistante concernant l’une de ces étapes, nous vous recommandons de faire appel à un développeur. En cas d’erreur au niveau de l’implémentation du service de notifications instantanées, désactivez ce service ou supprimez-le de votre compte.

Version actuelle

La version actuelle du service de notifications instantanées est 6.0.

La version 6.0 inclut les fonctionnalités suivantes :

  • Notifications chiffrées
  • Paramètres indiquant le type de commande incluse dans l’achat (vente incitative ou incitation de commande)
  • Paramètre de quantité
  • Paramètres de variable spécifiques au vendeur

Format de notification

Cette section est consacrée au format de la notification instantanée qui vous est envoyée.

Structure de base

Les notifications instantanées sont créées au format JSON. Elles sont chiffrées préalablement à leur envoi.

La structure de base des notifications instantanées est la suivante :

{"notification": "<NOTIFICATION_CHIFFRÉE>", "iv": "<VECTEUR_INITIALISATION>"}

Chiffrement

ClickBank utilise un algorithme de chiffrement CBC-AES-256 pour assurer la sécurisation de la charge de travail de la notification. Cela empêche la transmission des informations client en texte claire et indique au destinataire de la notification que le message provient de ClickBank et qu’il n’a pas été altéré au cours de sa livraison. La notification est chiffrée au moyen d’un vecteur d’initialisation et d’une clé secrète composée de 16 caractères maximum.

Plusieurs méthodes de déchiffrement de la notification sont fournis en exemples dans la section Exemples de codes. Cependant, nous vous recommandons de vous familiariser avec l’algorithme de chiffrement AES-256 afin de mieux comprendre son fonctionnement.

Le message JSON initial inclut une représentation sous forme de chaîne de la notification chiffrée ainsi que le vecteur d’initialisation que vous pouvez utiliser parallèlement à votre clé secrète ClickBank pour déchiffrer la notification.

Paramètres

Cette section est consacrée aux paramètres utilisés dans une notification.

Lorsqu’elle est envoyée, la notification inclut la totalité des paramètres. Si un paramètre ne contient aucune valeur, la chaîne de la notification instantanée inclut la balise de paramètre sans valeur. Le nombre de caractères est défini sur zéro pour les paramètres ne contenant aucune valeur.

Paramètres d’en-tête

Paramètre

Description

Caractères/Format

Destinataire

transactionTime

Heure de la transaction au format RFC-3339

25

Tous

receipt

ID d’accusé de réception ClickBank

8-21

Tous

transactionType

Type de transaction

4-15. Voir Types de transactions

Tous

vendor

Nom d’utilisateur du vendeur

5-10

Tous

affiliate

Nom d’utilisateur de l’affilié

5-10

Tous

role

Votre rôle dans la transaction

6-9 : VENDOR, AFFILIATE, or JV_VENDOR

Tous

totalAccountAmount

Montant total (en USD) que vous avez reçu pour la transaction

Valeur numérique avec une précision à deux décimales

Tous

paymentMethod

Méthode de paiement utilisée par le client

3-4. Voir Méthodes de paiement

Tous

totalOrderAmount

Montant total débité au client

Valeur numérique avec une précision à deux décimales

Tous

totalTaxAmount

Montant total versé en impôts par le client

Valeur numérique avec une précision à deux décimales

Vendeur

totalShippingAmount 

Montant total versé pour la livraison par le client

Valeur numérique avec une précision à deux décimales

Vendeur

currency

Devise dans laquelle l’utilisateur a réalisé le paiement

3

Vendeur

orderLanguage

Langue utilisée dans le bon de commande

2 : DE, EN, ES, FR, IT, or PT

Vendeur

trackingCodes

Codes de suivi transmis dans le bon de commande

0-24 chacun

Vendeur, affilié

Paramètres de produit

Paramètre

Description

Caractères/Format

Destinataire

itemNo

SKU du produit commandé

1-10

Tous

productTitle

Nom du produit

0-255

Tous

shippable

Indique si le produit était un bien physique

4-5 : true ou false

Tous

recurring

Indique si le produit était basé sur un abonnement

4-5 : true ou false

Tous

accountAmount

Montant que vous avez perçu pour cet article

Valeur numérique avec une précision à deux décimales 

Tous

quantity

Nombre d’articles achetés

Valeur numérique

Tous

downloadUrl

URL de téléchargement du produit pour le client

0-255

Vendeur

lineItemType

Type de commande inclut l’article

4-8 : ORIGINAL, CART, BUMP, TOKEN, or UPSELL

Tous

Paramètres d’expédition client

Paramètre

Description

Caractères

Destinataire

firstName

Prénom du client

0-255

Vendeur

lastName

Nom du client

0-255

Vendeur

fullName

Prénom et nom du client

0-255

Vendeur

phoneNumber

Numéro de téléphone du client

0-255

Vendeur

email

Adresse électronique du client

0-255

Vendeur

address1

Ligne 1 de l’adresse postale du client

0-255

Vendeur

address2

Ligne 2 de l’adresse postale du client

0-255

Vendeur

city

Ville du client

0-255

Vendeur

county

Région du client

0-255

Vendeur

state

Département du client

0-255

Vendeur

postalCode

Code postal du client

0-255

Vendeur

country

Pays du client

0-255

Vendeur

Paramètres de facturation client

Paramètre

Description

Caractères

Destinataire

firstName

Prénom du client

0-255

Vendeur

lastName

Nom du client

0-255

Vendeur

fullName

Prénom et nom du client

0-255

Vendeur

phoneNumber

Numéro de téléphone du client

0-255

Vendeur

email

Adresse électronique du client

0-255

Vendeur

state

Département du client

0-255

Tous

postalCode

Code postal du client

0-255

Tous

country

Pays du client

0-255

Tous

Paramètres de vente incitative

Paramètre

Description

Caractères

Destinataire

upsellOriginalReceipt

Numéro d’accusé de réception du flux de vente incitative

8-21

Tous

upsellFlowId

ID du flux de vente incitative

Nombre entier

Vendeur

upsellSession

ID de session de la vente incitative

0-16

Vendeur

upsellPath

Séquence de la vente incitative

0-12

Vendeur

Paramètres de la fonctionnalité Pytch

REMARQUE : la fonctionnalité Pytch est obsolète, mais les paramètres sont conservés à des fins de rétrocompatibilité.

Paramètre

Description

Caractères/Format

Destinataire

hopfeedClickId

Nom de l’ID de clic Hopfeed 

Chaîne 

Tous

hopfeedApplicationId

ID d’application

Valeur numérique 

Tous

hopfeedCreativeId

ID Creative 

Valeur numérique 

Tous

hopfeedApplicationPayout

Indemnisation de l’application 

Valeur numérique avec une précision à deux décimales 

Tous

hopfeedVendorPayout

Indemnisation du vendeur 

Valeur numérique avec une précision à deux décimales 

Tous

Paramètres techniques

Paramètre

Description

Format

Destinataire

version

Version de la notification instantanée

Valeur numérique double

Tous

attemptCount

Nombre de tentatives d’envoi de cette notification réalisées par ClickBank avant la réception d’un message de réussite ou d’un message d’échec suite à un nombre excessif de tentatives

Nombre entier

Tous

Paramètres de vendeur

Si le vendeur a saisi d’autres variables dans le lien de paiement, celles-ci sont également indiquées dans la notification en tant que paramètres nommés v1, v2, etc.

Types de transactions

Le paramètre transactionType peut renvoyer plusieurs valeurs. Ces valeurs sont répertoriées ci-après avec une brève description.

REMARQUE : les notifications associées aux transactions de test sont envoyées uniquement au vendeur.

Type

Description

SALE

Achat d’un produit standard ou achat initial d’un produit à facturation récurrente.

BILL

Facturation future d’un produit à facturation récurrente.

RFND

Remboursement d’un produit standard ou d’un produit à facturation récurrente. Le remboursement des produits à facturation récurrente déclenche également une transaction « CANCEL-REBILL ».

CGBK

Rejet de débit pour un produit standard ou récurrent.

INSF

Rejet de débit d’un chèque électronique pour un produit standard ou récurrent.

CANCEL-REBILL

Annulation d’un produit à facturation récurrente. L’annulation de produits à facturation récurrente ne déclenche pas une autre action.

UNCANCEL-REBILL

Restauration d’un produit à facturation récurrente.

TEST

Transaction test déclenchée pendant la configuration.

TEST_BILL

Facturation future test d’un produit à facturation récurrente.

TEST_RFND

Remboursement test d’un produit standard ou d’un produit à facturation récurrente.

TEST_SALE

Achat test d’un produit standard ou d’un produit à facturation récurrente.

CANCEL-TEST-REBILL

Annulation test d’un produit récurrent.

UNCANCEL-TEST-REBILL

Restauration test d’un produit récurrent.

Méthodes de paiement

Le nombre de valeurs que le paramètre paymentMethod peut renvoyer est limité. Ces valeurs sont énumérées ci-après.

Paramètre de méthode de paiement

Méthode de paiement

PYPL

PayPal

VISA

Visa

MSTR

Mastercard

DISC

Discover

AMEX

American Express

SOLO

Solo

JCBC

JCB

DNRS

Diners Club

MAES

Maestro

ELV

Débit direct européen

TEST

Paiement test

Exemple de notification

Cet exemple de notification JSON non chiffrée indique la structure des paires clé-valeur pour la version 6.0 du service de notifications instantanées. 

 {
    "transactionTime": "2016-06-05T13:47:51-06:00",
    "receipt": "CWOGBZLN",
    "transactionType": "SALE",
    "vendor": "testacct",
    "affiliate": "affiliate1",
    "role": "VENDOR",
    "totalAccountAmount": 0.00,
    "paymentMethod": "VISA",
    "totalOrderAmount": 0.00,
    "totalTaxAmount": 0.00,
    "totalShippingAmount": 0.00,
    "currency": "USD",
    "orderLanguage": "EN",
    "trackingCodes": [
        "tracking_code"
    ],
    "lineItems": [
        {
            "itemNo": "1",
           "productTitle": "Product Title",
            "shippable": false,
            "recurring": false,
            "accountAmount": 5.00,
            "quantity": 1,
            "downloadUrl": "<download_url>"
            "lineItemType": "CART"
      }         {
            "itemNo": "2",
           "productTitle": "Second Product",
            "shippable": false,
            "recurring": true,
            "accountAmount": 2.99,
            "quantity": 1,
            "downloadUrl": "<download_url>"
            "lineItemType": "CART"
      }
   ],
    "customer": {
        "shipping": {
            "firstName": "TEST",
            "lastName": "GUY",
            "fullName": "Test Guy",
            "phoneNumber": "",
            "email": "test@example.net",
            "address": {
                "address1": "12 Test Lane",
                "address2": "Suite 100",
                "city": "LAS VEGAS",
                "county": "LAS VEGAS",
                "state": "NV",
                "postalCode": "89101",
                "country": "US"
            }
        },
        "billing": {
            "firstName": "TEST",
            "lastName": "GUY",
            "fullName": "Test Guy",
            "phoneNumber": "",
            "email": "test@example.net",
            "address": {
                "state": "NV",
                "postalCode": "89101",
                "country": "US"
            }
        }
    },
    "upsell": {
        "upsellOriginalReceipt": "XXXXXXXX",
        "upsellFlowId": 55,
        "upsellSession": "VVVVVVVVVV",
        "upsellPath": "upsell_path"
    },
    "hopfeed": {
        "hopfeedClickId": "hopfeed_click",
        "hopfeedApplicationId": 0000,
        "hopfeedCreativeId": 0000,
        "hopfeedApplicationPayout": 0.00,
        "hopfeedVendorPayout": 0.00
    },
    "version": 6.0,
    "attemptCount": 1,
    "vendorVariables": {
       "v1": "variable1", 
       "v2": "variable2" 
    }
}

Implémentation

Après avoir pris connaissance des informations contenues dans la section précédente de ce document, vous pouvez soumettre une demande d’accès au service de notifications instantanées, tester votre adresse URL ou encore activer les notifications instantanées.

Une fois que vous avez configuré l’adresse URL de réception des notifications instantanées, vous pouvez en ajouter une autre en suivant les procédures ci-dessous dans le champ Notification instantanée 2.

Demande d’accès au service de notifications instantanées

Le service de notifications instantanées n’est pas activé automatiquement. Pour réaliser une demande d’accès :

  1. Connectez-vous à votre compte.
  2. Cliquez sur l’onglet Paramètres.
  3. Cliquez sur Mon site.
  4. Accédez à la section Outils avancés, puis cliquez sur Modifier.
  5. Cliquez sur le lien Demander l’accès situé en regard du champ URL de notification instantanée.
  6. Remplissez le formulaire, lisez attentivement les conditions d’utilisation, puis indiquez que vous les avez lues et acceptées.
  7. Cliquez sur le bouton Enregistrer les modifications et demander l’accès à l’API en bas du formulaire.
  8. Cliquez sur le bouton Enregistrer les modifications.

Configuration de votre adresse URL

Une fois que vous avez accès au service de notifications instantanées, vous devez créer une URL cible et un programme pour traiter les notifications qui seront envoyées à votre adresse URL. Vous pouvez utiliser le port 80 ou 443.

TLS (Transport Layer Security) et SSL (Secure Socket Layer)

Il est fortement recommandé d’activer les communications TLS (Transport Layer Security) et SSL (Secure Socket Layer) pour le service. Sans cela, les données relatives aux ventes risquent d’être exposées aux voleurs. Toutefois, les informations bancaires et relatives à la carte de crédit ne sont pas transmises via le service de notifications instantanées. C’est pourquoi aucune connexion TLS ou SSL n’est requise pour le chiffrement des transmissions de notification instantanée.

REMARQUE : les certificats SSL auto-signés ne sont pas pris en charge. Vous devez utiliser un certificat valide.

Test de la connectivité et du traitement

Pour activer les notifications instantanées, vous devez tester la connectivité et le traitement des paramètres d’URL entre ClickBank et votre serveur. Pour cela, procédez comme suit :

  1. Connectez-vous à votre compte.
  2. Cliquez sur l’onglet Paramètres.
  3. Cliquez sur Mon site.
  4. Accédez à la section Outils avancés, puis cliquez sur Modifier.
  5. Entrez votre adresse URL dans le champ URL de notification instantanée.
    REMARQUE : cliquez sur Enregistrer les modifications.
  6. Cliquez sur Tester à droite de l’adresse URL.
    Une notification test est envoyée avec l’accusé de réception ******** et le type de transaction TEST.
  7. Lisez la réponse dans la fenêtre contextuelle afin de vous assurer que le test a réussi.

En cas d’échec du test, supprimez l’URL du champ Notification instantanée et corrigez les éventuels problèmes de connectivité ou au niveau de votre application.

REMARQUE : remplissez le champ Notification instantanée uniquement lorsque le test a réussi. Dans le cas contraire, votre accès au service risque d’être désactivé.

Activation des notifications instantanées

Une fois que vous disposez d’un accès au service et que vous avez réalisé un test sans heurt, vous pouvez activer les notifications instantanées pour commencer à en recevoir. Pour activer les notifications instantanées :

  1. Connectez-vous à votre compte.
  2. Cliquez sur l’onglet Paramètres.
  3. Cliquez sur Mon site.
  4. Accédez à la section Outils avancés, puis cliquez sur Modifier.
  5. Saisissez votre clé secrète dans le champ Clé secrète. Votre clé secrète peut être composée de 16 caractères et doit contenir uniquement des majuscules. Pour plus d’informations, reportez-vous à la section Chiffrement.
  6. Entrez votre adresse URL dans le champ URL de notification instantanée.
  7. Cliquez sur Tester à droite de l’adresse URL.
    Une notification test est envoyée avec l’accusé de réception ******** et le type de transaction TEST.
  8. Lisez la réponse dans la fenêtre contextuelle afin de vous assurer que le test a réussi.
  9. Cliquez sur Enregistrer les modifications.

Les notifications instantanées commencent à être transmisses à l’issue des opérations de configuration.

Désactivation des notifications instantanées

Vous pouvez supprimer votre adresse URL afin de désactiver le service de notifications instantanées et d’empêcher l’envoi de notifications. Vous pouvez réactiver ce service ultérieurement.

  1. Connectez-vous à votre compte.
  2. Cliquez sur l’onglet Paramètres.
  3. Cliquez sur Mon site.
  4. Accédez à la section Outils avancés, puis cliquez sur Modifier.
  5. Supprimez l’URL du champ URL de notification instantanée.
  6. Cliquez sur Enregistrer les modifications.

Contrôle du code de réponse

Lorsque nous envoyons une notification instantanée, nous surveillons le code de réponse envoyé par votre URL. Si le code de réponse est inclus dans la plage de 200, la livraison de la notification est considérée comme réussie.

Dans le cas contraire, nous effectuons une tentative de renvoi de la notification par heure pendant 72 heures. Après 72 échecs, nous désactivons votre URL. Une fois que vous avez diagnostiqué la cause des échecs, vous pouvez réactiver votre URL et recevoir à nouveau des notifications instantanées.

Exemples de codes

Les données qui vous sont envoyées par le service de notifications instantanées prennent la forme de paramètres d’URL de publication de formulaire HTML. Les programmes écrits dans votre architecture d’application doivent être capables de traiter ces paires. Il est possible d’écrire des programmes de gestion des commandes, d’activité de la base de données et autres. Cependant, ces services ne sont pas décrits dans ce guide.

Les exemples de code ci-dessous portent sur le déchiffrement de la notification.

REMARQUE : les exemples de code ci-dessous doivent être intégrés dans un programme. Par ailleurs, ils risquent d’échouer pour les jeux de caractères allemands, grecs, de l’Europe de l’Est ou asiatiques. Vous devez réaliser votre propre opération d’encodage avant de déchiffrer des notifications instantanées. Pour toute question, contactez un programmeur.

Java

L’exemple de code ci-dessous utilise Java pour le déchiffrement de la notification.

 public void processNotification(final HttpServletRequest theRequest,
                              final HttpServletResponse theResponse)
   throws IOException {
  try {
     final StringBuilder buffer = new StringBuilder();
    final String secretKey = "YOUR SECRET KEY";

     try {
       String line;
        final BufferedReader reader = theRequest.getReader();
         while(null != (line = reader.readLine())) {
          buffer.append(line);
         }
      } catch(final Exception ex) {
          ex.printStackTrace();
       }

       final JSONParser parser = new JSONParser();
       final JSONObject obj = (JSONObject) parser.parse(buffer.toString()); 

      final String initializationVector = (String) obj.get("iv");
       final String encryptedNotification = (String) obj.get("notification"); 
      final MessageDigest digest = MessageDigest.getInstance("SHA-1");
      digest.reset();
       digest.update(secretKey.getBytes("UTF-8"));
      final String key = new String(Hex.encodeHex(digest.digest())).substring(0, 32);

final IvParameterSpec iv =
          new IvParameterSpec(DatatypeConverter.parseBase64Binary(initializationVector));
       final SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
      final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
       cipher.init(Cipher.DECRYPT_MODE, keySpec, iv);

      final JSONObject notification = (JSONObject) parser.parse(
      new String(cipher.doFinal(DatatypeConverter.parseBase64Binary(encryptedNotification)),
                     "ISO-8859-1"));

       //
       // Make use of the notification here...
      // 

   } catch(final NoSuchPaddingException
      | ParseException
       | NoSuchAlgorithmException
      | InvalidAlgorithmParameterException
       | BadPaddingException
      | IllegalBlockSizeException
       | UnsupportedEncodingException
      | InvalidKeyException ex) {
       ex.printStackTrace();
      theResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED,
                             "Could not decrypt instant notification");
  }
    theResponse.setStatus(HttpServletResponse.SC_NO_CONTENT);
}

PHP

L’exemple de code ci-dessous utilise PHP pour le déchiffrement de la notification.

<?php
// REMARQUE : les bibliothèques mcrypt doivent être installées et répertoriées comme
// extensions disponibles dans la section phpinfo() pour que vous puissiez utiliser cette
// méthode de déchiffrement.

$secretKey = "YOUR SECRET KEY"; // secret key from your ClickBank account

// get JSON from raw body...
$message = json_decode(file_get_contents('php://input'));

// Pull out the encrypted notification and the initialization vector for
// AES/CBC/PKCS5Padding decryption
$encrypted = $message->{'notification'};
$iv = $message->{'iv'};
error_log("IV: $iv");

// decrypt the body...
$decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128,
substr(sha1($secretKey), 0, 32),
base64_decode($encrypted),
MCRYPT_MODE_CBC,
base64_decode($iv)), "\0..\32");
error_log("Decrypted: $decrypted");

////UTF8 Encoding, remove escape back slashes, and convert the decrypted string to a JSON object...
$sanitizedData = utf8_encode(stripslashes($decrypted));
$order = json_decode($decrypted);

// Vous pouvez maintenant commencer. Si le décodage de la chaîne JSON
// échoue, cela signifie que la notification n’a pas été chiffrée
// avec votre clé secrète.

?>

Python

L’exemple de code ci-dessous utilise Python pour le déchiffrement de la notification.

import hashlib
import json
from Crypto.Cipher import AES
##
# Parse ClickBank Notification
# @param message: A string representing the raw HTTP POST body
# @return: A JSON object representing the decrypted notification
def process_clickbank_notification(message):
    j = json.loads(message)
    iv = j['iv']
    encrypted_str = j['notification']
    sha1 = hashlib.sha1()
    sha1.update("YOUR SECRET KEY")
    cipher = AES.new(sha1.hexdigest()[:32], AES.MODE_CBC, iv.decode('base64'))
    return cipher.decrypt(encrypted_str.decode('base64')).strip()

Ruby

L’exemple de code ci-dessous utilise Ruby pour le déchiffrement de la notification.

require "base64"
require "digest/sha1"
require "json"
require "openssl"
 # Decode the IPN post into a JSON object.
# The message param is the raw HTTP POST
 # body of the notification
def decrypt_clickbank_notification(message)
  parsed = JSON.parse(message);
  aes = OpenSSL::Cipher::Cipher.new("AES-256-CBC")
  aes.iv = Base64.decode64(parsed["iv"])
  aes.decrypt
  aes.key = Digest::SHA1.hexdigest("YOUR SECRET KEY").slice(0, 32)
  aes.update(Base64.decode64(parsed["notification"])) + aes.final
end
Vous avez d’autres questions ? Envoyer une demande

0 Commentaires

Veuillez vous connecter pour laisser un commentaire.
Réalisé par Zendesk