GatewayAPI .NET is a wrapper for the GatewayApi RestAPI. For full description of the GatewayAPI see: https://gatewayapi.com/docs/
Using the .NET Core command-line interface (CLI) tools:
$ dotnet add package GatewayAPI
or with the Package Manager Console:
$ Install-Package GatewayAPI
The API wrapper is build with the mindset of been simple to use. The package utilities fluent princip.
For further documentation visit the /Sample folder
// Construct handler
GatewayAPIHandler handler = new GatewayAPIHandler("apiToken");
// Create message
SMSMessage message = new SMSMessage()
.SetMessage("Hello World")
.SetRecipient(new SMSRecipient(4512345678));
// Send message
try
{
Result result = gatewayAPIHandler.SendMessage(message);
Console.WriteLine(result.Ids); // Returns a list of ids .
} catch (UnauthorizedException e)
{
Console.WriteLine(e.Message);
}
catch (ServerException e)
{
Console.WriteLine(e.Message);
}
catch (MessageException e)
{
Console.WriteLine(e.Message);
} catch (Exception e)
{
Console.WriteLine(e.Message);
}
// You can send multiple message with the following function
Result result = gatewayAPIHandler.SendMessage(message);
gatewayAPIHandler.SendMessages(new List<SMSMessage> {
message,
message2
});
Get the current account balance from GatewayAPI
GatewayAPIHandler gatewayAPIHandler = new GatewayAPIHandler("apiToken");
AccountBalance accountBalance = gatewayAPIHandler.GetAccountBalance();
Fetch current prices from GatewayAPI.
GatewayAPIHandler gatewayAPIHandler = new GatewayAPIHandler("apiToken");
Prices prices = gatewayAPIHandler.GetPricesAsJson();
You can cancel a scheduled message from the returned ID, when sending the message
GatewayAPIHandler gatewayAPIHandler = new GatewayAPIHandler("apiToken");
// Construct a schduled message
DateTime dt = DateTime.Now;
SMSMessage message = new SMSMessage()
.SetMessage("Tester")
.SetSender("Test")
.SetSendTime(dt.AddHours(1))
.SetRecipient(new SMSRecipient(4512345678));
// Send message
Result result = gatewayAPIHandler.SendMessage(message);
// Cancel the first message
CancelResult cancelResult = gatewayAPIHandler.CancelScheduledMessage(result.Ids[0]);
string result = cancelResult.Status // (Can either return failed or success)
You can easily parse webhooks sent from GatewayAPI to your server using the Webhook class.
[HttpPost]
public IActionResult Catch()
{
var webhookHandler = new GatewayAPIWebhookHandler("secret");
var webhook = webhookHandler.ParseFromRequest(Request);
if (webhook is WebhookDeliveryStatus)
{
WebhookDeliveryStatus test = (WebhookDeliveryStatus)webhook;
Console.WriteLine(test.status);
} else if (webhook is WebhookIncomingMessage) {
WebhookIncomingMessage test = (WebhookIncomingMessage)webhook;
Console.WriteLine(test.message);
}
return Ok();
}
All full example can be seen in "/samples/Webhook"
If you find and issue, please create a issue. You can at any time reach out to me on twitter