CheckoutSdk

You are reading documentation for version: 0.2.1

Installation

Add this line to your application's Gemfile:

gem 'checkout_sdk'

And then execute:

$ bundle

Or install it yourself as:

$ gem install checkout_sdk

Configuration

API keys must be configured in the gem setup. You can do this anywhere in your application before you make API calls using the gem.

CheckoutSdk.configure do |config|
  config.secret_key = ENV['SECRET_KEY']
  config.public_key = ENV['PUBLIC_KEY']
  config.base_url   = ENV['BASE_URL']
end

Usage

Source Type: token

A card token can be obtained using one of Checkout.com's JavaScript frontend solutions such as Frames or any of the mobile SDKs

payment_request_source = CheckoutSdk::PaymentRequestSource.new
payment_request_source.type = "token"
payment_request_source.token = "tok_..."
payment_request_source.amount = 2022
payment_request_source.currency = "GBP"

api_resource = CheckoutSdk::ApiResource.new

# Send API call
response = api_resource.request_payment(payment_request_source)

# response parsing
response.data           # => {...}
response.body           # => "..."
response.headers        # => {...}
response.remote_ip      # => "..."
response.status         # => 200
response.remote_ip      # => "..."
response.local_port     # => 51601
response.local_address  # => "..."

Source Type: id

payment_request_source = CheckoutSdk::PaymentRequestSource.new
payment_request_source.type = "id"
payment_request_source.token = "src_..."
payment_request_source.amount = 2022
payment_request_source.currency = "GBP"

api_resource = CheckoutSdk::ApiResource.new

# Send API call
response = api_resource.request_payment(payment_request_source)

# response parsing
response.data           # => {...}
response.body           # => "..."
response.headers        # => {...}
response.remote_ip      # => "..."
response.status         # => 200
response.remote_ip      # => "..."
response.local_port     # => 51601
response.local_address  # => "..."

Source Type: card

Fully PCI Compliant merchants only

payment_request_source = CheckoutSdk::PaymentRequestSource.new
payment_request_source.type = "card"
payment_request_source.card_number = "4242424242424242"
payment_request_source.card_expiry_month = 6
payment_request_source.card_expiry_year = 2025
payment_request_source.card_name = "Bruce Wayne"
payment_request_source.card_cvv = "100"
payment_request_source.amount = 2022
payment_request_source.currency = "GBP"

api_resource = CheckoutSdk::ApiResource.new

# Send API call
response = api_resource.request_payment(payment_request_source)

# response parsing
response.data           # => {...}
response.body           # => "..."
response.headers        # => {...}
response.remote_ip      # => "..."
response.status         # => 200
response.remote_ip      # => "..."
response.local_port     # => 51601
response.local_address  # => "..."

NB: Using boolean/falsey values

# `nil` or empty strings
payment_request_source.capture = nil
payment_request_source.capture = ""
# will be stripped from API call

# but `false`, or 0
payment_request_source.capture = false
payment_request_source.capture = 0
# are retained and sent in request

See api_resource_spec for details

Tests

$ rspec