diff options
Diffstat (limited to 'content/ru/blog/monero_payment_gateway.md')
-rw-r--r-- | content/ru/blog/monero_payment_gateway.md | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/content/ru/blog/monero_payment_gateway.md b/content/ru/blog/monero_payment_gateway.md new file mode 100644 index 0000000..a4b4abf --- /dev/null +++ b/content/ru/blog/monero_payment_gateway.md @@ -0,0 +1,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). + +Делать одноразовые платежи без внутреннего баланса очень не удобно, поэтому на сайте лучше всего сделать пользовательский баланс в базе данных, который можно будет пополнить в любое время. |