Android


  IMPORTANT


Lire toutes les sections en bleues pour mieux comprendre la documentation et les sections en orange signifiant l'alerte afin d'éviter des erreurs à commettre durant les intégrations et les procédures détaillées pour les intégration.

Génération de vos clés API

Les clés d'API sont vos références numériques auprès des systèmes de PayDunya. Nous les utilisons afin d'identifier votre compte et les applications que vous allez créer. Ces clés sont nécessaires pour toute intégration des APIs de paiements PayDunya. Voici chronologiquement la marche à suivre :

Installation

Cliquez sur paydunya_java_latest.jar pour télécharger la dernière version de notre package JAVA ainsi que ses dépendances. Ajouter par la suite paydunya_java_latest.jar à votre CLASSPATH en suivant les instructions suivantes :

  • Dans votre IDE (Android Studio), cliquez sur Project dans le menu à gauche puis affichez votre application sous forme de projet en sélectionnant Project dans le menu déroulant de la fenêtre qui s'est affiché;

  • Cherchez le dossier libs qui se trouve le dossier app. Copiez le fichier paydunya_java_latest.jar précédement téléchargé et collez le à l'intérieur du dossier libs;

  • Ensuite faites un clic droit sur paydunya_java_latest.jar et cliquez sur Add as Library pour ajouter le plugin PayDunya à la liste des librairies.

Intégration PayDunya sous Android Studio
Intégration PayDunya sous Android Studio


Pour finir, importez toutes les classes du package com.paydunya.neptune dans le ou les fichier(s) où vous souhaitez utiliser la librairie PayDunya:


import com.paydunya.neptune.*;

Configuration de base


Configuration de l'API


Important

Connectez-vous à votre compte PayDunya, cliquez sur Integration API puis sur détails au niveau de l'application que vous avez créée, récupérez les clés d'API et donnez les en argument au méthodes suivantes:


PaydunyaSetup setup = new PaydunyaSetup();
setup.setMasterKey("wQzk9ZwR-Qq9m-0hD0-zpud-je5coGC3FHKW");
setup.setPrivateKey("test_private_rMIdJM3PLLhLjyArx9tF3VURAF5");
setup.setPublicKey("test_public_kb9Wo0Qpn8vNWMvMZOwwpvuTUja");
setup.setToken("IivOiOxGJuWhc5znlIiK");
setup.setMode("test"); // Optionnel. Utilisez cette option pour les paiements tests.

Info

Si vous êtes en mode test, utilisez les clés de test sinon utilisez les clés de production et spécifiez le mode en remplaçant "test" par "live" dans le code ci-dessus.

Pour plus de détails sur le passage en production cliquez ici.


Configuration des informations de votre service/activité/entreprise


Vous pouvez configurer les informations de votre service/activité/entreprise comme illustré ci-dessous. PayDunya utilise ces paramètres afin de configurer les informations qui s'afficheront sur la page de paiement, les factures, les reçus imprimés et les téléchargements PDF.

Info

Pour la configuration des informations de votre service/entreprise, seul le nom est requis, toutes les autres informations sont optionnelles.

//Configuration des informations de votre service/entreprise
PaydunyaCheckoutStore store = new PaydunyaCheckoutStore();
store.setName("Magasin Chez Sandra"); // Seul le nom est requis
store.setTagline("L'élégance n'a pas de prix");
store.setPhoneNumber("336530583");
store.setPostalAddress("Dakar Plateau - Etablissement kheweul");
store.setWebsiteUrl("http://www.chez-sandra.sn");
store.setLogoUrl("http://www.chez-sandra.sn/logo.png");

APIs


LE SERVICE PSR


Initialisation


Si vous souhaitez que vos clients paient directement via votre site web ou application mobile sans pour autant les rediriger sur notre page de paiement, PayDunya vous donne la possibilité d'utiliser le service PSR (Paiement Sans Redirection) afin de facturer en toute sécurité vos clients sans communiquer de données sensibles.

