SaveText.Ru

Без имени
  1. <?php
  2. set_time_limit(0);
  3. //////////////////////////////////////////////////////////////////////////////
  4. //////////////////////////////////////////////////////////////////////////////
  5. //////////////////////////////////////////////////////////////////////////////
  6. // секретный ключ пользователя
  7. $secretKey = '
  8.         {
  9.             "kty":"EC","alg":"ES256","crv":"P-256",
  10.             "x":"t-r6pJnMEol8GdceYq4XRxMyF1Cj5weyHtwTTCKrGGU",
  11.             "y":"ADoXYRKQvCAtMnIaJsNM0EoWt6XOPgA3yulVm7OngEs",
  12.             "d":"jaGcV1_LwKA7l2qvrMGglGT1K3GMMFa_lgtoKyDdYfQ"
  13.         }
  14. ';
  15. // E-Mail аккаунта
  16. $user_email = "[email protected]";
  17. //////////////////////////////////////////////////////////////////////////////
  18. //////////////////////////////////////////////////////////////////////////////
  19. //////////////////////////////////////////////////////////////////////////////
  20. // ПОКУПКА
  21.  
  22. // На сколько курс будет больше при установке (шаг)
  23. $step = 1;
  24.  
  25. // ID обьявления
  26. $adv_id = 169321;
  27.  
  28. // Наши лимиты
  29. $limit_min = 10000;
  30. $limit_max = 70000;
  31.  
  32. // Максимальный придел курса
  33. $rate_max = 1412055;
  34.  
  35. //////////////////////////////////////////////////////////////////////////////
  36. //////////////////////////////////////////////////////////////////////////////
  37. //////////////////////////////////////////////////////////////////////////////
  38. // ПРОДАЖА
  39.  
  40. // На сколько курс будет меньше при установке (шаг)
  41. $step2 = 1;
  42.  
  43. // ID обьявления на продажу
  44. $adv_id2 = 184133;
  45.  
  46. // Наши лимиты
  47. $limit_min2 = 5500;
  48. $limit_max2 = 15000;
  49.  
  50. // Минимальный придел курса
  51. $rate_min = 1464015;
  52.  
  53.  
  54. //////////////////////////////////////////////////////////////////////////////
  55. //////////////////////////////////////////////////////////////////////////////
  56. //////////////////////////////////////////////////////////////////////////////
  57. require_once('vendor/autoload.php');
  58. use JoseComponentCoreAlgorithmManager;
  59. use JoseComponentCoreJWK;
  60. use JoseComponentSignatureAlgorithmES256;
  61. use JoseComponentSignatureAlgorithmPS256;
  62. use JoseEasyBuild;
  63. $es256 = new ES256();
  64. $jwk = JWK::createFromJson($secretKey);
  65. $am = new AlgorithmManager([$es256]);
  66. $jws = Build::jws()->iat(time())->jti(rand())->alg($es256)->aud('usr')->claim('email', $user_email)->sign($jwk);
  67.  
  68.  
  69.  
  70.  
  71.  
  72. //////////////////////////////////////////////////////////////////////////////
  73. //////////////////////////////////////////////////////////////////////////////
  74. //////////////////////////////////////////////////////////////////////////////
  75. $curl = curl_init();
  76. curl_setopt_array($curl, [
  77.     CURLOPT_RETURNTRANSFER => 1,
  78.     CURLOPT_URL => 'https://bitzlato.com/api/p2p/public/exchange/dsa/?cryptocurrency=BTC&type=selling&currency=RUB&paymethod=444&limit='.rand(20,999999),
  79.     CURLOPT_HTTPHEADER => array("Authorization: Bearer $jws")
  80. ]);
  81. $response = curl_exec($curl);
  82. echo $response;
  83. curl_close($curl);
  84. //////////////////////////////////////////////////////////////////////////////
  85. //////////////////////////////////////////////////////////////////////////////
  86. //////////////////////////////////////////////////////////////////////////////
  87. $jws = Build::jws()->iat(time())->jti(rand())->alg($es256)->aud('usr')->claim('email', $user_email)->sign($jwk);
  88. $curl = curl_init();
  89. curl_setopt_array($curl, [
  90.     CURLOPT_RETURNTRANSFER => 1,
  91.     CURLOPT_URL => 'https://bitzlato.com/api/p2p/public/exchange/dsa/?cryptocurrency=BTC&type=purchase&currency=RUB&paymethod=444&limit='.rand(20,999999),
  92.     CURLOPT_HTTPHEADER => array("Authorization: Bearer $jws")
  93. ]);
  94. $response2 = curl_exec($curl);
  95. echo "<br><br>" . $response2;
  96. curl_close($curl);
  97. //////////////////////////////////////////////////////////////////////////////
  98. //////////////////////////////////////////////////////////////////////////////
  99. //////////////////////////////////////////////////////////////////////////////
  100.  
  101. $data_array = json_decode($response, TRUE);
  102. $data_array = $data_array['data'];
  103.  
  104. $rate = 0;
  105. for ($i = 0; $i < count($data_array); $i++){
  106.     if ($data_array[$i]['limitCurrency']['max'] < $limit_min){
  107.         continue;
  108.     }
  109.     if ($data_array[$i]['limitCurrency']['min'] > $limit_max){
  110.         continue;
  111.     }
  112.     if ($data_array[$i]['id'] == $adv_id){
  113.         continue;
  114.     }
  115.     if ($data_array[$i]['rate'] > $rate_max){
  116.         continue;
  117.     }
  118.     $rate = intval($data_array[$i]['rate']) + $step;
  119.     break;
  120. }
  121. if ($rate > 0 AND $rate <= $rate_max AND file_get_contents("./oldrate.txt") != $rate){
  122.     file_put_contents("./oldrate.txt", $rate);
  123.     $jws = Build::jws()->iat(time())->jti(rand())->alg($es256)->aud('usr')->claim('email', $user_email)->sign($jwk);
  124.     changeRate($rate, $jws, $adv_id);
  125. }
  126. sleep(20);
  127. //////////////////////////////////////////////////////////////////////////////
  128. //////////////////////////////////////////////////////////////////////////////
  129. //////////////////////////////////////////////////////////////////////////////
  130.  
  131.  
  132. $data_array = json_decode($response2, TRUE);
  133. $data_array = $data_array['data'];
  134.  
  135. $rate = 0;
  136. for ($i = 0; $i < count($data_array); $i++){
  137.     if ($data_array[$i]['limitCurrency']['max'] < $limit_min2){
  138.         continue;
  139.     }
  140.     if ($data_array[$i]['limitCurrency']['min'] > $limit_max2){
  141.         continue;
  142.     }
  143.     if ($data_array[$i]['id'] == $adv_id2){
  144.         continue;
  145.     }
  146.     if ($data_array[$i]['rate'] < $rate_min){
  147.         continue;
  148.     }
  149.     $rate = intval($data_array[$i]['rate']) - $step2;
  150.     break;
  151. }
  152. if ($rate > 0 AND $rate >= $rate_min AND file_get_contents("./oldrate2.txt") != $rate){
  153.     file_put_contents("./oldrate2.txt", $rate);
  154.     $jws = Build::jws()->iat(time())->jti(rand())->alg($es256)->aud('usr')->claim('email', $user_email)->sign($jwk);
  155.     changeRate($rate, $jws, $adv_id2);
  156. }
  157.  
  158.  
  159.  
  160.  
  161. //////////////////////////////////////////////////////////////////////////////
  162. //////////////////////////////////////////////////////////////////////////////
  163. //////////////////////////////////////////////////////////////////////////////
  164. function changeRate($rate, $jws, $adv_id){
  165.     $curl = curl_init();
  166.     curl_setopt_array($curl, [
  167.         CURLOPT_RETURNTRANSFER => 1,
  168.         CURLOPT_URL => 'https://bitzlato.com/api/p2p/dsa/'.$adv_id,
  169.         CURLOPT_POSTFIELDS => json_encode(array("rateValue"=>$rate)),
  170.         CURLOPT_CUSTOMREQUEST => "PUT",
  171.         CURLOPT_HTTPHEADER => array("Authorization: Bearer $jws", "Content-Type: application/json")
  172.     ]);
  173.     $response = curl_exec($curl);
  174.     echo "<br><br>" . $response;
  175.     curl_close($curl);
  176. }
  177.  
  178.  
  179.  
  180. //////////////////////////////////////////////////////////////////////////////
  181. //////////////////////////////////////////////////////////////////////////////
  182. //////////////////////////////////////////////////////////////////////////////
  183. /*
  184. //Используется метод /api/p2p/dsa/{advertId} параметры '{"details": "4544 3000 4569 45000", "liquidityLimit": true, "maxAmount": "1", "maxLimitForNewTrader": null, "minAmount": "1", "minPartnerTradesAmount": null, "ratePercent": "-5", "terms": "terms", "verifiedOnly": false}'
  185. //В данном примере цена устанавливается -5%
  186. if (isset($_GET['list'])){
  187.     $curl = curl_init();
  188.     curl_setopt_array($curl, [
  189.         CURLOPT_RETURNTRANSFER => 1,
  190.         CURLOPT_URL => 'https://bitzlato.com/api/p2p/dsa/all?id=169321',
  191.         CURLOPT_HTTPHEADER => array(
  192.             "Authorization: Bearer $jws"
  193.         )
  194.     ]);
  195.     $response = curl_exec($curl);
  196.     $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  197.     curl_close($curl);
  198.     //echo $httpcode . ' ' . $response;
  199.     echo "<pre>";
  200.     print_r(json_decode($response, TRUE));
  201.     exit();
  202. }
  203. if (isset($_GET['list_all'])){
  204.     $curl = curl_init();
  205.     curl_setopt_array($curl, [
  206.         CURLOPT_RETURNTRANSFER => 1,
  207.         CURLOPT_URL => 'https://bitzlato.com/api/p2p/public/exchange/dsa/?cryptocurrency=BTC&type=selling&currency=RUB&paymethod=444&limit=20',
  208.         CURLOPT_HTTPHEADER => array(
  209.             "Authorization: Bearer $jws"
  210.         )
  211.     ]);
  212.     $response = curl_exec($curl);
  213.     $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  214.     curl_close($curl);
  215.     echo $httpcode . ' ' . $response;
  216.     echo "<pre>";
  217.     print_r(json_decode($response, TRUE));
  218.     exit();
  219. }
  220. */
  221.  
  222.  
  223.  
  224. ?>

Share with your friends:

Print