2017-02-23 43 views
2

Vungle не имеет кода примера PHP. Моя игра работает на PHP, и я не хочу использовать обратный вызов на стороне клиента.Обратный вызов Vungle в PHP

У них есть некоторые инструкции: У нас есть руководство, как проверить ваш обратный вызов, как показано ниже:

Создать необработанную строку проверки транзакции по конкатенации секретного ключа с идентификатором транзакции, разделенным двоеточием: transactionString = SecretKey + ":" +% txid%

Хэш байтов транзакцииString дважды с использованием алгоритма SHA-256.

Сформировать маркер проверки транзакций с помощью шестигранного кодирующего выходных байт 2 последовательных раундов SHA-256 хеширования, который будет выглядеть примерно так: transactionToken = 870a0d13da1f1670b5ba35f27604018aeb804d5e6ac5c48194b2358e6748e2a8

Убедитесь, что transactionToken вы сгенерировали равняется посланным в запросе ответа в% 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

Вы должны также 3-й аргумент для hash:

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

if ($hash2 == $digest) OK 
Смежные вопросы