Class: Payflow::Providers::Stripe::Webhook

Inherits:
Object
  • Object
show all
Defined in:
lib/payflow/providers/stripe/webhook.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Webhook

Returns a new instance of Webhook.



7
8
9
# File 'lib/payflow/providers/stripe/webhook.rb', line 7

def initialize(client)
  @client = client
end

Instance Method Details

#parse(payload:, headers: {}) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/payflow/providers/stripe/webhook.rb', line 19

def parse(payload:, headers: {})
  body = payload.is_a?(String) ? JSON.parse(payload) : payload
  {
    idempotency_key: body["id"],
    event_type: body["type"],
    provider: :stripe,
    data: body.dig("data", "object") || {}
  }
end

#verify_signature(payload:, headers:) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/payflow/providers/stripe/webhook.rb', line 11

def verify_signature(payload:, headers:)
  Payflow::Webhooks::SignatureVerifier.verify_stripe(
    payload: payload,
    signature_header: headers["HTTP_STRIPE_SIGNATURE"] || headers["Stripe-Signature"],
    secret: @client.send(:credentials)[:webhook_secret]
  )
end