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
- Premier appel
- Créer une commande
- Modifier une commande
- Afficher Cherry Checkout aux clients
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.
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é)
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.