Рубрики
Uncategorized

Как купить биткоин с помощью PHP

Автор оригинала: David Wong.

Решение 1: Торговля валютой через Axis Core API

Exincore предоставляет API для торговли валютой, основанный на сети микширования.

Вы можете заплатить за выполнение. ExinCore переведет вам вашу покупку биткоина по самой низкой цене и с самой выгодной комиссией за транзакцию. Каждая валютная транзакция анонимна и может быть проверена в цепочке блоков. Только вы и ExinCore знаете детали транзакции!

ExinCore не знает, кто вы, он знает только ваш UUID.

Подготовительные знания:

Сначала вам нужно создать робота, в первом уроке.

Установка пакетов зависимостей

Как мы упоминали в учебнике 1, нам нужно полагаться на mixing-sdk- php Сначала вы должны установить его. Здесь мы устанавливаем его снова. uuid, msgpack Два пакета программного обеспечения.

  composer require ramsey/uuid
  composer require rybakit/msgpack

Введите деньги в сеть и считайте ее баланс.

ExinCore может торговать BTC, долларами США, EOS, ETH и так далее. Здесь мы показываем, что если вы покупаете BTC за доллар США или доллар США за BTC, проверьте адрес своего кошелька, прежде чем торговать! Полные шаги заключаются в следующем:

  • Проверьте баланс Биткоин или долларов США, адрес кошелька. И запишите адрес кошелька.
  • Со сторонней биржи или вашего холодного кошелька заполните деньги указанным выше адресом кошелька.
  • Проверьте баланс валюты еще раз и посмотрите, есть ли она на счете. (Время прибытия биткойна составляет пять блоков, около 100 минут).

Обратите внимание, что биткойн имеет тот же адрес, что и USDT.

if ($line == '2') {
  if (($handle = fopen("new_users.csv", "r")) !== FALSE) {
  while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $mixinSdk_eachAccountInstance = new MixinSDK(GenerateConfigByCSV($data));
    $asset_info = $mixinSdk_eachAccountInstance->Wallet()->readAsset(BTC_ASSET_ID);
    print_r("Bitcoin wallet address is :".$asset_info["public_key"]."\n");
    print_r("Bitcoin wallet balance is :".$asset_info["balance"]."\n");
  }
    fclose($handle);
  } else print("Create user first\n");
}
if ($line == '3') {
  if (($handle = fopen("new_users.csv", "r")) !== FALSE) {
  while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $mixinSdk_eachAccountInstance = new MixinSDK(GenerateConfigByCSV($data));
    $asset_info = $mixinSdk_eachAccountInstance->Wallet()->readAsset(USDT_ASSET_ID);
    print_r("USDT wallet address is :".$asset_info["public_key"]."\n");
    print_r("USDT wallet balance is :".$asset_info["balance"]."\n");
  }
    fclose($handle);
  } else print("Create user first\n");
}

Запрос Информации О Рыночной Цене

Как насчет информации о ценах в ExinCore? Если вы хотите купить биткоин и продать подержанный, то базовой валютой является доллар США; если вы хотите купить подержанный и продать биткоин, базовой валютой является биткоин.

function getExchangeCoins($base_coin) :string {
  $client = new GuzzleHttp\Client();
  $res = $client->request('GET', 'https://exinone.com/exincore/markets?base_asset='.$base_coin, [
      ]);
  $result = "";
  if ($res->getStatusCode() == "200") {
    // echo $res->getStatusCode() . PHP_EOL;
    $resInfo = json_decode($res->getBody(), true);
    echo "Asset ID | Asset Symbol | Price | Amount | Exchanges" . PHP_EOL;
    $result = "Asset ID | Asset Symbol | Price | Amount | Exchanges" . PHP_EOL;
    foreach ($resInfo["data"] as $key => $coinInfo) {
      echo ($coinInfo["exchange_asset"] ." ".$coinInfo["exchange_asset_symbol"]. "/". $coinInfo["base_asset_symbol"] .
            " ". $coinInfo["price"] ." ". $coinInfo["minimum_amount"] ."-". $coinInfo["maximum_amount"] . " ");
      $result .= $coinInfo["exchange_asset_symbol"]. "/". $coinInfo["base_asset_symbol"] .
                  " ". $coinInfo["price"] ." ". $coinInfo["minimum_amount"] ."-". $coinInfo["maximum_amount"] . " ";
      foreach ($coinInfo["exchanges"] as $key => $exchange) {
        echo $exchange . " ";
        $result .= $exchange . " ";
      }
      echo PHP_EOL;
      $result .= PHP_EOL;
    }
  }
  return $result;
}

Перед началом торговли создайте памятку!

В главе 2, Учебник по разработке биткойнов на PHP, основанный на Mixing Network: Роботы принимают биткойны и немедленно возвращают их. Мы узнали, как возвращать биткоины пользователям. Здесь, помимо оплаты ExinCore, мы также сообщаем ему, что мы хотим купить, то есть внести деньги, которые мы хотим купить, в memo.

$memo = base64_encode(MessagePack::pack([
                     'A' => Uuid::fromString($_targetAssetID)->getBytes(),
                     ]));

Полный процесс торговли валютой

