coinbase

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2021 License: BSD-3-Clause Imports: 6 Imported by: 0

README

Go Doc Release Go Report Card Build Status Sourcegraph TODOs

gdk

Getting Started

Most requests to the Commerce API must be authenticated with an API key. You can create an API key in your Settings page after creating a Coinbase Commerce account.

Installation

go get -v github.com/benalucorp/coinbase-commerce-go

Quick Start

package main

import (
	"context"
	"log"

	"github.com/benalucorp/coinbase-commerce-go"
	"github.com/benalucorp/coinbase-commerce-go/pkg/entity"
	"github.com/benalucorp/coinbase-commerce-go/pkg/enum"
)

func main() {
	client, err := coinbase.NewClient(coinbase.Config{
		Key:              "REPLACE_WITH_YOUR_API_KEY",
		Timeout:          0,    // Default: 1 min.
		RetryCount:       0,    // Default: 0 = disable.
		RetryMaxWaitTime: 0,    // Default: 2 secs.
		Debug:            true, // Turn on on development for easier debugging.
	})
	if err != nil {
		log.Fatal(err)
	}

	// Create a charge.
	createResp, err := client.CreateCharge(context.Background(), &entity.CreateChargeReq{
		Name:        "The Sovereign Individual",
		Description: "Mastering the Transition to the Information Age",
		LocalPrice: entity.CreateChargePrice{
			Amount:   "100.00",
			Currency: "USD",
		},
		PricingType: enum.PricingTypeFixedPrice,
		Metadata: entity.CreateChargeMetadata{
			CustomerID:   "id_1005",
			CustomerName: "Satoshi Nakamoto",
		},
		RedirectURL: "https://charge/completed/page",
		CancelURL:   "https://charge/canceled/page",
	})
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("%+v", createResp)

	// Show a charge by providing either the code or id.
	showResp, err := client.ShowCharge(context.Background(), &entity.ShowChargeReq{
		ChargeCode: createResp.Data.Code,
		ChargeID:   "",
	})
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("%+v", showResp)
}

For more example check here.

Supported API

Version: 2018-03-22

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(cfg Config) (*Client, error)

NewClient creates a client to interact with Coinbase Commerce API.

func (Client) CancelCharge

func (c Client) CancelCharge(ctx context.Context, req *entity.CancelChargeReq) (*entity.CancelChargeResp, error)

CancelCharge cancels a charge that has been previously created. Supply the unique charge code or id that was returned when the charge was created. This information is also returned when a charge is first created.

Note: Only new charges can be successfully canceled. Once payment is detected, charge can no longer be canceled.

Reference: https://commerce.coinbase.com/docs/api/#cancel-a-charge

func (Client) CreateCharge

func (c Client) CreateCharge(ctx context.Context, req *entity.CreateChargeReq) (*entity.CreateChargeResp, error)

CreateCharge charge a customer with certain amount of currency. To get paid in cryptocurrency, you need to create a charge object and provide the user with a cryptocurrency address to which they must send cryptocurrency. Once a charge is created a customer must broadcast a payment to the blockchain before the charge expires. Reference: https://commerce.coinbase.com/docs/api/#create-a-charge

func (Client) ListCharges

func (c Client) ListCharges(ctx context.Context, req *entity.ListChargesReq) (*entity.ListChargesResp, error)

ListCharges lists all the charges. Reference: https://commerce.coinbase.com/docs/api/#list-charges

func (Client) ResolveCharge

func (c Client) ResolveCharge(ctx context.Context, req *entity.ResolveChargeReq) (*entity.ResolveChargeResp, error)

ResolveCharge resolves a charge that has been previously marked as unresolved. Supply the unique charge code or id that was returned when the charge was created. This information is also returned when a charge is first created.

Note: Only unresolved charges can be successfully resolved

Reference: https://commerce.coinbase.com/docs/api/#resolve-a-charge

func (Client) ShowCharge

func (c Client) ShowCharge(ctx context.Context, req *entity.ShowChargeReq) (*entity.ShowChargeResp, error)

ShowCharge retrieves the details of a charge that has been previously created. Supply the unique charge code or id that was returned when the charge was created. This information is also returned when a charge is first created. Reference: https://commerce.coinbase.com/docs/api/#show-a-charge

type Config

type Config struct {
	// Key is the authentication API key.
	// Most requests to the Commerce API must be authenticated with an API key.
	// You can create an API key in your Settings page after creating a Coinbase Commerce account.
	// Reference: https://commerce.coinbase.com/docs/api/#authentication
	Key string
	// Timeout describes total waiting time before a request is treated as timeout.
	// Default: 1 min.
	Timeout time.Duration
	// RetryCount describes total number of retry in case error occurred.
	// Set 0 to disable retry mechanism.
	// Default: 3.
	RetryCount int
	// RetryMaxWaitTime describes total waiting time between each retry.
	// Default: 2 second.
	RetryMaxWaitTime time.Duration
	// Debug describes the client to enter debug mode.
	Debug bool
}

func (*Config) Validate

func (c *Config) Validate() error

Directories

Path Synopsis
pkg
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL