2017-02-23 1 views
2

Vungle에는 PHP 샘플 코드가 없습니다. 내 게임은 PHP에서 실행되며 클라이언트 측 콜백을 사용하고 싶지 않습니다. Vungle callback in PHP

그들은 몇 가지 지침이 있습니다

콜론으로 구분 트랜잭션 ID와 비밀 키를 연결하여 원시 트랜잭션 검증 문자열을 만듭니다 : transactionString =의 비밀 우리는 방법을 다음과 같이 콜백 확인하는 가이드가 + ":"+ % txid %

SHA-256 알고리즘을 사용하여 transactionString의 바이트를 두 번 해시합니다.

하여 트랜잭션 확인 토큰을 생성 진수 인코딩이 같은 모양 SHA-256 해시의 2 연속 라운드의 출력 바이트 : 당신이 생성 된 transactionToken 보낸 하나에 해당된다는 transactionToken = 870a0d13da1f1670b5ba35f27604018aeb804d5e6ac5c48194b2358e6748e2a8

확인 콜백 쿼리 문자열에서 % digest %.

이 코드를 사용해 보았습니다. 그러나 보안 코드가 일치하지 않습니다.

$user = $_REQUEST['uid']; 
$txid = $_REQUEST['txid']; 
$digest = $_REQUEST['digest']; 
error_log(print_r($_GET, TRUE), 0); 
//verify hash 
$test_string = "" .$MY_SECRET_KEY . ":" . $txid; 
    // $open_udid . $udid . $odin1 . $mac_sha1 . $custom_id; 
//$test_result = md5($test_string); 
error_log(print_r("test string: " . $test_string, TRUE), 0); 

$result = hash('sha256', $test_string); 
error_log(print_r("result: " . $result, TRUE), 0); 
$test_result = hash('sha256', $result); 

error_log(print_r("test result" . $test_result, TRUE), 0); 

if($test_result != $digest) { 
    echo "vc_noreward"; 
    error_log(print_r("failed validation", TRUE), 0); 

    die; 
} 

답변

2

당신은 hash에 대해서도 제 3 인수가 필요합니다

$hash0 = $secret.":".$txid; 
$hash1 = hash('sha256', $hash0, true); //binnary 
$hash2 = hash('sha256', $hash1, false); // hex 

if ($hash2 == $digest) OK 
관련 문제