hotmeteor / receiver

Receiver is a drop-in webhook handling library for Laravel.
MIT License
384 stars 21 forks source link

lower case all event names to get handler class #22

Open x7ryan opened 1 year ago

x7ryan commented 1 year ago

When working with PayPal webhooks I ran into an issue where by handler wasn't getting called as expected.

PayPal uses all uppercase for their event names in webhooks. For example "PAYMENT.AUTHORIZATION.CREATED". See (https://developer.paypal.com/api/rest/webhooks/event-names/).

Because of this, and because my custom provider was passing in the event name unmodified, I discovered it was looking for a class named "PAYMENTAUTHORIZATIONCREATED" instead of "PaymentAuthorizationCreated".

In the meantime I am working around this by lowercasing the event name before returning it from my custom provider, but I feel this should be handled by the package directly because:

1) Relying the the developer to lowercase event names in their Provider relys on them knowing that is necessary.

2) I can't imagine a scenario where a developer wants to have an all upperclass class name.

Therefore, this PR lowercases all event names when determining the matching class name.