P
P
Pringell2020-02-17 22:27:16
PHP
Pringell, 2020-02-17 22:27:16

Need to set up btc payment (problem in sending json post)?

I want to connect the payment forwarding API from bitaps.com
I can't
Link to api - https://developer.bitaps.com/forwarding
Part of the documentation:

API базовая ссылка
Для всех поддерживаемых криптовалют API доступны для Mainnet, Testnet и сети Tor. Для тестнет сетей доступны раздачи тестовых монет, а так же экcплореры.

Mainnet URL: https://api.bitaps.com/{currency}/v1/
Testnet URL: https://api.bitaps.com/{currency}/testnet/v1/
Tor Mainnet URL: http://bitaps4nifcusilt.onion/{currency}/v1/

Доступное значение currency: btc, ltc, bch, eth.

Создать адрес для пересылки
POST /create/payment/address
Для создания платежного адреса необходимо: указать адрес для пересылки платежа, ссылку на обработчик уведомлений о платежах (опционально) и количество подтверждений, необходимых для зачисления платежа и получения уведомлений о подтверждениях (если не указанно будет использовано значение по умолчанию). Информация о поступлении платежа и выплате будет отправляться на указанный обработчик уведомлений. Для Bitcoin Cash и Litecoin в ответе на запрос так же присутствует адрес в legacy формате (устаревший формат адресов). Оба формата адресов могут быть использованы для получения платежей и обрабатываются платформой корректно.

Request body
       application/json
         JSON object
string   |  forwarding_address  |   Адрес для пересылки   |   required
string   |   callback_link            |   Ссылка на обработчик уведомлений о платежах    |      optional
integer |    confirmations          |   Количество подтверждений необходимых для зачисления платежа  |   optional
Responses
application/json
200
payment_code
string
Код платежа, используется для аутентификации уведомлений о платеже и получении статистики по адресу (данный код не должен разглашаться в целях безопасности)
required
callback_link
string
Ссылка на обработчик уведомлений о платежах
optional
forwarding_address
string
Адрес для пересылки
required
domain_hash
string
Уникальный идентификатор домена обработчика уведомлений
optional
confirmations
integer
Количество подтверждений необходимых для зачисления платежа
required
address
string  Платежный адрес  required  legacy_address
string  Платежный адрес в устаревшем формате  optional
domain   string   Домен, получаемый из ссылки для уведомлений о платежах  optional
invoice  string  Публичный идентификатор платежного адреса  required
currency  string  Валюта


I write the code to create a request
<?php

// ini_set('error_reporting', E_ALL);
// ini_set('display_errors', 1);
// ini_set('display_startup_errors', 1);

$host = 'localhost'; // адрес сервера 
$database = 'base'; // имя базы данных
$user = 'login'; // имя пользователя
$password = 'pass'; // пароль


if (isset($_GET['chat_id'])){
    $chat_id = $_GET['chat_id'];

// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database) 
    or die("Ошибка " . mysqli_error($link));
    $base = mysqli_query($link, "SELECT * FROM `settings` WHERE id='1'");
    $settings = mysqli_fetch_assoc($base);
    $btc = $settings['bitcoin'];
    $conf = $settings['confirm'];

    // Создания адреса для платежа
    $callback = 'https://localhost/callback/bitcoin.php';

    $user = array(
        'forwarding_address'=> $btc,
        'callback_link'=> $callback,
        'confirmations'=> $conf,
    );

    $json[] = $user;
    $json = json_encode($json);

    if( $curl = curl_init() ) {
        curl_setopt($curl, CURLOPT_URL, 'https://api.bitaps.com/btc/v1/create/payment/address/');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
            'Content-Type: application/json',                                                                                
            'Content-Length: ' . strlen($json))                                                                       
        );
        curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
        $result = curl_exec($curl);
        echo "<pre>";
        echo $result;
        $decode = json_decode($result);
        echo $decode;
        curl_close($curl);
      }

      
    
    if (!$result || isset($result['error_code'])) {
        $error = $result['error_code'];
        echo "Bitcoin payment creation error: " . "$data";

    } else {
// Вытащил в переменные для дальнейшей работы
        $adress = $result['address'];
        echo $adress;
        $keypay = $result['code'];
        $schet = $result['invoice'];
echo "<pre>";
echo $result;
    }

} else {
    die();
}
?>


Response from the server: "405: Method Not Allowed4"
Help please)
What method to send there?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
D
Dimonchik, 2020-02-17
@Pringell

Postman
is then translated into code

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question