DEV Community

Jason
Jason

Posted on • Originally published at blog.ijasoneverett.com on

6 1

BigCommerce – Creating a WebHook

I couldn’t find any reliable C# examples on how to create a webhook using BigCommerce’s API so I thought I’d share my solution. The example code below will create a webhook when an order is created in your BigCommerce store.

//BigCommerce Authorization
string clientID = "<your_client_id>";              
string token = "<your_token>";
string storeHash = "<your_store_hash>";
string resourcePath = "hooks";

string baseURL = "https://api.bigcommerce.com/stores/" + storeHash + "/v2/" + resourcePath;

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(baseURL);
req.AllowAutoRedirect = true;
req.ContentType = "application/json";
req.Accept = "application/json";
req.Method = "POST";

req.Headers.Add("X-Auth-Client", clientID);
req.Headers.Add("X-Auth-Token", token);             

//send scope and destination as json
using (var streamWriter = new StreamWriter(req.GetRequestStream()))
{
    string json = "{\"scope\":\"store/order/created\"," +
                  "\"destination\":\"https://app.example.com/orders\"}";

    streamWriter.Write(json);
    streamWriter.Flush();
    streamWriter.Close();
}

string jsonResponse = null;
using (WebResponse resp = req.GetResponse())
{
    if (req.HaveResponse && resp != null)
    {
        using (var reader = new StreamReader(resp.GetResponseStream()))
        {
            jsonResponse = reader.ReadToEnd();
        }
    }
}

Response.Write(jsonResponse);

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (1)

Collapse
 
ijason profile image
Jason

I don't work with BigCommerce anymore but in my experience their web hooks are always lightweight meaning they only ever send you the id of the object you subscribed to. Its up to you to pull the details of that object via their API and compare the changes, if any, yourself.