Giter Club home page Giter Club logo

doku-api-go's Introduction

DOKU API

Installation

go get -u github.com/vannleonheart/doku-api-go

Config

dokuConfig := doku.Config{
    BaseUrl:       "{doku_base_url}",
    ClientID:      "{your_client_id}",
    SecretKey:     "{your_secret_key}",
    PublicKeyPath: "{your_doku_public_key_file_path}",
}

Sandbox Base URL

https://api-sandbox.doku.com

Client

dokuClient := doku.New(&dokuConfig)

Set Request Id manually

requestId := "{your_request_id}"

dokuClient := dokuClient.WithRequestId(requestId)

Auto Generated Request Id

dokuClient := dokuClient.WithAutoGeneratedRequestId()

Checkout Payment URL (Back-End Integration)

requestId := doku.RandomString(10)

result, err := dokuClient.WithRequestId(requestId).Checkout(doku.Request{
    Order: doku.Order{
        InvoiceNumber: "{your_invoice_number}",
        Amount:        "{amount}",
    },
    Payment: &doku.Payment{
        PaymentDueDate: 60, // in minutes
    },
})

if err != nil {
    // handle error
}

fmt.Println(result.Response.Payment.Url)

Check Status using Invoice Number

requestId := doku.RandomString(10)

result, err := dokuClient.WithRequestId(requestId).CheckStatus("{your_invoice_number}")

if err != nil {
    // handle error
}

fmt.Println(result.Transaction.Status)

Create Virtual Account (Non-SNAP)

requestId := doku.RandomString(10)

result, err := dokuClient.WithRequestId(requestId).CreateVirtualAccount(doku.VirtualAccountBCA, doku.Request{
    Order: doku.Order{
        InvoiceNumber: "{your_invoice_number}",
        Amount:        "{amount}",
    },
    VirtualAccountInfo: &doku.VirtualAccountInfo{
        BillingType:    doku.BillingTypeFixBill,
        ExpiredTime:    60,
        ReusableStatus: false,
        Info1:          "",
        Info2:          "",
        Info3:          "",
    },
    Customer: &doku.Customer{
        Name:  "John Doe",
        Email: "[email protected]",
    },
})

if err != nil {
    // handle error
}

fmt.Println(result.VirtualAccountInfo.VirtualAccountNumber)

doku-api-go's People

Contributors

vannleonheart avatar

Stargazers

 avatar

Watchers

 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.