Kit de développement: Microsoft .NET

Avec notre kit de développement .NET, intégrez votre module Cherry Checkout en quelques étapes seulement.


Téléchargement / installation

Le SDK est disponible dans le gestionnaire de Packages NuGet. Ainsi, l'installation via Visual Studio est très simple :

Via le Gestionnaire de Package, en ligne de commande :

PM> Install-Package CherryCheckout.Api -Version 1.0.0
			

Via l'interface utilisateur du Gestionnaire de Package :

Suivez cette documentation,et recherchez le package du nom de CherryCheckout.Api
Puis installez le pour votre projet.

Cherry Checkout .NET SDK in Package Manager

Pour la suite, vous aurez besoin de vos clés API. Vous trouverez dans votre dashboard, deux jeux de clés (un premier jeu pour le mode test, et un second jeu pour le mode prod). Nous vous conseillons, dans un premier temps, de tester avec les clés de test (pk_test_xxxxxx et sk_test_yyyyyy).


Premier appel

Dans le CodeBehind de votre projet, ajoutez les lignes suivantes :

string ccoApiEndPoint = "https://api.cherrycheckout.com/v2";

// Set your keys
string ccoPublicKey = "YOUR_PUBLIC_KEY_HERE";
string ccoPrivateKey = "YOUR_SECRET_KEY_HERE";

// Create an API instance
CherryCheckout.Api ccoApi = new CherryCheckout.Api(ccoApiEndPoint, ccoPublicKey, ccoPrivateKey);

try
{
    // Make the first call to see if your configuration is good
    CherryCheckout.Me ccoMe = ccoApi.getMe();
    Response.Write("Configuration is ok !");
}
catch (Exception ex)
{
    Response.Write("There was an error making first API call : " + ex.Message);
}

			

Exécutez ce script et vérifiez que la configuration est bonne. Si tout est ok, vous pouvez passer à la suite.


Créer une commande

Une fois que votre instance API est configurée et fonctionnelle, vous allez devoir créer une instance de commande.

// First, create a customer
CherryCheckout.Customer ccoCustomer = new CherryCheckout.Customer();
ccoCustomer.firstname = "Michael";
ccoCustomer.lastname = "Jackson";
ccoCustomer.birthday = new DateTime(1958, 08, 29);
ccoCustomer.email = "kingofpop@mjcompany.com";
ccoCustomer.gender = 'm';
ccoCustomer.address = "55 rue de la république";
ccoCustomer.zipCode = "75000";
ccoCustomer.city = "Paris";
ccoCustomer.country = "France";

// Then, create order
CherryCheckout.Order ccoOrder = new CherryCheckout.Order();
ccoOrder.orderPrice = (float)85.90;
ccoOrder.cherryPrice = 2;
ccoOrder.trackId = "ODR-5736";
ccoOrder.currency = "chf";
ccoOrder.customer = ccoCustomer;
ccoOrder.status = "validated";

			
CherryCheckout\Customer
Firstname* string Le prénom du client.
Lastname* string Le nom du client.
Email* string L'adresse e-mail du client.
Birthday string La date de naissance du client. Format attendu: 'YYYY-MM-DD'
Gender string Le genre du client.
Valeurs acceptées: 'm', 'f'
Address string L'adresse du client, avec le numéro, ainsi que le type et le nom de la rue.
ZipCode string Le code postal du client
City string La ville du client
Country string Le pays du client
CherryCheckout\Order
OrderPrice* float Le prix total de la commande, en excluant le montant de la cerise.
CherryPrice* int Le montant de la participation souhaité par le client.
TrackId* string L'ID de la commande, doit être unique pour chaque création de commande.
Currency* string La devise de la commande.
Valeurs acceptées: 'chf', 'eur'
Customer* Customer Un objet Customer
Status* string Le statut de la commande.
Valeurs acceptées: 'validated', 'canceled'

Maintenant que votre instance de commande est prête, vous pouvez l'envoyer à l'API.
Effectuez cette opération uniquement dans le cas où votre client a ajouté l'option Cherry Checkout. Il n'est pas utile, et même déconseillé d'envoyer des commandes qui ne concernent pas Cherry Checkout.

