2016-12-21 6 views
1

LumenとGuzzleHttpを使用してSinch SMS APIをテストしようとしていますが、「無効な署名」エラーが発生しています。私は、要求がここに私の添付ヘッダです送信するときに次にSinchが無効なシグネチャエラーを取得する

$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))); 

::私はすでにここに私のコードのサンプルです、擬似コードに続く私のxのタイムスタンプが正しいと仮定すると

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

、私が何をしていますここで間違っている?あなたが私を助けてくれることを願います。前もって感謝します!

答えて

0

いけないbase64でエンコード

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

はちょうどMD5それは、その後、私はまだ、無効な署名エラーを取得しています、すべて

+0

ありません良いエンコードBASE64。それは私のタイムスタンプのためである可能性がありますか?私のタイムゾーンはSinchサーバーとは異なるので、私は自分の要求タイムスタンプを常に先に入れています。 – Jed

+0

すべてのタイムスタンプはUtcにあります – cjensen

+0

だから、おそらく何が間違っているのでしょうか?私はあなたの提案を試みたが、同じエラーをまだ受けている。 – Jed

関連する問題