Le service PSR est un processus en deux étapes:

  • Le client saisi son adresse email ou numéro de téléphone de son compte PayDunya sur votre interface. Vous envoyez par la suite cette adresse email ou numéro de téléphone à PayDunya. PayDunya vous renvoie un token PSR. Le client PayDunya reçoit également un code de confirmation par e-mail et SMS. À noter que les SMS sont uniquement envoyés pour les transactions réelles (en production).

  • Le client saisi le code reçu. Vous renvoyez le couple Token PSR et Code de confirmation à PayDunya afin de facturer le client. PayDunya vous envoie une réponse de succès ou échec.

PaydunyaOnsiteInvoice invoice = new PaydunyaOnsiteInvoice(setup, store);

Info

Procédez ainsi si vous souhaitez accepter des paiements directement au niveau de votre application.

Il est important de remarquer que le constructeur requiert respectivement comme paramètres une instance des classes PaydunyaSetup et PaydunyaCheckoutStore.


Ajout des informations de paiement


Ajout d'articles et de description de facture :


Il est important de savoir que les éléments de facture sont essentiellement utilisés à des fins de présentation sur la page de paiement. PayDunya n'utilisera en aucun cas l'un des montants déclarés pour facturer le client. Pour ce faire, vous devez explicitement utiliser la méthode setTotalAmount de l'API afin de préciser le montant exact à facturer au client.

/* L'ajout d'éléments à votre facture est très basique.
Les paramètres attendus sont nom du produit, la quantité, le prix unitaire,
le prix total et une description optionelle. */
invoice.addItem("Clavier DELL", 2, 3000, 6000);
invoice.addItem("Ordinateur Lenovo L440", 1, 400000, 400000, "Description optionelle");
invoice.addItem("Casque Logitech", 1, 8000, 8000);
/* Vous pouvez de manière optionelle définir une description générale de facture
qui sera utilisée dans les cas où vous avez besoin d'inclure
des informations supplémentaires à votre facture. */
invoice.setDescription("Description Optionnelle");

Configuration du montant total de la facture :


PayDunya s'attend à ce que vous précisez le montant total de la facture du client. Ce sera ce montant qui sera facturé à votre client. Nous considérons que vous auriez déjà fait tous les calculs au niveau de votre serveur avant de fixer ce montant.

Important

PayDunya n'effectuera pas de calculs au niveau de ses serveurs. Le montant total de la facture fixé à partir de votre serveur sera celui que PayDunya utilisera pour facturer votre client.

invoice.setTotalAmount(414000);

Emission d'une requête de facturation PSR


Après avoir rajouté des articles à votre facture et configuré le montant total de la facture, récupérez l'adresse email ou le numéro de téléphone du client et envoyez une requête PSR. Il est nécéssaire d'excécuter la requête PSR en background.

Important

Il est nécéssaire d'excécuter la requête de facturation PSR en background.

Une demande de facturation PSR nécessite à la fois le code de confirmation et le token PSR.

//Il est nécéssaire d'excécuter la requête PSR en background
import android.os.AsyncTask;
private class MyTask extends AsyncTask {

private Exception exception;

@Override
protected Void doInBackground(String... params){

    String email_ou_numero_du_client_paydunya = params[0];

    try {
    // Une requête PSR requiert l'email ou le numéro mobile du client comme paramètre
    if (invoice.create(email_ou_numero_du_client_paydunya)) {
        System.out.println ("Token PSR: " + invoice.getToken());
        System.out.println ("Statut: " + invoice.getStatus());
        System.out.println ("Réponse: " + invoice.getResponseText());
    } else {
        System.out.println("Réponse: " + invoice.getResponseText());
    }

    } catch(Exception e){
    e.printStackTrace();
    this.exception = e;
    }
    return null;

}

@Override
protected void onPostExecute(Void result) {
    // TODO: check this.exception
    // TODO: do something with the feed
    super.onPostExecute(result);
}

}

Pour exécuter le code précédent en background, rajoutez au niveau de la méthode protected void onCreate la ligne suivante:

new MyTask().execute("EMAIL_OU_NUMERO_DU_CLIENT_PAYDUNYA");

Paiement de facture Sans Redirection (PSR)