// Finally, try to send the order to API
try
{
    ccoApi.createOrder(ccoOrder);
    Response.Write("Ok, order successfully created!");
}
catch (CherryCheckout.Exceptions.CustomerEmailMissingException cemEx)
{
    Response.Write("Error, customer e - mail was missing.");
}
catch (CherryCheckout.Exceptions.CustomerNotSetException cnsEx)
{
    Response.Write("Error, customer was missing.");
}
catch (CherryCheckout.Exceptions.NoCharityAvailableException ncaEx)
{
    Response.Write("Error, no charity available.");
}
catch (CherryCheckout.Exceptions.TrackIdAlreadyExistsException tiaeEx)
{
    Response.Write("Error, this track id already exists.");
}
catch (Exception ex)
{
    Response.Write("Unknown error : " + ex.Message);
}

			
CherryCheckout\Exceptions
TrackIdAlreadyExistsException 3001 Cette exception est levée si vous tentez de créer une deuxième commande avec un track id déjà utilisé. Si vous souhaitez modifier une commande, utiliser plutôt la méthode updateOrder()
NoCharityAvailableException 3004 Cette exception est levée parce qu'aucune œuvre caritative n'est rattachée à votre site e-commerce. Dans ce cas, contactez nous.
CustomerNotSetException 3006 Cette exception est levée lorsque vous omettez de soumettre les informations du client.
CustomerEmailMissingException 3010 Cette exception est levée si vous oubliez de renseigner l'adresse e-mail du client.

Si vous n'avez pas d'erreur à ce niveau, vous pouvez vérifier que votre commande a bien été créée. Pour cela, rendez-vous dans votre dashboard et affichez vos commandes. (Pensez à régler le mode sur 'prod' ou 'test' en fonction du jeu de clés que vous avez utilisé)

Aperçu de la commande créée dans le Dashboard

Modifier une commande

Vous pouvez être amené à modifier une commande. Par exemple, si le montant total a changé, ou bien si la commande a été annulée. Pour cela, créez une nouvelle instance de commande, avec le même track id que vous avez utilisé pour la création, ainsi que les champs que vous souhaitez modifier.

// Create a new order object, to update it
CherryCheckout.Order ccoOrder2 = new Order();
ccoOrder2.trackId = "ODR-5736";
ccoOrder2.status = "canceled";
ccoOrder2.orderPrice = (float)95.90;

try
{
    ccoApi.updateOrder(ccoOrder2);
    Response.Write("Ok, order successfully updated!");
}
catch (CherryCheckout.Exceptions.TrackIdMissingException timEx)
{
    Response.Write("Error, the track id was not set.");
}
catch (CherryCheckout.Exceptions.OrderNotFoundException onfEx)
{
    Response.Write("Error, order was not found with that track id");
}
catch (Exception ex)
{
    Response.Write("Unknown error : " + ex.Message);
}

			
CherryCheckout\Exceptions
TrackIdMissingException 3100 Cette exception est levée si vous avez instancié un objet Order sans track id.
OrderNotFoundException 3101 Cette exception est levée si le track id que vous avez renseigné n'existe pas chez Cherry Checkout. Dans ce cas, vous devez d'abord créer la commande à l'aide de la méthode createOrder()

Si tout se déroule sans erreur, allez vérifier dans votre dashboard, que la commande a bien été modifiée.


Afficher Cherry Checkout aux clients

Et visuellement alors, comment êtes-vous censé représenter ça à vos clients ? A vrai dire, vous êtes libres de faire ce que vous voulez. Nous recommandons cependant quelques points :

  • Afficher le module sur votre page checkout, une fois que le client a terminé de composer son panier, et juste avant de valider sa commande.
  • Afficher les modalités du jeu. Précisez à quelle association va aller le don, quelles sont les chances au client de gagner, ainsi que le montant du gain potentiel.
  • Affichez clairement le prix de la participation
  • Ajoutez un bouton de participation. Lorsque le client clique sur ce bouton, vous devez enregister cette information dans votre commande.
  • Lorsque le client décide de participer, masquez le module, ou remplacez le par un message de confirmation. Ajoutez une ligne dans le panier, pour indiquer la participation Cherry Checkout.
  • Laissez la possibilité au client d'annuler sa participation. Dans ce cas, ré-affichez le plugin dans son état initial.

Si vous ne l'avez pas encore vu, testez notre démonstration de plugin en ligne.


Besoin d'aide ?

Vous rencontrez un problème avec l'intégration de notre SDK .NET ? Contactez notre support technique.