{"id":13880,"url":"\/distributions\/13880\/click?bit=1&hash=b1b97613419270bc9ecf569d8c6d816ee812ccc788e4232f0412e41e0e2d9f80","title":"\u0423 \u00ab\u042f\u043d\u0434\u0435\u043a\u0441\u0430\u00bb \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442","buttonText":"\u041a\u0430\u043a\u043e\u0439?","imageUuid":"333334d9-c12d-5ac1-a13b-c01eab6b9733","isPaidAndBannersEnabled":false}

[DEV: PHP] Перевод криптовалюты с выбранных адресов

Криптовалюты - это псевдоанонимное средство расчетов. С одной стороны, не нужно проходить проверку, чтобы создать кошелек, а с другой, по цепочке транзакций можно определить источник средств. Биржи и обменники не желают связываться с “грязными” монетами, для этого проводят KYC клиента и проверку каждой транзакции.

Крипто-кошелек содержит множество адресов. Обычно при трансфере, несколько монет объединяются в одну, а сдача возвращается на новый адрес.

Если у вас p2p-обмен, торговая площадка, телеграм-бот или сервис, связанный с выводом в фиатную валюту, то вам необходимо иметь изолированные транзакции в пределах одного адреса.

Такая функция уникальна, поскольку ни один другой процессинг (на момент написания статьи) не обладает подобным решением, т.е. не предоставляет клиенту возможность выбора монет при оплате.

Тестовый кошелек: tbtc-bde1cfc70297e4ff7068334b25986819

Тестовый Transfer_key: hyl1aQkd5vwdzT1uExgUCOXOcekUg4Yc

Пример кода:

<?php $WalletID = "tbtc-bde1cfc70297e4ff7068334b25986819"; $json_data = '{"transfer_key": "hyl1aQkd5vwdzT1uExgUCOXOcekUg4Yc", "addresses": ["2N919xVyDyutwTX87zg1NBQWJQWcFcpVVUf"], "destinations": [{"address": "2N4obeEuEidHmuXLCLvWeA4tH9FhB8W8EyD", "amount": 40000}]}'; $api_base = "https://apirone.com/api/v2/wallets/" . $WalletID . "/transfer"; $curl = curl_init($api_base); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $json_data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $http_status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); $response = curl_exec($curl); curl_close($curl); $decoded = json_decode($response, true); echo "Transaction created: " . $decoded["created"] . "<br>"; echo "Transaction hash: " . $decoded["txs"]["0"] . "<br>"; echo "Total amount: " . $decoded["total"] . " Satoshies"; ?>

Где addresses - это массив из одного или нескольких адресов, из которых будут браться монеты для транзакции.

Получателей destinations может быть от 1 до 255, они также перечисляются в массиве.

Бизнес-логику можно построить так:

  • вам прислали платеж, и он подтвердился в сети
  • вы проверили его на чистоту, например в сервисе Crystal Blockchain
  • в случае недостаточной чистоты происхождения средств, вернули их отправителю, не затронув других клиентов

В параметре суммы можно указать значение “100%”, в таком случае комиссия сети вычитается из суммы и на указанном(-ых) адресе(-ах) на балансе будет ноль.

0
Комментарии
Читать все 0 комментариев
null