私はすでに Stackoverflow を検索しましたが、残念ながら何も見つかりませんでした。私は FIX プロトコルを使用しており、http://fixwiki.fixprotocol.org/fixwiki/CheckSumで説明されているように Modulo 256 チェックサムを生成する必要があります。
$count = strlen($message);
$count = $count % 256;
$checksum = 256 - $count;
if(strlen($checksum) == 1) {
$checksum = '00' . $checksum;
}
if(strlen($checksum) == 2) {
$checksum = '0' . $checksum;
}
次の FIX 文字列を使用します。
8=FIX.4.2|9=42|35=0|49=A|56=B|34=12|52=20100304-07:59:30
次のように返されます。
8=FIX.4.2|9=42|35=0|49=A|56=B|34=12|52=20100304-07:59:30|10=185|
ただし、私のスクリプトは次を返します。
8=FIX.4.2|9=42|35=0|49=A|56=B|34=12|52=20100304-07:59:30|10=199|
誰かが私を正しい方向に向けることができれば幸いです!