24
24
*/
25
25
class SendgridSignedRequestParserTest extends AbstractRequestParserTestCase
26
26
{
27
+ private const PRIVATE_KEY = <<<'KEY'
28
+ -----BEGIN RSA PRIVATE KEY-----
29
+ MIICWgIBAAKBgHH/ZmiTGDi6/1IIx4vOKedN24Zuxj9G0ioNpCbNssQlukWijQiz
30
+ UaOZ98JgEA11jGY1gFwCKYVSH5e1ZWN+m4hdxNQoNn8QaODzyo2ocGbobzrIuMJp
31
+ mroyl6WmNa0jW8DMoW1Mpsxo/Vw9FrkAL+eSYgR8ZFWeXbcD8yRfVm/lAgMBAAEC
32
+ gYBDqSUtWHD96u9zz0Yw0pLIeMudBM6h6/T9hM8zQM+j4AipIAu5aEVCZzZIph+g
33
+ /W3xlDu1YIsoWE/sCXw+C31gLgDAd/4++G+3nuQumv5TgdWyZkXrFZ+HiPk77fqh
34
+ F6U+5vTSYS/BOueisDUY7ndgf9pFVZtj5rKHHOmL26KFgQJBAK6npY3H1UyYHi/t
35
+ vaxH/5KVqBDWuUE1+MjyVF0KbjyZOzMka7/4DenbBsZRDCqNrP8psuCwOFPf+vwN
36
+ uVmE7vECQQCnF4F/INbeZkL3EQTMhCF3kIuY9jtB/ah+FQ/zom0gcw4zNAzKVeFm
37
+ SmCTAeZbqq+fTFgwueIE4mPv4hiT0Hg1AkBIqoGr6p+pPYUZxd1rh40i7Nc/Ikdz
38
+ hUQcPw6woz1YQxypW5blCQyo5rL74g6gyc9XXn8JEuhspTzkj8U1JKTRAkASdDAj
39
+ IDda3KRssP58r+MaV2ZzgE5PHXqsYhse50NyIALjeM4o0o9QQsqjscQFP7ahu0bK
40
+ Kt1heLdc2PWp7Y45AkAdAVZd//vS9FLU397DZAf7h+5qhUmPkm8vxnehCH+olQXq
41
+ SPExlMI7PVpISz7jk9hRF31NStTZok//CUcq+yxJ
42
+ -----END RSA PRIVATE KEY-----
43
+ KEY;
44
+ private const SECRET = 'MIGeMA0GCSqGSIb3DQEBAQUAA4GMADCBiAKBgHH/ZmiTGDi6/1IIx4vOKedN24Zuxj9G0ioNpCbNssQlukWijQizUaOZ98JgEA11jGY1gFwCKYVSH5e1ZWN+m4hdxNQoNn8QaODzyo2ocGbobzrIuMJpmroyl6WmNa0jW8DMoW1Mpsxo/Vw9FrkAL+eSYgR8ZFWeXbcD8yRfVm/lAgMBAAE= ' ;
45
+
27
46
protected function createRequestParser (): RequestParserInterface
28
47
{
29
48
return new SendgridRequestParser (new SendgridPayloadConverter (), true );
@@ -34,15 +53,19 @@ protected function createRequestParser(): RequestParserInterface
34
53
*/
35
54
protected function createRequest (string $ payload ): Request
36
55
{
56
+ $ payload = str_replace ("\n" , "\r\n" , $ payload );
57
+
58
+ openssl_sign ('1600112502 ' .$ payload , $ signature , self ::PRIVATE_KEY , \OPENSSL_ALGO_SHA256 );
59
+
37
60
return Request::create ('/ ' , 'POST ' , [], [], [], [
38
61
'Content-Type ' => 'application/json ' ,
39
- 'HTTP_X-Twilio-Email-Event-Webhook-Signature ' => ' MEUCIGHQVtGj+Y3LkG9fLcxf3qfI10QysgDWmMOVmxG0u6ZUAiEAyBiXDWzM+uOe5W0JuG+luQAbPIqHh89M15TluLtEZtM= ' ,
62
+ 'HTTP_X-Twilio-Email-Event-Webhook-Signature ' => base64_encode ( $ signature ) ,
40
63
'HTTP_X-Twilio-Email-Event-Webhook-Timestamp ' => '1600112502 ' ,
41
- ], str_replace ( "\n" , "\r\n" , $ payload) );
64
+ ], $ payload );
42
65
}
43
66
44
67
protected function getSecret (): string
45
68
{
46
- return ' MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE83T4O/n84iotIvIW4mdBgQ/7dAfSmpqIM8kF9mN1flpVKS3GRqe62gw+2fNNRaINXvVpiglSI8eNEc6wEA3F+g== ' ;
69
+ return self :: SECRET ;
47
70
}
48
71
}
0 commit comments