class CloudPayments::Webhooks

Attributes

config[R]

Public Class Methods

new(config = nil) click to toggle source
# File lib/cloud_payments/webhooks.rb, line 11
def initialize(config = nil)
  @config = config || CloudPayments.config
  @digest = OpenSSL::Digest.new('sha256')
  @serializer = Client::Serializer::Base.new(config)
end

Public Instance Methods

data_valid?(data, hmac) click to toggle source
# File lib/cloud_payments/webhooks.rb, line 17
def data_valid?(data, hmac)
  Base64.decode64(hmac) == OpenSSL::HMAC.digest(@digest, config.secret_key, data)
end
kassa_receipt(data) click to toggle source
# File lib/cloud_payments/webhooks.rb, line 26
def kassa_receipt(data)
  OnKassaReceipt.new(@serializer.load(data))
end
on_fail(data) click to toggle source
# File lib/cloud_payments/webhooks.rb, line 38
def on_fail(data)
  OnFail.new(@serializer.load(data))
end
on_pay(data) click to toggle source
# File lib/cloud_payments/webhooks.rb, line 34
def on_pay(data)
  OnPay.new(@serializer.load(data))
end
on_recurrent(data) click to toggle source
# File lib/cloud_payments/webhooks.rb, line 30
def on_recurrent(data)
  OnRecurrent.new(@serializer.load(data))
end
validate_data!(data, hmac) click to toggle source
# File lib/cloud_payments/webhooks.rb, line 21
def validate_data!(data, hmac)
  raise HMACError unless data_valid?(data, hmac)
  true
end