PageRenderTime 84ms CodeModel.GetById 8ms RepoModel.GetById 1ms app.codeStats 0ms

/smscoin_rkey/result_387.php

https://bitbucket.org/smscoin/phpfox_key
PHP | 119 lines | 48 code | 14 blank | 57 comment | 3 complexity | 16dcae50b29d60f7bfae6f29929c94b7 MD5 | raw file
  1. <?php
  2. /*
  3. =====================================================
  4. Addition to the plug smscoin_key for phpFox - by SmsCoin
  5. -----------------------------------------------------
  6. http://smscoin.com
  7. -----------------------------------------------------
  8. Copyright (c) 2011 SmsCoin
  9. =====================================================
  10. File: result.php
  11. -----------------------------------------------------
  12. Purpose: payment plugin via SMS message
  13. =====================================================
  14. */
  15. /**
  16. * Key to include phpFox...
  17. */
  18. define('PHPFOX', true);
  19. /**
  20. * Directory Seperator...
  21. */
  22. define('PHPFOX_DS', DIRECTORY_SEPARATOR);
  23. /**
  24. * phpFox Root Directory...
  25. */
  26. define('PHPFOX_DIR', dirname(dirname(dirname(dirname(__FILE__)))).PHPFOX_DS);
  27. /**
  28. * Require phpFox Init...
  29. */
  30. require(PHPFOX_DIR . 'include' . PHPFOX_DS . 'init.inc.php');
  31. /**
  32. * Функция возвращает MD5 переданных ей параметров...
  33. * MD5 sign...
  34. */
  35. function ref_sign() {
  36. $params = func_get_args();
  37. $prehash = implode("::", $params);
  38. return md5($prehash);
  39. }
  40. /**
  41. * Извлекаем секретный код сервиса...
  42. * Extract the secret service code ...
  43. */
  44. $code = Phpfox::getLib('database')->select('php_code')
  45. ->from('phpfox_plugin')
  46. ->where('title = \'smscoin_rkey\'')
  47. ->execute('getRows');
  48. eval($code[0]['php_code']); // $secret_code available ...
  49. /**
  50. * Парсим полученные параметры на предмет мусора...
  51. * Safe GET...
  52. */
  53. foreach($_GET as $k => $v) {
  54. $_GET[$k] = substr(trim(strip_tags($v)), 0, 250);
  55. }
  56. /**
  57. * Собираем необходимые данные...
  58. * Get data...
  59. */
  60. $key = intval($_REQUEST["key"]);
  61. $pair = $_REQUEST["pair"];
  62. $timeout = intval($_REQUEST["timeout"]);
  63. $limit = intval($_REQUEST["limit"]);
  64. $content = $_REQUEST["content"];
  65. $country = $_REQUEST["country"];
  66. $cost_local = $_REQUEST["cost_local"];
  67. $provider = $_REQUEST["provider"];
  68. $sign = $_REQUEST["sign_v4"];
  69. /**
  70. * Создаем эталонную подпись...
  71. * Create sign...
  72. */
  73. $reference = ref_sign($secret_code, $key, $pair, $timeout, $limit, $content, $country, $cost_local, $provider);
  74. /**
  75. * Проверяем, верна ли подпись...
  76. * Check sign...
  77. */
  78. if($sign == $reference) {
  79. /**
  80. * Запись строки в базу данных...
  81. * Store key...
  82. */
  83. Phpfox::getLib('database')->insert('phpfox_smscoin_rkey_keys', array(
  84. 'k_status' => '1',
  85. 'k_key' => ''.$key.'',
  86. 'k_pair' => ''.$pair.'',
  87. 'k_country' => ''.$country.'',
  88. 'k_provider' => ''.$provider.'',
  89. 'k_text' => ''.$content.'',
  90. 'k_cost_local' => ''.$cost_local.'',
  91. 'k_created' => ''.time(true).'',
  92. 'k_timeout' => ''.$timeout.'',
  93. 'k_limit_start' => ''.$limit.'',
  94. 'k_limit_current' => ''.$limit.''
  95. )
  96. );
  97. echo 'OK';
  98. } else {
  99. /**
  100. * Неправильно составлен запрос...
  101. * Error...
  102. */
  103. echo 'checksum failed';
  104. }
  105. ?>