[DEV: PHP] Создание и обработка счета на оплату в криптовалюте
Если вы не хотите обрабатывать платеж на стороне сайта, проверять факт доплаты/переплаты, то вам достаточно просто пользоваться готовой функцией создания счета на оплату (инвойсы) на стороне процессинга.
Ниже перечислены параметры, необходимых для создания такого счета.
Счет может быть бессрочным или ограниченным по времени действия. Например, бессрочный может использоваться для пополнения игровых балансов, а ограниченный по времени — для оплаты товаров или услуг, чтобы уменьшить волатильность цены. Такая характеристика регулируется с помощью параметра lifetime, который указывается в секундах.
Сумма счета указывается в поле amount, при этом за единицу измерения берутся наименьшие дробные единицы криптовалюты, т.е., к примеру, для Биткоина — сатоши. Сurrency - сокращенное обозначение криптовалюты, например, btc, tbtc (testnet) , ltc, doge, tron и др.
В user-data вы можете передать название вашего магазина, ссылку на него, стоимость товара или услуги. Важно знать — мы не конвертируем amount в массиве user-data, вы можете считать конвертацию из своих источников или указывать в поле currency любую, даже вымышленную игровую валюту.
Пример инвойса https://apirone. com/invoice? id=KDDBhhSTYEbKOW83
Обработка колбэка
При оплате счета на указанный адрес передается колбэк, в запросе это параметр callback_url. При этом статусы колбэка по счету отличаются от обычной обработки платежей. Статусы бывают следующие:
- created — счет создан
- paid — оплачен
- partpaid — частично оплачен, т.е. подтвердился платеж меньше и счет завершился по таймеру
- overpaid — переплата
- completed — завершен (перевод подтвержден в сети блокчейн)
- expired — счет просрочен без оплаты, т.е. в течение срока, выставленного по таймеру, оплата не произведена.
Также вы можете запрашивать статус счета самостоятельно https://apirone. com/api/v2/invoices/KDDBhhSTYEbKOW83
Этих параметров достаточно для полноценного выставления счета на оплату в криптовалюте и отслеживания его состояния.