Class: Creem::Webhook
- Inherits:
-
Object
- Object
- Creem::Webhook
- Defined in:
- lib/creem/webhook.rb
Class Method Summary collapse
- .construct_event(payload:, secret:, signature:) ⇒ Object
- .verify_signature(payload:, secret:, signature:) ⇒ Object
- .verify_signature!(payload:, secret:, signature:) ⇒ Object
Class Method Details
.construct_event(payload:, secret:, signature:) ⇒ Object
20 21 22 23 |
# File 'lib/creem/webhook.rb', line 20 def self.construct_event(payload:, secret:, signature:) verify_signature!(payload: payload, secret: secret, signature: signature) JSON.parse(payload) end |
.verify_signature(payload:, secret:, signature:) ⇒ Object
7 8 9 10 |
# File 'lib/creem/webhook.rb', line 7 def self.verify_signature(payload:, secret:, signature:) computed = OpenSSL::HMAC.hexdigest("SHA256", secret, payload) secure_compare(computed, signature) end |
.verify_signature!(payload:, secret:, signature:) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/creem/webhook.rb', line 12 def self.verify_signature!(payload:, secret:, signature:) unless verify_signature(payload: payload, secret: secret, signature: signature) raise WebhookSignatureError, "Invalid webhook signature" end true end |