blob: a4b4abffdb060fcc64754c0f93a8fedbfc409ae8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
+++
title = "Своя платёжка Monero"
description = "Создание собственной анонимной платёжки"
date = 2025-03-19
tags = [
"tech",
"guide",
"monero"
]
+++
Создать собственную платёжную систему Monero очень легко, вот основные шаги:
1. Запускайте `monero-wallet-rpc --tx-notify "script.sh %s"`, где **%s** — это **txid**, который автоматически будет передаваться вашему скрипту в качестве первого аргумента. Ваш скрипт будет отрабатывать с каждой полученной транзакцией.
2. Когда покупатель, например в вашем интернет-магазине, хочет оплатить товар, сайт ему должен выдать адрес на который будут переводиться деньги. Для этого ваше веб-приложение должно выполнить RPC запрос [make_integrated_address](https://docs.getmonero.org/rpc-library/wallet-rpc/#make_integrated_address) к демону которого вы запустили для получения такого адреса **integrated_address** и **payment_id**. Адрес отдаётся покупателю, а идентификатор платежа сохраняется для будущей верификации.
3. После того как деньги будут переведены, ваш скрипт из первого пункта получит **txid** который нужно передать вашему веб-приложению. Оно с помощью RPC метода [get_transfer_by_txid](https://docs.getmonero.org/rpc-library/wallet-rpc/#get_transfer_by_txid) получит **payment_id** и **amount** — идентификатор и сумму платежа.
4. Приложение сверяет идентификатор платежа и полученную сумму, которая измеряется в атомных единицах 1 XMR = 1e12 (atomic-units). Имейте это ввиду при сравнении суммы, об этом написано в начале [документации](https://docs.getmonero.org/rpc-library/wallet-rpc).
Делать одноразовые платежи без внутреннего баланса очень не удобно, поэтому на сайте лучше всего сделать пользовательский баланс в базе данных, который можно будет пополнить в любое время.
|