Avant d'effectuer une requête de facturation PSR, vous devez avoir votre token PSR et le code de confirmation envoyé au client. Après un paiement réussi, vous pourrez accéder aux informations du client, à son reçu électronique et bien plus encore.

Important

Il est nécéssaire d'excécuter la requête de facturation PSR en background.

Une demande de facturation PSR nécessite à la fois le code de confirmation et le token PSR.

//Il est nécéssaire d'excécuter la requête de facturation PSR en background
import android.os.AsyncTask;
private class MyTask extends AsyncTask {

private Exception exception;

@Override
protected Void doInBackground(String... params){

String token_psr = params[0];
String code_de_confirmation_du_client = params[1];
try {

    // Une demande de facturation PSR nécessite à la fois le code de confirmation et le token PSR
    if (invoice.charge(token_psr, code_de_confirmation_du_client)) {
    System.out.println("Statut: " + invoice.getStatus());
    System.out.println("Réponse: " + invoice.getResponseText());
    System.out.println("URL du reçu électronique: " + invoice.getReceiptUrl());
    System.out.println("Nom du client: " + invoice.getCustomerInfo("name"));
    System.out.println("Email du client: " + invoice.getCustomerInfo("email"));
    } else {
    System.out.println("Réponse: " + invoice.getResponseText());
    }

} catch(Exception e){
    e.printStackTrace();
    this.exception = e;
}
return null;

}

@Override
protected void onPostExecute(Void result) {
// TODO: check this.exception
// TODO: do something with the feed
super.onPostExecute(result);
}

} 

Pour excécuter le code précédent en background, rajoutez au niveau de la méthode protected void onCreate la ligne suivante:

new MyTask().execute("TOKEN_PSR", "CODE_DE_CONFIRMATION_DU_CLIENT");

Paiement Et Redistribution (PER)


Cette option s'avère très intéressante si vous souhaitez créer votre propre solution de paiement par dessus celle de PayDunya ou si vous devez reverser un certain pourcentage à chaque vente (dans le cas d'une marketplace par exemple). L'argent est redistribué sur les différents comptes PayDunya des destinataires et le service n'est pas facturé.

Vous pouvez transférer des fonds vers d'autres comptes clients PayDunya à partir de votre compte via l'API de Paiement Et Redistribution (PER). Pour des raisons de sécurité, vous devez explicitement activer l'option de Paiement Et Redistribution (PER) dans la configuration de votre intégration/application en vous rendant dans votre compte PayDunya. Vous pouvez toujours activer ou désactiver le service de Paiement Et Redistribution (PER) en mettant à jour la configuration de votre intégration/application en vous rendant dans votre compte PayDunya.

Important

Il est nécéssaire d'excécuter la requête de facturation PER de Paiement Et Redirection en background.

//Il est nécéssaire d'excécuter la requête PER de Paiement Et Redirection en background
import android.os.AsyncTask;
private class MyTask extends AsyncTask {

private Exception exception;

@Override
protected Void doInBackground(String... params){

String email_ou_numero_du_client_paydunya = params[0];
Double montant_a_transferer = Double.valueOf(params[1]);
try {

    PaydunyaDirectPay direct_pay = new PaydunyaDirectPay(setup);
    if(direct_pay.creditAccount(email_ou_numero_du_client_paydunya, montant_a_transferer)){
    System.out.println("Statut: " + direct_pay.getStatus());
    System.out.println("Description: " + direct_pay.getDescription());
    System.out.println("ID de la Transaction: " + direct_pay.getTransactionId());
    }else{
    System.out.println("Réponse: " + direct_pay.getResponseText());
    }

} catch(Exception e){
    e.printStackTrace();
    this.exception = e;
}
return null;

}

@Override
protected void onPostExecute(Void result) {
// TODO: check this.exception
// TODO: do something with the feed
super.onPostExecute(result);
}

}

Pour excécuter le code précédent en background, rajoutez au niveau de la méthode protected void onCreate la ligne suivante:

new MyTask().execute("EMAIL_OU_NUMERO_MOBILE_DU_CLIENT_PAYDUNYA", "MONTANT_A_TRANSFERER");