Sinch с PHP получает ошибку неверной подписи

Я пытаюсь протестировать Sinch SMS API, используя Lumen и GuzzleHttp, но получаю ошибку «Invalid Signature». Я уже следовал псевдокоду, вот пример моего кода:

$body = array('message' => 'sample message');
$contentMD5 = base64_encode(md5(utf8_encode(json_encode($body)), true));
$strToSign = "POST\n" .
$contentMD5 . "\n" .
"application/json\n" .
"x-timestamp:2016-12-21T00:30:31.27Z\n" .
"/v1/sms/+123456789";
$signature = base64_encode(hash_hmac('sha256', base64_decode($this->API_SECRET, true), utf8_encode($strToSign)));

Затем, когда я отправляю запрос, вот мои прикрепленные заголовки:

$headers = array(
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'X-Timestamp' => '2016-12-21T00:30:31.27Z',
'Authorization' => "Application $this->API_KEY:" . $signature
);

Если предположить, что мои x-timestamp верны, что я тут делаю не так? Надеюсь, ты сможешь мне помочь. Заранее спасибо!

1

Решение

Не кодируйте base64

$contentMD5 = base64_encode(md5(utf8_encode(json_encode($body)), true));

просто md5 это, тогда base64 все закодирует

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector