【重要】API(Push通知機能)の仕様変更に関するご案内

お知らせ

facebookでShare
XでPostする

平素よりlearningBOXをご利用いただき、誠にありがとうございます。

learningBOXでは、Ver2.19のリリースより、APIの仕様を変更いたします。
今回のお知らせは、API連携をご利用のお客様向けの内容です。

APIの変更点について

変更前

変更後

実装方法によっては、通信が失敗する可能性があります

ハードコーディングの場合、無効な通知と判定される可能性があります。

PUSH通知の有効性をチェックする方法

その1:送信内容を取得する。
その2:送信内容からパラメータ「hash」を取り除いて一時保存します。
その3:送信内容のパラメータの順番を変えずに後ろに「secret」を追加してください。
その4:送信内容のパラメータ値を「|」で連結した後、sha256でハッシュ値を取得します。
その5:送信内容から取得したhashと一致しているかをチェックしてください。

PUSH通知有効性チェックのサンプルコード

/**
* PUSH通知有効性チェック
* 通知内容例:
* ————————————————
* {
* ‘param1’: ‘aaa’,
* ‘param2’: ‘bbb’,
* ‘param3’: ‘ccc’,
* ‘hash’: ‘ae12de’
* }
* ————————————————
* ※hash以外のパラメータは並び順変更、または増減する可能性があります。
*/

正常に動作する例

$payload = file_get_contents(‘php://input’); // 通知内容を取得
$payload = json_decode($payload, true); // 通知内容を配列化
$hash = $payload[‘hash’]; // 検証用のハッシュ値を取得
unset($payload[‘hash’]); // 検証用のハッシュ値を送信内容から取り除く
$payload = $payload + [‘secret’ => ‘tatsuno123’]; // 通知内容の後ろに通知先のシークレットキーを追加
if($hash === hash(‘sha256’, implode(‘|’, $payload))) {
// 送信内容認証成功
} else {
// 送信内容認証失敗
}

不具合の出る例

$payload = file_get_contents(‘php://input’); // 通知内容を取得
$payload = json_decode($payload, true); // 通知内容を配列化
$hash = $payload[‘hash’]; // 検証用のハッシュ値を取得
$param1 = $payload[‘param1’]; // 検証用のパラメータ1を取得
$param2 = $payload[‘param2’]; // 検証用のパラメータ2を取得
$param3 = $payload[‘param3’]; // 検証用のパラメータ3を取得
$secret = ‘tatsuno123’; // 通知先のシークレットキー
if($hash === hash(‘sha256’, $param1 . ‘|’ . $param2 . ‘|’ . $param3 . ‘|’ . $secret)) {
// 送信内容認証成功
// 通知内容に変更があった場合、認証通らない可能性があります。
} else {
// 送信内容認証失敗
}

ご利用のお客様にはご迷惑をお掛けいたしますが、ご理解ご協力のほどよろしくお願いいたします。

facebookでShare
XでPostする
コンプライアンス研修を無料ではじめよう!
banner

  • コメント ( 0 )

  • トラックバックは閉鎖されています。

  1. まだコメントはありません。

関連記事