Facturation Papier avec MySendingBox Dernière Modification le : 2024-01-16Le ZIP des Ressources MySendingBox a plusieurs caratéristiques qui le rendrent attrayant pour la PME: la facturation est granulaire: on ne paie que ce que l'on consomme, sans frais d'abonnement, etc. Un autre avantage appréciable: un service client et technique qui répond! Donc, une fois qu'on a réglé son backOffice, ca baigne! DHL (Deutche Post) semble proposer un service avec une API et une documentation en Anglais, mais je n'ai pas trouvé les prix. Lire → LaPoste propose un service Portail, mais pas d'API. Sa filiale DocuPost/Maileva propose une API, mais il y a un abonnement annuel, au minimum 100 Eu./an (2023). Il faut contacter un conseiller et bla et bla, j'ai laissé tomber... Lire → Petite comparaison tarifaire, sur la base d'une facture N&B d'une page, en Ecopli: - DHL: Le similateur de prix ne semble concerner que des envois en (très grand) nombre. J'ai posé la question à mailing-support@deutschepost.de : on me dit que l'offre est réservée à l'Allemagne... - maileva : impression 0,52 : affranchissement 0,95 total : 1,47 € / courrier (avec abonnement de 100 Eu./an) Tarif → - MySendingBox: total : 1,064 € / courrier (et pas d'abonnement) Tarif → Programmer l'API MySendingBox en Ligne de Commande L'API de MySendingBox est assortie de bibliothèques en Perl, Javasript, Python, ruby, PHP et SHELL! Pour moi qui programme en VBS, le plus accessible est la programmation SHELL. L'existence et la publicité faite autour des bibliothèques masque un peu l'existence de cette solution clé en main, multiplate-forme, facile à utiliser: la ligne de Commande (SHELL) Des exemples sont fournis, on les trouve ici: - Autentification : Lire le code → - Envoi d'une lettre Lire le code → Ma Première requête API MySendingBox Je suis parti de l'exemple fourni... Il faut crér un compte, puis, depuis son compte, il faut accéder aux clés API Lien → . Le site propose 2 clés: une pour le test, l'autre pour la production. On commence avec le test. L'autentification est simple: pas besoin de mot da passe ni de double identification (token): c'est donc immédiat à programmer. ' //Voici l'exemple (dont je me suis inspiré et que j'ai du adapter) ' //Example Request with a Local File curl -X POST https://api.mysendingbox.fr/letters \ -u "test_12345678901234567890:" \ -F to.name=MySendingBox \ -F 'to.address_line1=30 rue de la république' \ -F to.address_postalcode=75015 \ -F to.address_city=Paris \ -F to.address_country=France \ -F color=color \ -F postage_type=prioritaire \ -F 'source_file=@path/to/your/local/file.pdf' \ -F source_file_type=file J'ai du modifier l'exemple donné, car l'utilisation du flag -F dans CURL, tel que donné dans l'exemple, m'a généré des erreurs. Je remplace -F par -d et ça marche illico. Je n'ai pas reussi à faire l'upload direct! ' // definition et personalisation des chemins Set oShell = CreateObject("WScript.Shell") sDossierRoot = "C:\Documents\MySendingBox\" sOutputFileName = "Output_MysendingBox.txt" sOutputFilePath = sDossierRoot & sOutputFileName sPDFFileName = "Facture_ESSAI.pdf" ' // la formule remote marche bien! Il faut penser à mettre le PDF sur notre serveur de commerce électronique sRemotePDFFilePath = "http://www.granuloshop.com/" & sPDFFileName 'sPDFFilePath = sDossierRoot & sPDFFileName sLive = "live_aaaaaaa-33d8-48b3-b67f-yyyyyyy" sTest = "test_bbbbbbb-27af-478c-a54f-xxxxxxx" ' // Au choix... Test pour commencer... sFromAccount = sLive sFromAccount = sTest sCommand = """curl.exe"" -X POST " sCommand = sCommand & " -o """ & sOutputFilePath & """ " sCommand = sCommand & " --url ""https://api.mysendingbox.fr/letters"" " sCommand = sCommand & " -u """ & sFromAccount & ":"" " sCommand = sCommand & " -d ""to.name=Moi Même"" " sCommand = sCommand & " -d ""to.address_line1=64 rue de la république"" " sCommand = sCommand & " -d ""to.address_postalcode=75005"" " sCommand = sCommand & " -d ""to.address_city=Paris"" " sCommand = sCommand & " -d ""to.address_country=France"" " ' // on choisit en couleur et Noir & Blanc 'sCommand = sCommand & " -d ""color=color"" " sCommand = sCommand & " -d ""color=bw"" " sCommand = sCommand & " -d ""both_sides=false"" " sCommand = sCommand & " -d ""address_placement=insert_blank_page"" " sCommand = sCommand & " -d ""postage_type=prioritaire"" " ' // je n'ai pas réussi à envoyer mon PDF sur le serveur MySendingBox... 'sCommand = sCommand & " -d ""source_file=" & sPDFFilePath & """ " '@path/to/your/local/file.pdf' " 'sCommand = sCommand & " -d source_file_type=file " ' // alors je le place sur mon serveur et spécifie "remote" : ca marche sCommand = sCommand & " -d ""source_file=" & sRemotePDFFilePath & """ " sCommand = sCommand & " -d ""source_file_type=remote"" " ' // on lance la ligne de commande oShell.Run Command, 0, True Zone d'ecrasement Quand le document imprimé porte l'adresse, la zone correspondante est masquée de blanc et le prestataire ajoute l'adresse: c'est la zone d'écrasement. Quand je prépare une facture 'papier', j'enregistre une version sans l'adresse, qui sera celle soumise à MySendingBox. Je vérifie bien que ma facture n'a rien dans la zone d'écrasement telle que définie par MySendingBox. Lire → On y lit que toutes les pages Recto ont un ecrasement pour Datamatrix sans que cette zone soit définie. En fait, l'observation de la page 'file_to_send.pdf', obtenue par la simulation test, ne semble pas avoir de zeone d'écrasement au delà de la toute première page. Cela nous donne l'occasion de voir qu'un professionnel du routage utilise la police Lucida Console, ce qui apporte un éclairage sur la question du choix des polices. Lire → Précedent Suivant