NODEJS API CLIENT
The Node.JS library for INTRAM (intram.org). Built on the INTRAM HTTP API (beta).
GENERATE YOUR API KEYS
Les clés API sont vos références numériques vers les systèmes Intram. Nous les utilisons pour identifier votre compte et les applications que vous allez créer. Ces clés sont nécessaires à toute intégration des API de paiement d'Intram. Voici les étapes à suivre:
Vous devez d'abord avoir un compte Intram Business activé. Créez-en un si ce n'est pas encore le cas.
Connectez-vous à votre compte et cliquez sur Développeurs au niveau du menu à gauche.
Cliquez ensuite sur API, vous verrez toutes vos clés API.
Vous pouvez naviguer du mode
SANDBOX, au mode LIVE.
INSTALLATION
INSTALLATION INTRAM VIA LA COMMANDE NPM
npm i @intram-sdk/nodejs
CONFIGURATION BASIC
Connectez-vous à votre compte puis cliquez sur Développeurs et cliquez sur API au niveau du menu à gauche. Les clés API de votre compte marchand sont directement disponibles selon le mode ('sandbox' ou 'live') choisi. Récupérez les clés API et donnez-les comme arguments aux méthodes suivantes
var intram = require('intram');
var setup = new intram.Setup({
mode: 'sandbox', // optional. use in sandbox mode.
marchandKey: 'tpk_5e9469e65341de91988b352eba11f9f0c5f671384e1d6bfb09ce30103',
privateKey: 'tpk_5e9469e65341de91988b352eba11f9f0c5f671384e1d6bfb09ce30103b',
publicKey: "5e59e0c34bb8737cedf4c0ec92d9ae94007e33e5c30280596456990d9fc2f60",
secret: 'tsk_243a7b89fd82a2b4e049c0c8ff39c3012ee6ec70bda3288ad2bf6a1270439c'
});
BEST PRATICE
Il peut généralement être approprié de placer votre configuration d'API dans des variables d'environnement. Dans ce cas, vous pouvez initialiser intram.Setup
sans passer les paramètres de configuration. La bibliothèque détectera automatiquement les variables d'environnement et les utilisera. Variables d'environnement détectées automatiquement : INTRAM_MARCHAND_KEY, INTRAM_PRIVATE_KEY, INTRAM_PUBLIC_KEY, INTRAM_SECRET
1- CONFIGURATION DE VOTRE SERVICE / ACTIVITÉ / INFORMATIONS SUR LA SOCIÉTÉ
Vous pouvez configurer vos informations de service / activité / entreprise comme indiqué ci-dessous. Intram utilise ces paramètres pour configurer les informations qui apparaîtront sur la page de paiement, les factures PDF et les reçus imprimés.
Intram vous propose plusieurs designs pour le portail de paiement. Vous pouvez donc choisir un modèle spécifique et ajouter la référence à votre boutique.
Vous pouvez également définir une couleur pour le portail de paiement. Seule la couleur du code est nécessaire
var store = new intram.Store({
name: 'LandryShop', // only name is required
tagline: "Votre satisfaction, notre priorité.",
phoneNumber: '229670000000',
postalAddress: 'Benin-Cotonou Akpakpa',
websiteURL: 'Benin - Cotonou - Akpakpa',
logoURL: 'http://www.landryShop/logo.png',
color:"#a845f4", //for custom paiement portal color,
template:"default", // Choose the payment portal template that your customers will see
});
2 - CONFIGURATION DE LA NOTIFICATION DE PAIEMENT INSTANTANÉ
La NOTIFICATION DE PAIEMENT INSTANTANÉ est l'URL du fichier sur lequel vous souhaitez recevoir les informations de transaction de paiement pour un éventuel traitement en backoffice. Intram utilise cette URL pour vous envoyer instantanément, sur requête POST
, les informations relatives à l'opération de paiement.
Il existe deux façons de configurer l'URL de notification instantanée de paiement: soit en accédant à votre compte Intram au niveau des informations de configuration de votre application, soit directement dans votre code.
L'utilisation de la deuxième option vous offre les deux possibilités ci-dessous.
2-1 - CONFIGURATION GLOBALE DE L'URL DE NOTIFICATION DE PAIEMENT INSTANTANÉ
Cette instruction doit être incluse dans la configuration de votre service / activité.
var store = new intram.Store({
name: 'Store at Sandra',
callbackURL: 'http://www.my-shop.com/fichier_de_reception_des_données_de_facturation'
});
2-2 - CONFIGURATION DE L'URL DE NOTIFICATION DE PAIEMENT INSTANTANÉ OU D'UNE INSTANCE DE FACTURE
invoice.callbackURL = 'http://www.my-shop.com/fichier_de_reception_des_données_de_facturation'
EXPECTED JSON ANSWER
{
+"status": "PENDING"
+"amount": 1000
+"currency": "XOF"
+"account_number":"22996XXXXXX"
+"source":"MOOV"
+"fees":50
+"net_amount":1050
}
SI VOUS UTILISEZ EXPRESS
npm add body-parser
var bodyParser = require('body-parser')
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
3 - RECUPERATION DU STATUT DE PAIEMENT
app.post('/payment-url', function(req, res) {
var status = req.body.status;
});
4 - RECOUVREMENT DU MONTANT TOTAL DU PAIEMENT
app.post('/payment-url', function(req, res) {
var amount = req.body.transaction.invoice.amount;
});
APIs
INITIALISATION D'UN PAIEMENT
Ce service Api vous permet de créer une facture et de rediriger votre client vers notre plateforme afin qu'il puisse terminer le processus de paiement. Nous vous recommandons d'utiliser cette API car elle est la plus adaptée dans 99% des cas. Le principal avantage de cette option est que les clients peuvent choisir de payer à partir d'une variété d'options de paiement disponibles sur notre plateforme. De plus, si une nouvelle option est ajoutée ultérieurement, elle apparaîtra directement sur la page de paiement sans que vous ayez à modifier quoi que ce soit dans votre code source.
// Do this if you want to redirect your customers to our website so that they can complete the payment process
// It is important to note that the constructor requires respectively as parameters
// an instance of the intram.Setup and intram.Store classes
var invoice = new intram.CheckoutInvoice(setup, store);
1 - AJOUTER DES INFORMATIONS DE PAIEMENT
1-1 - AJOUT D'ARTICLES ET DESCRIPTION DE LA FACTURE:
Il est important de savoir que les éléments de facturation sont principalement utilisés à des fins de présentation sur la page de paiement. Intram n'utilisera aucun des montants déclarés pour facturer le client. Pour ce faire, vous devez explicitement utiliser la méthode SetTotalAmount de l'API pour spécifier le montant exact à facturer au client.
// Adding items to your bill is very basic.
// The expected parameters are product name, quantity, unit price,
// the total price and an optional description.
invoice.addItem('Croco shoes', 1, 10000, 30000, 'Shoes made of genuine crocodile skin that hunts poverty');
invoice.addItem('Ice Shirt', 1, 5000, 5000);
invoice.description = "Optional Description";
1-2 - CONFIGURATION DU MONTANT TOTAL DE LA FACTURE**:**
Intram attend de vous que vous spécifiiez le montant total de la facture du client. Ce sera le montant qui sera facturé à votre client. Nous considérons que vous avez déjà effectué tous les calculs sur votre serveur avant de définir ce montant.
invoice.totalAmount = 42300;
1-3 - CONFIGURATION DE LA MONNAIE DE LA FACTURE:
Intram attend de vous que vous spécifiiez la devise de la facture du client. Ce sera la devise qui sera attachée à votre client facturé.
Actuellement, les devises disponibles sont:
XOF
invoice.currency = 'XOF';
2 - REDIRECTION VERS LA PAGE DE PAIEMENT INTRAM
Après avoir ajouté des articles à votre facture et configuré le montant total de la facture, vous pouvez rediriger votre client vers la page de paiement en appelant la méthode de création à partir de votre objet invoice
. Veuillez noter que la méthode invoice.create()
renvoie un booléen (vrai ou faux) selon que la facture a été créée avec succès ou non. Cela vous permet de mettre une instruction if - else
et de gérer le résultat comme bon vous semble.
// The following code describes how to create a payment invoice at our servers,
// then redirect the customer to the payment page
// and then post his payment receipt if successful.
invoice.create()
.then(function (){
console.log(transaction.invoice.status);
console.log(transaction.invoice.transaction); // Bill Token
console.log(transaction.invoice.message);
console.log('https://account.intram.cf/payment/gate/'+invoice.transaction); // Intram invoice payment redirection URL
})
.catch(function (e) {
console.log(e);
});
MÉTHODES D'API SUPPLÉMENTAIRES
1 - AJOUT DE TAXES (OPTIONNEL)
Vous pouvez ajouter des informations fiscales sur la page de paiement. Ces informations seront ensuite affichées sur la page de paiement, les factures PDF et les reçus imprimés, les reçus électroniques.
// The parameters are the name of the tax and the amount of the tax.
invoice.addTax('TVA (18%)', 6300);
invoice.addTax("Livraison", 1000);
2 - AJOUT DE DONNÉES SUPPLÉMENTAIRES (FACULTATIF)
Si vous avez besoin d'ajouter des données supplémentaires à vos informations de demande de paiement pour une utilisation future, nous vous offrons la possibilité de sauvegarder des données personnalisées sur nos serveurs et de les récupérer une fois le paiement effectué.
// Custom data allows you to add additional data to your billing information
// that can be retrieved later using our callback Confirm action
invoice.addCustomData("category", "contest");
invoice.addCustomData("period", "Christmas 2015");
invoice.addCustomData("numero_gagnant", 5);
invoice.addCustomData("price", "50% discount coupon");
3 - RESTRICTION DES MOYENS DE PAIEMENT À AFFICHER (OPTIONNEL)
Par défaut, les modes de paiement activés dans votre configuration d'intégration seront tous affichés sur la page de paiement pour toutes vos factures.
Cependant, si vous souhaitez conserver la liste des modes de paiement à afficher sur la page de paiement d'une facture donnée, nous vous offrons la possibilité de le faire en utilisant la méthode addChannels
.
Actuellement, les moyens de paiement disponibles sont:
MOOV
, MTN-BENIN
, VISA, MASTER-CARD
.
// Addition of several payment methods at a time
invoice.addChannels(['moov-benin', 'mtn-benin', 'visa'])
CONFIGURER UNE URL REDIRECT APRÈS ANNULATION DE PAIEMENT
1-1 - CONFIGURER UNE URL REDIRECT APRÈS ANNULATION DE PAIEMENT
Vous pouvez éventuellement définir une URL vers laquelle vos clients seront redirigés après une annulation de commande.
L'utilisation de la deuxième option écrase les paramètres globaux s'ils ont déjà été définis.
var store = new intram.Store({
name: 'Alexandra',
cancelURL: 'http://alexandra.com/cancel_url'
});
1-2 - CONFIGURATION DE L'URL DE REDIRECTION APRÈS ANNULATION DE PAIEMENT SUR UNE INSTANCE DE FACTURE
Cette configuration écrasera les paramètres de redirection globale s'ils ont déjà été définis.
invoice.cancelURL = 'http://magasin-le-choco.com/cancel_url';
1-3 - CONFIGURER UNE URL REDIRECT APRÈS LA CONFIRMATION DE PAIEMENT
Intram fait un excellent travail de gestion des téléchargements et de l'impression des reçus des paiements une fois que votre client a payé avec succès sa commande. Cependant, il peut arriver que vous souhaitiez rediriger vos clients vers une autre URL après avoir payé leur commande avec succès. La configuration ci-dessous répond à ce besoin.
1-4 - CONFIGURATION GLOBALE DE L'URL REDIRECT APRÈS LA CONFIRMATION DE PAIEMENT.
Cette instruction doit être incluse dans la configuration de votre service / activité
var store = new intram.Store({
name: 'Alexandra',
returnURL: 'http://alexandra.com/return_url'
});
4-5 - CONFIGURATION DE L'URL REDIRECT APRÈS CONFIRMER LE PAIEMENT SUR UNE INSTANCE DE FACTURE
Cette configuration écrasera les paramètres de redirection globale s'ils ont déjà été définis.
invoice.returnURL = 'http://magasin-le-choco.com/return_url';
VÉRIFICATION DU STATUT DE PAIEMENT
Notre API vous permet de vérifier l'état de toutes les transactions de paiement à l'aide du jeton de facture. Vous pouvez donc conserver votre jeton de facture et l'utiliser pour vérifier le statut de paiement de la facture. Le statut d'une facture peut être soit PENDING (PENDING)
, CANCELED (CANCELED)
, ou COMPLETED (COMPLETED)
selon si oui ou non le client a payé la facture.
// Intram will automatically add the invoice token as a QUERYSTRING "token"
// if you have configured a "return_url" or "cancel_url".
var token = 'test_VPGPZNnHOC';
var invoice = new intram.CheckoutInvoice(setup, store);
invoice.confirm(token)
.then(function (){
// Retrieve payment status
// The payment status can be either completed, pending, cancelled
console.log(invoice.status);
console.log(invoice.responseText); // Server response
// The following fields will be available if and
// only if the payment status is equal to "completed".
// You can retrieve the name, the email address and the
// customer's phone number using the following object
console.log(invoice.customer); // {name: 'Alioune', phone: '773830274', email: '[email protected]'}
// URL of the electronic PDF receipt for download
console.log(invoice.receiptURL); // 'https://app.intram.org/sandbox-checkout/receipt/pdf/test_VPGPZNnHOC.pdf'
})
.catch(function (e) {
console.log(e);
});
Numero de test
MTN : 61000000
MOOV : 94000000
Dernière mise à jour