Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function deep_map_pairs($data = array()){
- $a = array();
- foreach ($data as $k => $v){
- if ($k == 'x_signature'){
- continue;
- }
- if (is_array($v) && array_keys($v) !== range(0, count($v) - 1)) {
- $b = array();
- $dmp = deep_map_pairs($v);
- $flatted_dmp = new RecursiveIteratorIterator(new RecursiveArrayIterator($dmp));
- foreach ($flatted_dmp as $p){
- $b[] = $k.$p;
- }
- $a[] = $b;
- } else if (is_array($v)){
- $b = array();
- foreach ($v as $c){
- $b[] = deep_map_pairs(array($k => $c));
- }
- $a[] = $b;
- } else {
- $a[] = $k.$v;
- }
- }
- return $a;
- }
- $new = deep_map_pairs($_POST);
- $flatted_new = new RecursiveIteratorIterator(new RecursiveArrayIterator($new));
- $array_flatted = [];
- foreach ($flatted_new as $p){
- $array_flatted[] = $p;
- }
- $compacted_af = array_filter($array_flatted, function($var){
- return ($var !== NULL && $var !== FALSE && $var !== "");
- });
- sort($compacted_af, SORT_REGULAR | SORT_FLAG_CASE);
- $source_string = implode('|', $compacted_af);
- $xsignature_key = 'S-R5t3Uw6SrwXNWyZV-naVHg'; // Get from your Billplz Account Settings
- $xsignature = $_POST['x_signature'];
- $equal = hash_equals(hash_hmac('sha256', $source_string, $xsignature_key), $xsignature);
- if ($equal) {
- error_log('match');
- } else {
- error_log('not match');
- }
Advertisement
Add Comment
Please, Sign In to add comment