Coder Social home page Coder Social logo

pay-stack-dot-net-sdk's Introduction

PayStackDotNetSDK

PayStackDotNetSDK API is a collection of all PayStack endpoints that C# developers can take advantage of to build financial solutions in Nigeria. Visit Paystack for Setup.

Prerequisites

This Library require .Net framework 4.6 or higher

Installing

Install this library from Nuget

Author

Reference

Some parts of this project were taken from Paystack.Net.SDK.

Sample Project

This project[alpha stage] showcases some uses of PayStackDotNetSDK methods. Github

License

This project is licensed under the MIT License

Upcoming:

  • More precise intellisense
  • More Documentation in this README file

SDK Usage

Add namespaces: using PayStackDotNetSDK; using PayStackDotNetSDK.Helpers;

We suggest you go through the detailed documentation:

Transactions

add namespaces: using PayStackDotNetSDK.Methods.Transactions; using PayStackDotNetSDK.Models.Transactions;

Transaction Initialization

	/// <summary>
    /// Implements simple InitializeTransaction with basic parameters
    /// </summary>
    protected async void InitializeTransaction()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.InitializeTransaction("[email protected]", 1000000);
        if (response.status)
        {
            Response.AddHeader("Access-Control-Allow-Origin", "*");
            Response.AppendHeader("Access-Control-Allow-Origin", "*");
            Response.Redirect(response.data.authorization_url); //Redirects your browser to the secure URL
        }
        else //not successful
        {
           //Do something else with the info.
        }
    }
    /// <summary>
    /// Implements simple InitializeTransaction with full parameters
	/// If callback url is given, the url will be called upon completion. For example http://localhost:60441/Default.aspx?trxref=4dsnq70qtd&reference=4dsnq70qtd
    /// </summary>
    protected async void InitializeTransaction()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.InitializeTransaction(new TransactionRequestModel() { firstName="firstname", lastName="lastname", amount=1000000, currency = PayStackDotNetSDK.Helpers.Constants.Currency.Naira, email="[email protected]", metadata = new PaystackMetadata() { referrer="[email protected]" }, transaction_charge=4000 });
        if (response.status)
        {
            Response.AddHeader("Access-Control-Allow-Origin", "*");
            Response.AppendHeader("Access-Control-Allow-Origin", "*");
            Response.Redirect(response.data.authorization_url); //Redirects your browser to the secure URL
        }
        else //not successful
        {
            //Do something else with the info.
        }
    }

Transaction Verification

protected async void VerifyTransaction()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.VerifyTransaction("reference_code");
    }

Transaction Listings

	/// <summary>
    /// Implementation with basic parameters
    /// </summary>
    protected async void TransactionListing()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.ListTransactions();
    }
    /// <summary>
    /// Implementation with full parameters
    /// </summary>
    protected async void TransactionListing()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.ListTransactions(new TransactionListRequestModel() {amount=40000, from= DateTime.UtcNow.AddDays(-10), to=DateTime.UtcNow, page=2, perPage=50, status= PayStackDotNetSDK.Helpers.Constants.Transaction.Status.Success, customer =4 });
    }

Fetch Transaction

	/// <summary>
    ///  Fetch Transaction
    /// </summary>
    protected async void FetchTransaction()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.FetchTransaction(345);
    }

Charge Authorization

	/// <summary>
    /// Implementation with basic parameters
    /// </summary>
    protected async void ChargeAuthorization()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.ChargeAuthorization("authorization_code", "[email protected]", 7000);
    }
    /// <summary>
    /// Implementation with full parameters
    /// </summary>
    protected async void ChargeAuthorization()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.ChargeAuthorization(new TransactionRequestModel() { firstName="firstname" });
    }

View Transaction Timeline

 protected async void ViewTransactionTimelines()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.TransactionTimeline("referenceOrID");
    }

Transaction Totals

	/// <summary>
    /// Implementation with basic parameters
    /// </summary>
    protected async void TransactionTotals()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.TransactionTotals();
    }
    /// <summary>
    /// Implementation with full parameters
    /// </summary>
    protected async void TransactionTotals()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.TransactionTotals(new TransactionTotalsRequestModel() { });
    }

