Hey @BarryCarlyon
Thank you for the reply!
So I did actually suspect this as I see with the Javascript example, they had to call toLowerCase() on each of the headers.
I decided to place a low level logger into the function so I could check a small monolog file to see if in fact we were getting anything returned from using uppercase letters with the headers.
This was what I got back:
[2022-10-25 10:52:33] production.DEBUG: Details retrieved to complete verification {
"secret":"REDACTED",
"messageId":"fatmG7lbGyYsrALlB5_-VjvBjQAfP...{REDACTED SOME}",
"messageTimestamp":"2022-10-25T10:52:32.747937315Z",
"body":"{"subscription":{"id":"{REDACTED}","status":"enabled","type":"channel.update","version":"1","condition":{"broadcaster_user_id":"{REDACTED}"},"transport":{"method":"webhook","callback":"{REDACTED}"},"created_at":"2022-10-25T10:51:31.050369765Z","cost":0},"event":{"broadcaster_user_id":"{REDACTED}","broadcaster_user_login":"deerockuk","broadcaster_user_name":"DeeRockUK","title":"Lets finish sorcery | [Private PvE Server] | !sneak !tiktok","language":"en","category_id":"493551","category_name":"Conan Exiles","is_mature":true}}"
}
As you can see, both messageId and messageTimestamp exist in that log, so whether Laravel deep down lowercase this with the method header() or not, it doesn’t seem this is the problem
EDIT:
I just seen your own edit about the payload being re-encoded. Interesting theory… Let me try a few things on that!