Horje
C# Create Swiss QR-Bill API Code Example
C# Create Swiss QR-Bill API
using System;
using System.Linq;
using System.Web;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Collections.Generic;
using Newtonsoft.Json;

static void Main(string[] args)
{
	//service and docs
    https://qr.livingtech.ch
	
    // Configuration
    Dictionary myRequestConfiguration = new Dictionary();
    myRequestConfiguration.Add("Account", "CH4431999123000889012");
    myRequestConfiguration.Add("CreditorName", "Muster AG");
    myRequestConfiguration.Add("CreditorAddress1", "Hauptstrasse 1");
    myRequestConfiguration.Add("CreditorAddress2", "8000 Zürich");
    myRequestConfiguration.Add("CreditorCountryCode", "CH");
    myRequestConfiguration.Add("DebtorName", "LivingTech GmbH");
    myRequestConfiguration.Add("DebtorAddress1", "Dörflistrasse 10");
    myRequestConfiguration.Add("DebtorAddress2", "8057 Zürich");
    myRequestConfiguration.Add("DebtorCountryCode", "CH");
    myRequestConfiguration.Add("Amount", "1.50");
    myRequestConfiguration.Add("ReferenceNr", "21000000000313947143000901");
    myRequestConfiguration.Add("UnstructuredMessage", "Mitteilung zur Rechnung");
    myRequestConfiguration.Add("Currency", "CHF");
    myRequestConfiguration.Add("IsQrOnly", "false");
    myRequestConfiguration.Add("Format", "PDF");
    myRequestConfiguration.Add("Language", "DE");

    // Call function to create invoice
    byte[] myByteResult = generateQrInvoice(myRequestConfiguration);

    // Work with binary data
    if(myByteResult != null)
    {
        // ...
    }
}

protected byte[] generateQrInvoice(Dictionary myRequestConfiguration)
{
    // Main configuration
    string myEndpointUrl = "http://qrbillservice.livingtech.ch";
    string myEndpointPath = "/api/qrinvoice/create/";
    string myApiKey = "mySecretApiKey";

    // GET parameters
    string myGetParams = $"?{string.Join("&", myRequestConfiguration.Select(myDict => $"{HttpUtility.UrlEncode(myDict.Key)}={HttpUtility.UrlEncode(myDict.Value)}"))}";

    // HttpClient
    HttpClient myHttpClient = new HttpClient();
    myHttpClient.BaseAddress = new Uri(myEndpointUrl);
    myHttpClient.DefaultRequestHeaders.Add("APIKEY", myApiKey);
    myHttpClient.DefaultRequestHeaders.Accept.Clear();
    myHttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    try
    {
        // Perform request
        HttpResponseMessage myResponse = myHttpClient.GetAsync(myEndpointPath + myGetParams).Result;

        // Check status
        if (myResponse.IsSuccessStatusCode)
        {
            // Read and parse JSON
            string myJsonBody = myResponse.Content.ReadAsStringAsync().Result;
            var myJsonObject = Newtonsoft.Json.Linq.JObject.Parse(myJsonBody);

            // Check if error
            if (myJsonObject["isSuccessed"].ToString().ToLower() == "true")
            {
                if (myJsonObject["base64Image"] != null && !String.IsNullOrEmpty(myJsonObject["base64Image"].ToString()))
                {
                    // Convert base64 string to byte array
                    byte[] myByteArray = Convert.FromBase64String(myJsonObject["base64Image"].ToString());

                    // E.g. save file
                    using (FileStream myFileStream = System.IO.File.Create(HttpContext.Current.Server.MapPath("~/App_Data/" + Guid.NewGuid().ToString() + ".pdf")))
                    {
                        myFileStream.Write(myByteArray, 0, myByteArray.Length);
                    }

                    // Return data
                    return myByteArray;
                }
                else
                {
                    throw new Exception("no data provided");
                }
            }
            else
            {
                throw new Exception(myJsonObject["Message"].ToString());
            }
        }
        else
        {
            throw new Exception("status code " + myResponse.StatusCode);
        }
    }
    catch (Exception ex)
    {
        // Handle exception
        Console.WriteLine("Error: " + ex.Message);
        return null;
    }
}




Csharp

Related
gcm_sender_id convert text Code Example gcm_sender_id convert text Code Example
c# treeview keep selected node highlight Code Example c# treeview keep selected node highlight Code Example
get vector direction unity Code Example get vector direction unity Code Example
find genre of song Code Example find genre of song Code Example
check if type is child of type Code Example check if type is child of type Code Example

Type:
Code Example
Category:
Coding
Sub Category:
Code Example
Uploaded by:
Admin
Views:
12