View Export Transactions

	/// <summary>
    /// Implementation with basic parameters
    /// </summary>
    protected async void ExportTransactions()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.ExportTransactions();
    }
    /// <summary>
    /// Implementation with full parameters
    /// </summary>
    protected async void ExportTransactions()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.ExportTransactions(new ExportRequestModel() { from= DateTime.UtcNow.AddDays(-15) });
    }

Request Reauthorization

  /// <summary>
    /// Implementation with basic parameters
    /// </summary>
    protected async void RequestReauthorization()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.RequestReAuthorization("authorization_code", "[email protected]", 4000);
    }

    /// <summary>
    /// Implementation with full parameters
    /// </summary>
    protected async void RequestReauthorization()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.RequestReAuthorization(new RequestReAuthorizationRequestModel() { amount = 4000, authorization_code = "authorization_code", currency = PayStackDotNetSDK.Helpers.Constants.Currency.Naira, email = "[email protected]", reference = "reference", metadata = new PaystackRequestReAuthorizationMetadata() { custom_fields = new PaystackList<RequestReAuthorizationCustomField>() { new PaystackRequestReAuthorizationCustomField() { display_name = "display_name", value = "value", variable_name = "variable_name" } } } });
    }

Check Authorization

  /// <summary>
    /// Implementation with basic parameters
    /// </summary>
    protected async void CheckAuthorization()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.CheckAuthorization("authorization_code", "[email protected]", 4000);
    }
    /// <summary>
    ///  Implementation with optional parameters
    /// </summary>
    protected async void CheckAuthorization()
    {
        var connectionInstance = new PaystackTransaction(Credential.Key);
        var response = await connectionInstance.CheckAuthorization("authorization_code", "[email protected]", 4000, PayStackDotNetSDK.Helpers.Constants.Currency.Naira);
    }

Customers

add namespaces: using PayStackDotNetSDK.Methods.Customers; using PayStackDotNetSDK.Models.Customers;

Subaccounts

add namespaces: using PayStackDotNetSDK.Methods.Subaccounts; using PayStackDotNetSDK.Models.SubAccounts;

Plans

add namespaces: using PayStackDotNetSDK.Methods.Plans; using PayStackDotNetSDK.Models.Plans;

Subscriptions

add namespaces: using PayStackDotNetSDK.Methods.Subscriptions; using PayStackDotNetSDK.Models.Subscriptions;

Payment Pages

add namespaces: using PayStackDotNetSDK.Methods.Pages; using PayStackDotNetSDK.Models.Pages;

Invoices

add namespaces: using PayStackDotNetSDK.Methods.Invoices; using PayStackDotNetSDK.Models.Invoices;

Settlements

add namespaces: using PayStackDotNetSDK.Methods.Settlements; using PayStackDotNetSDK.Models.Settlements;

Transfers Recipients

add namespaces: using PayStackDotNetSDK.Methods.TransferRecipients; using PayStackDotNetSDK.Models.TransferRecipients;

Transfers

add namespaces: using PayStackDotNetSDK.Methods.Transfers; using PayStackDotNetSDK.Models.Transfers;

Transfers Control

add namespaces: using PayStackDotNetSDK.Methods.TransfersControls; using PayStackDotNetSDK.Models.TransfersControls;

Charge

add namespaces: using PayStackDotNetSDK.Methods.Charges; using PayStackDotNetSDK.Models.Charges;

Bulk Charges

add namespaces: using PayStackDotNetSDK.Methods.BulkCharges; using PayStackDotNetSDK.Models.BulkCharges;

Refunds

add namespaces: using PayStackDotNetSDK.Methods.Refunds; using PayStackDotNetSDK.Models.Refunds;

Control Panel

add namespaces: using PayStackDotNetSDK.Methods.ControlPanels; using PayStackDotNetSDK.Models.ControlPanels;

Verification

add namespaces: using PayStackDotNetSDK.Methods.Verifications; using PayStackDotNetSDK.Models.Verifications;

Banks

add namespaces: using PayStackDotNetSDK.Methods.Banks; using PayStackDotNetSDK.Models.Banks;

	/// <summary>
    /// Get all Nigerian Banks on Paystack API
    /// </summary>
    protected async void GetAllBanks()
    {
        var connectionInstance = new PaystackListedBanks(Credential.Key);
        var response = await connectionInstance.ListBanks();
    }

pay-stack-dot-net-sdk's People

Stargazers

Media Explorer avatar

Watchers

James Cloos avatar Asim Mehmood Khan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.