방금 리눅스 기반의 새 서버로 마이그레이션했습니다. 이동 한 후 동작이 변경된 것을 보았습니다. 어떤 이유에서 주문 ID가 페이스 북 크레딧 콜백을 통해 2.6040261734251E + 14 다음과 같은 형식으로 페이로드로 전송됩니다. 143121239125639 (이들은 반드시 동일한 주문 번호 일 필요는 없습니다. 형식을 참조하십시오 ...페이 스북 크레딧 콜백, order_id가 새 서버로 이동 한 후 형식 변경 변경
$ _REQUEST에서 가져온 직후 및 DB 삽입 전에 형식이 도착합니다 ... 누구나 그 형식이 변경/도착하는 이유는 무엇입니까? 감사합니다.
--- 편집 --- 나는 parse_signed_request 기능을 사용하여 서명 요청에서 변수를 받고 있어요 : 찰리 P., 난 정말 대신 32 비트 서버를 사용하고 발견으로
function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
mail('[email protected]','server error','Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check signature
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}
return $data;
}
64 비트 이전 서버. 다시
json_decode(base64_url_decode($payload), true);
감사를 사용하는 이상 그것은 어떻게 든
마지막에 'E + 14'는 14 개의 후행 0이 있다는 것을 의미합니다 ... oddd –
참으로 기가 바이트 ... 실제로 DB에 입력되면 실제로는 거의 확인되지만 마지막 숫자는 0으로 바뀝니다. 하나 ... – Yanipan