Module: StraightServerKit

Defined in:
lib/straight-server-kit.rb,
lib/straight-server-kit/client.rb,
lib/straight-server-kit/version.rb,
lib/straight-server-kit/models/order.rb,
lib/straight-server-kit/models/api_error.rb,
lib/straight-server-kit/models/base_model.rb,
lib/straight-server-kit/resources/order_resource.rb

Defined Under Namespace

Classes: ApiError, BaseModel, Client, Order, OrderResource

Constant Summary collapse

VERSION =
'0.2.0'

Class Method Summary collapse

Class Method Details

.signature(nonce:, body:, method:, request_uri:, secret:) ⇒ Object



28
29
30
31
32
# File 'lib/straight-server-kit.rb', line 28

def self.signature(nonce:, body:, method:, request_uri:, secret:)
  sha512  = OpenSSL::Digest::SHA512.new
  request = "#{method.to_s.upcase}#{request_uri}#{sha512.digest("#{nonce}#{body}")}"
  Base64.strict_encode64 OpenSSL::HMAC.digest(sha512, secret.to_s, request)
end

.valid_callback?(signature:, request_uri:, secret:) ⇒ Boolean

Parameters:

  • signature (String)

    X-Signature header

  • request_uri (String)

    /full/callback_path/with?order&callback_data

  • secret (String)

    gateway secret

Returns:

  • (Boolean)


20
21
22
# File 'lib/straight-server-kit.rb', line 20

def self.valid_callback?(signature:, request_uri:, secret:)
  signature == self.signature(nonce: nil, body: nil, method: 'GET', request_uri: request_uri, secret: secret)
end

.valid_signature?(signature:, **args) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/straight-server-kit.rb', line 24

def self.valid_signature?(signature:, **args)
  signature == self.signature(**args)
end