При переводе денег на ExinCore напишите памятку в валюте, которую вы хотите купить, в противном случае ExinCore вернет вам деньги напрямую!

const EXIN_BOT        = "61103d28-3ac2-44a2-ae34-bd956070dab1";
const BTC_ASSET_ID    = "c6d0c728-2624-429b-8e0d-d9d19b6592fa";
const EOS_ASSET_ID    = "6cfe566e-4aad-470b-8c9a-2fd35b49c68d";
const USDT_ASSET_ID   = "815b0b1a-2764-3736-8faa-42d694fa620a";
coinExchange(BTC_ASSET_ID,"0.0001",USDT_ASSET_ID);

//...........

function coinExchange($_assetID,$_amount,$_targetAssetID) {
  $mixinSdk = new MixinSDK(require './config.php');
  // print_r();
  $memo = base64_encode(MessagePack::pack([
                       'A' => Uuid::fromString($_targetAssetID)->getBytes(),
                       ]));
  $BotInfo = $mixinSdk->Wallet()->transfer($_assetID,EXIN_BOT,
                                           $mixinSdk->getConfig()['default']['pin'],$_amount,$memo);
  print_r($BotInfo);
}

Если вы хотите продать биткойн и купить USDT, позвоните следующим образом:

coinExchange($config,BTC_ASSET_ID,"0.0001",USDT_ASSET_ID);

Если вы хотите продать доллар США и купить биткойн, позвоните следующим образом:

coinExchange($config,USDT_ASSET_ID,"1",BTC_ASSET_ID);

После завершения транзакции Exit core переведет необходимые вам деньги на ваш счет. Аналогично, он будет записывать цену транзакции, стоимость транзакции и другую информацию в памятке. Вам просто нужно разблокировать его следующим образом!

  • считывание снимков пользователя Считывание записи транзакции кошелька.
$limit        = 20;
$offset       = '2019-03-10T01:58:25.362528Z';
$snapInfo = $mixinSdk_BotInstance->Wallet()->readUserSnapshots($limit, $offset);
// print_r($networkInfo2);
foreach ($snapInfo as  $record) {
  // echo $key . PHP_EOL;
  // print_r($record);
  if ($record['amount'] > 0 and $record['memo'] != '') {
    echo "------------MEMO:-coin--exchange--------------" . PHP_EOL;
    echo "memo: " . $record['memo'] . PHP_EOL;
    // print_r($dtPay->memo);
    echo "You Get Coins: ". $record['asset_id']. " " . $record['amount'] . PHP_EOL;
    $memoUnpack = MessagePack::unpack(base64_decode($record['memo']));
    $feeAssetID = Uuid::fromBytes($memoUnpack['FA'])->toString();
    $OrderID    = Uuid::fromBytes($memoUnpack['O'])->toString();
    if ($memoUnpack['C'] == 1000) {
      echo "Successful Exchange:". PHP_EOL;
      echo "Fee asset ID: " . $feeAssetID . " fee is :" . $memoUnpack['F'] . PHP_EOL;
      echo "Order ID: " . $OrderID . " Price is :" . $memoUnpack['P'] . PHP_EOL;
    } else print_r($memoUnpack);
    echo "--------------memo-record end---------------" . PHP_EOL;
  }
}

Успешная транзакция заключается в следующем:

------------MEMO:-coin--exchange--------------
memo: hqFDzQPooVCnMzg3Mi45N6FGqTAuMDAwNzc0NqJGQcQQgVsLGidkNzaPqkLWlPpiCqFUoUahT8QQIbfeL6p5RVOcEP0mLb+t+g==
You Get Coins: 815b0b1a-2764-3736-8faa-42d694fa620a 0.3857508
Successful Exchange:
Fee asset ID: 815b0b1a-2764-3736-8faa-42d694fa620a fee is :0.0007746
Order ID: 21b7de2f-aa79-4553-9c10-fd262dbfadfa Price is :3872.97
--------------memo-record end---------------

Прочитайте баланс валюты

Прочитав баланс валюты, подтвердите торговую ситуацию!

$mixinSdk = new MixinSDK(require './config.php');
$asset_info = $mixinSdk->Wallet()->readAsset(USDT_ASSET_ID);
print_r("USDT wallet balance is :".$asset_info["balance"]."\n");

Выполнение исходного кода

реализовать php call_apis.php Пришло время начать торговать.

  • 1: Создайте пользователя и обновите PIN-код
  • 2: Прочитайте баланс и адрес биткойна
  • 3: Прочитайте баланс и адрес USDT
  • 4: Считайте баланс EOS
  • 5: Прочитайте адрес EOS
  • 6: Перевод биткоина с бота на нового пользователя
  • 7: Перевод Биткоина от нового пользователя к Мастеру
  • 8: Вывод биткоинов бота
  • 9: Вывести EOS бота
  • qu: Прочитайте рыночную цену(в долларах США)
  • qb: Прочитайте рыночную цену(BTC)
  • b: Баланс бота (USD и BTC)
  • s: Считывание Моментальных снимков
  • tb: Перевод 0.0001 BTC купить USDT
  • ту: Перевести 1 доллар США на покупку BTC
  • вопрос: Выход

Полный код