Relictum Pro
БАЗА ЗНАНИЙFAQРАЗРАБОТКА / ИНТЕГРАЦИЯ
Русский
Русский
  • БАЗА ЗНАНИЙ
    • Relictum Pro TESTNET
      • Условия и порядок доступа к РЕЛИКТУМ ПРО ТЕСТНЕТ
      • Инструкция по скачиванию и установке приложения на базе Android
    • Суть проекта
      • Что такое Relictum Pro?
      • Механизмы и принципы работы
      • N-мерная модель смарт-контрактов
      • Технические характеристики
      • Преимущества
      • Сеть и ноды
      • Меморандум о запуске Relictum.Main.Net
    • Введение
      • Что такое Блокчейн?
    • Исторический обзор отрасли
    • Проблема
    • Решение. Proof of Tsar
    • Обзор и сравнение конкурентов
    • Отличительные особенности и преимущества
    • Сферы применения. Социальная значимость
    • Токеномика
    • Дорожная карта
    • Краткое описание
  • FAQ
    • Инструкции
      • Как установить ноду Relictum Pro на MacOS?
      • Как создать аккаунт в ноде Relictum Pro на Mac OS?
      • Как скопировать кошелек Relictum Pro на Mac OS?
      • Как создать аккаунт в ноде Relictum Pro на Android?
      • Как создать аккаунт в ноде Relictum Pro на Windows?
      • Импорт токенов GTN из личного кабинета в ноду
      • Обновление ноды для перехода в Main.Net
      • Как запустить белую ноду
      • Подключение платежного шлюза
    • Ответы на вопросы
  • РАЗРАБОТКА / ИНТЕГРАЦИЯ
    • API Relictum Finance
      • Callback
      • Проверка пользователя
      • Статус
      • Покупка
      • Список доступных мерчантов
    • Relictum Node (JSON RPC API)
      • Общая информация / конфигурация
      • Версия webapi
      • Регистрация нового пользователя
      • Вход
      • Получение информации о пользователе
      • Получение баланса
      • Экспорт приватного ключа
      • Импорт приватного ключа
      • Перевод
      • Получение статуса перевода
      • Получение списка транзакций по кошельку
    • Relictum Node API
Powered by GitBook
On this page
  • 1. Белая нода
  • 2. Ключи шифрования
  • 3. Relictum PHP SDK
  • 4. Регистрация платежного контракта в белой ноде:
  1. FAQ
  2. Инструкции

Подключение платежного шлюза

PreviousКак запустить белую нодуNextОтветы на вопросы

Last updated 2 years ago

Для организации приема платежей через Relictum Pay необходимы следующие атрибуты:

  1. Белая нода.

  2. Ключи шифрования.

  3. Relictum PHP SDK.

  4. Платежный контракт, зарегистрированный в белой ноде.

1. Белая нода

Белая нода - это нода с публичным IP-адресом, с помощью которого можно организовать любой собственный домашний сервер для публикации в сети Интернет.

По ссылке на Medium вы можете найти .

2. Ключи шифрования

Следующий шаг - нужно сгенерировать ключи доступа для авторизации на ноде при выполнении запросов на выставление счетов и переводов активов.

В консоли поочередно введите следующие команды:

openssl genrsa - out private .key 2048
openssl rsa - in private . key -pubout -out key .pub

Пошаговая инструкция ниже:

Шаг 1. Ввод первой команды

Шаг 2. Результат

Шаг 3. Ввод второй команды

Шаг 4. Результат

В результате вышеуказанных действий будут сгенерированы ключи. В папке это будет выглядеть таким образом:

Для выставления счетов через RelictumPay необходимо переименовать файл key.pub таким образом, чтобы его название соответствовало URI вашего контракта. Название должно быть без "system://" и включать символ "-" в качестве разделителя. Перенесите его в директорию (корень) ноды.

Пример: ваш контракт system://payments/mycontract - в этом случае файл (ключ) должен называться payments-mycontract.pub .

Организация выплат с ноды:

  • Для отправки токенов $GTN файл key.pub необходимо переименовать в transfer.pub .

  • Для отправки любых других токенов файл key.pub необходимо переименовать в transfer2.pub .

Пример, как выглядит папка с нодой с файлами:

При авторизации запроса направлять вместе с данными также файл .key , который соответствует своей паре ключа .pub .

Еще один вариант, как создать счёт на оплату для клиента через смарт-контракт на языке php с использованием нашего SDK:

$r = $request->doPaymentCreate( 'contract' , [ 'data' => [
        'payment' => $id,
        'addressfrom' => $relictum,
        'addressto' => $myaddress,
        'token' => 'usdr' ,
        'amount' => $sum
    ]]);

Результат на скриншоте ниже:

3. Relictum PHP SDK

Если вы используете PHP в своем проекте, то SDK поможет вам в организации этого процесса.

Установка. Введите команду в консоли:

composer require relictumblockchain/rphpsdk

Если вы используете версии PHP8 и выше, то необходимо добавить флажок отключения проверки версий, так как в противном случае произойдет ошибка при установке:

--ignore-platform-req=php

Вы также можете делать запросы и на других языках или другими способами. Описанная выше последовательность работает для PHP.

4. Регистрация платежного контракта в белой ноде:

  1. Зайдите в раздел Продукты -> Платежный контракт -> Добавить контракт.

  2. Заполните следующие поля:

  • Системное имя контракта: любое название на латинице в нижнем регистре, желательно одним словом.

  • Поставщик - выберите любое название, желательно короткое - его будет видно в разделе RelictumPay как объект, который выставил счет на оплату. Если название поставщика будет длинным, то оно будет переноситься построчно, поэтому желательно использовать короткое).

Результат на скриншоте:

  1. При сохранении и создании платежного контракта с вас спишется 50 USDR.

Выглядит это таким образом:

Пример отправки запроса через консоль:

<?php

require ( _DIR__ . '/vendor/autoload.php' );

$privateKeyPath = _DIR__ . '/transfer.key';
$authorizationHelper = new
\Relictum\RPHPSDK\Helpers\AuthorizationHelper($privateKeyPath);

// Create configurator and set node uri
$configurator = new Relictum\RPHPSDK\RequestConfigurator([
    'config' => [ 'base_uri' => 'http://127.0.0.1/api/' ],
    'authorization' => $authorizationHelper
]);

// Create a new request
$request = new Relictum\RPHPSDK\Request($configurator);

try {
    // Create a new payment invoice
    
    $id = 10 ; // Payment id (any number, unique for this
    contract)
    $contract = 'mycontract' ; // Contract alias
    $relictum = 100 ; // The account of the user to whom the
    invoice is being issued
    $myaddress = 1 ; // The account to which the tokens will be
    transferred after payment
    
    $response = $request->doPaymentCreate($contract, [ 'data' => [
        'payment' => $id,
        'accountfrom' => $relictum, // or addressfrom for use
        relictum address instead of id
        'accountto' => $myaddress, // or addressto for use
        relictum address instead of id
        'token' => 'usdr' ,
        'amount' => 200
    ]]);
}
catch (Relictum\RPHPSDK\Exceptions\NodeRequestException $e) {
    // Catch exception and output error data
    var_dump($e);
}

// Output node response
var_dump($response);

По ссылке с подключенным платежным контрактом и подробным примером скриптов на PHP.

инструкцию по установке белой ноды
пример готовой ноды