• Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
Theme Center
  • Theme Center
  • default

  • reset theme
Collapse

tonpie.io

Подпишись на канал фаундера и разработчика экосистемы tonpie

[Решено] Как работают платежи TON? В чем разница между ними и платежными каналами?

Запланировано Прикреплена Закрыта Перенесена TON Overflow на русском
a-ton-payments
2 Сообщения 1 Posters 93 Просмотры
    • Сначала старые
    • Сначала новые
    • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано Answers
    #1

    Я хочу использовать блокчейн TON (ton.org ) для получения платежей. Что это означает? Какие компоненты мне нужно реализовать?


    Оригинал вопроса

    1 ответ Последний ответ
    0
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано
    #2

    Решено

    При обсуждении платежей в TON вам следует знать о двух методах:

    1. Платежные каналы

    Этот метод полезен, когда у вас много мелких платежей между несколькими сторонами и стоимость газа (комиссия за транзакцию) является проблемой. Этот метод устранит блокчейн-сборы и сделает их постоянными и независимыми от количества платежей.

    Метод работает с использованием стандартного смарт-контракта под названием PaymentChannel, экземпляр которого обе стороны развертывают. Затем обе стороны вносят в контракт некоторое количество монет TON. Затем они осуществляют транзакции вне сети и могут осуществлять тысячи платежей между собой без уплаты каких-либо комиссий. Только когда канал будет закрыт, контракт рассчитает, как внесенные деньги должны быть разделены между сторонами, и фактически отправит им деньги по цепочке.

    Дополнительная информация: https://github.com/ton-blockchain/payment-channels

    И вот клиентская библиотека в JS, которая облегчает процесс.

    2. Простой платеж

    Этот метод намного проще и его следует использовать, когда вы ожидаете единовременного платежа и газ не является проблемой. В этом случае вы просто создаете новый кошелек для получателя (например, магазин электронной коммерции) и внедряете небольшой серверный модуль, обычно на JavaScript или Python, который периодически запрашивает кошелек, чтобы узнать, были ли на него произведены какие-либо платежи.

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

    Дополнительная информация: https://ton.org/docs/#/payment-processing/deposits-single-wallet

    И если вы поклонник JavaScript, вот хороший пост в блоге, показывающий, как это можно легко сделать: https://society.ton.org/how-ton-wallets-work-and-how-to-доступ-к-ним-из-javascript

    const tonMnemonic = require("tonweb-mnemonic");
    const TonWeb = require("tonweb");
    
    async function main() {
      // mnemonic to key pair
      const mnemonic = "rail sound peasant ... portion gossip arrow"; // 24 words
      const mnemonicArray = mnemonic.split(" ");
      const keyPair = await tonMnemonic.mnemonicToKeyPair(mnemonicArray);
      console.log("public key:", Buffer.from(keyPair.publicKey).toString('hex'));
      
      // list available wallet versions
      const tonweb = new TonWeb(new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC"));
      console.log("wallet versions:", Object.keys(tonweb.wallet.all).toString());
      
      // instance of wallet V4 r2 (from the list printed above)
      const WalletClass = tonweb.wallet.all["v4R2"];
      const wallet = new WalletClass(tonweb.provider, { publicKey: keyPair.publicKey });
      const address = await wallet.getAddress();
      console.log("address:", address.toString(true, true, true));
      const seqno = await wallet.methods.seqno().call();
      console.log("seqno:", seqno);
      await sleep(1500); // avoid throttling by toncenter.com
      const balance = await tonweb.getBalance(address);
      console.log("balance:", TonWeb.utils.fromNano(balance));
    }
    
    main();
    
    function sleep(ms) {
      return new Promise(resolve => setTimeout(resolve, ms));
    }
    
    1 ответ Последний ответ
    0

  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.