Class: Increase::Webhooks

Inherits:
Object
  • Object
show all
Defined in:
lib/increase/webhooks.rb

Class Method Summary collapse

Class Method Details

.verify?(payload:, signature_header:, secret:, scheme: "v1") ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
14
# File 'lib/increase/webhooks.rb', line 6

def self.verify?(payload:, signature_header:, secret:, scheme: "v1")
  sig_values = signature_header.split(",").map { |pair| pair.split("=") }
  sig_values = sig_values.to_h

  signed_payload = sig_values["t"] + "." + payload.to_s

  expected_sig = OpenSSL::HMAC.hexdigest("SHA256", secret, signed_payload)
  SecureCompare.compare(expected_sig, sig_values["v1"])
end