Se a mensagem de erro "Checksum mismatch" aparecer ao usar o Tablestore SDK para PHP no Windows, provavelmente você está executando uma versão do PHP anterior ao PHP 7, que efetivamente opera como 32 bits no Windows. Atualize para o PHP 7 de 64 bits ou posterior para resolver o problema.
Descrição do problema
O seguinte erro ocorre ao executar o Tablestore SDK para PHP no Windows com o PHP 5.6:
Fatal error: Uncaught exception 'AliyunOTSOTSClientException' with message 'Checksum mismatch. expected:120,actual:-48'
Causa
Trata-se de uma limitação conhecida do ecossistema PHP, não de um bug do SDK. O Tablestore utiliza números inteiros de 64 bits internamente. Em uma plataforma de 32 bits — ou seja, a combinação de CPU, sistema operacional, servidor web e binário do PHP — o PHP só consegue representar números inteiros de 64 bits como strings, o que faz o cálculo de checksum produzir resultados incorretos.
No Windows, as versões do PHP anteriores ao PHP 7 não são verdadeiramente de 64 bits, mesmo que o sistema operacional subjacente seja de 64 bits.
Solução
Aviso: O Tablestore não oferece suporte a PHP de 32 bits. No Windows, isso significa que versões do PHP anteriores ao PHP 7 não são compatíveis.
Atualize para o PHP 7 de 64 bits ou posterior. Recomendamos o PHP 7 para desempenho ideal. Para verificar a arquitetura atual do PHP, execute phpinfo() e confira o campo Architecture na saída:
Architecture: X86 — o PHP é de 32 bits. Atualize para o PHP 7 de 64 bits ou posterior.
Architecture: X64 — o PHP já oferece suporte a números inteiros de 64 bits. O problema está em outro lugar.