Сегодня хочу рассказать о том, как работать с платежным API не так давно появившегося на просторах Telegram кошелька TeleWallet Статья будет интересна в первую очередь владельцам и разработчикам ботов Telegram, поскольку эта платежная система позволяет принимать платежи в Телеграме, не покидая Telegram
Хочу сразу отметить, что я не выступаю «за» или «против» какой-либо платежной системы, а хочу лишь описать, как работать с API.
Преимущества и недостатки
Основные преимущества (на мой взгляд) приема платежей через TeleWallet:
- Низкая комиссия (0.8% суммарно за автопополнение и автовыплату)
- Отсутствие минимальной суммы (точнее, минимальная сумма составляет 0.01)
- Доступность нескольких валют (фиатных и крипто)
- Возможность подключения неограниченного количества проектов на один профиль
- Слабая распространенность ресурса (хотя это скорее всего исправимо)
- Отсутствие англоязычного интерфейса (кошелек рассчитан на русскоязычную аудиторию и соответственно распространенные в СНГ платежные системы)
- Недостаточно автоматизированные переводы средств в сам кошелек (на данный момент доступно автоматическое пополнение кошелька только через Яндекс.Деньги и Visa/MasterCard. Для других платежных систем доступно полуавтоматическое пополнение, из-за чего присутствует время ожидания)
Подключение автоплатежей
Итак приступим. Для начала набросаем небольшого тестового бота на PHP c 3-мя кнопками:
Как пополнить телеграм бота | оплата через telegram
- Баланс — чтоб просматривать баланс и видеть, что он изменился
- Пополнить
- Вывести
И конечно для работы с TeleWallet API будем использовать их официальный SDK. Там же у них есть подробная инструкция, как работать с платежами и есть примеры кода. Так что ниже я просто покажу как совместить приведенные там примеры кода с реальным ботом.
Создаем платежный счёт
- Перейдите в бота t.me/TeleWalletAbot
- Запустите его
- Нажмите кнопку Прием платежей в главном меню
- Под появившимся сообщением нажмите кнопку Открыть платежный счёт
- Выберите валюту счёта
- Появится сообщение «Счёт успешно создан»
Шаги, начиная с 3-го, показаны на картинке. Только что добавленный счет вы увидите последним в списке ваших платежных счетов (7 на картинке). Нажмите на команду-ссылку напротив него, чтоб перейти к его настройкам (8 на картинке). Сообщение, которое мы получаем в ответ, выглядит вот так:
Настройка счёта ap110741100
Баланс: 0 RUB
Название магазина: Не задано
API ключ: eHW2IQZQYjlJjgQ
URL для уведомлений: Не задан
URL перехода после успешного платежа: Не задан
URL перехода после неудачи(отказа): Не задан
Плательщик комиссии при выплате: Магазин
Платежи через Telegram
Удалить счёт (/delapsch_100Re6)
С помощью кнопок под этим сообщением отредактируйте необходимые параметры
Создаем файл настроек
Создадим файл config.php и вставим туда следующий код
Невозможно установить соединение с сервером БД.
» ); mysqli_query($link,»SET NAMES ‘utf8′»); //апи-ключ и счёт TeleWalletAbot $tlwkey = «eHW2IQZQYjlJjgQ»; $tlwacc = «ap110741100»; ?>
Здесь мы подключим базу данных mysql (она нам понадобиться, чтоб хранить балансы пользователей и информацию о платежах) и заведем 2 переменные $tlwkey и $tlwacc для хранения API ключа и номера счёта из сообщения, полученного от бота.
В нашей базе данных создадим 2 таблицы:
- users(id,name,balance,outnumber) — будем хранить данные о пользователях
- donate(id,user_id,sum,finished) — информация о пополнениях
getWebhookUpdates(); //получаем обновления $chat_id = $result[«message»][«chat»][«id»]; $text = $result[«message»][«text»]; $callback_query = $result[‘callback_query’]; $data = $callback_query[‘data’]; $chat_id_in = $callback_query[‘message’][‘chat’][‘id’]; $uname = $result[«message»][«from»][«username»]; if($chat_id>0 $text) < //блок обработки основных команд $sm=[‘chat_id’ =>$chat_id, ‘text’ => $text]; $ans_arr=getAnsw($text,$chat_id,$uname); for($i=0;$i $chat_id, ‘text’ => $reply, ‘caption’=>$reply]; if(array_key_exists(‘inline_keyboard’,$ans)) < $keyboard=$ans[‘inline_keyboard’]; $replyMarkup = json_encode($keyboard); $sm[‘reply_markup’] =$replyMarkup; >else if(array_key_exists(‘keyboard’,$ans))< $keyboard=$ans[‘keyboard’]; $reply_markup = $telegram->replyKeyboardMarkup([ ‘keyboard’ => $keyboard, ‘resize_keyboard’ => true, ‘one_time_keyboard’ => false ]); $sm[‘reply_markup’]=$reply_markup; > $telegram->sendMessage($sm); > > if($data) < //блок обработки инлайн-команд $ans_arr=getAnsw($data,$chat_id_in); for($i=0;$i$chat_id_in, ‘text’ => $reply, ‘caption’=>$reply]; if(array_key_exists(‘inline_keyboard’,$ans)) < $keyboard=$ans[‘inline_keyboard’]; $replyMarkup = json_encode($keyboard); $sm[‘reply_markup’] =$replyMarkup; >else if(array_key_exists(‘keyboard’,$ans))< $keyboard=$ans[‘keyboard’]; $reply_markup = $telegram->replyKeyboardMarkup([ ‘keyboard’ => $keyboard, ‘resize_keyboard’ => true, ‘one_time_keyboard’ => false ]); $sm[‘reply_markup’]=$reply_markup; > $telegram->sendMessage($sm); > > ?>
Здесь мы определяем, какое сообщение получено от пользователя. Отдаем его, а также идентификатор пользователя в функцию getAnsw(). Она возвращает массив сообщений, которые мы пересылаем пользователю.
Теперь создадим файл commands.php и вставим в него реализацию функции getAnsw()
if($command==»Баланс») < $res[‘text’]=»Ваш баланс: руб»; return [$res]; > if($command==»Пополнить») < $res[‘text’]=»Выберите сумму, на которую хотите пополнить счёт»; $res[‘inline_keyboard’][‘inline_keyboard’]=[[[‘text’=>’1 руб’,’callback_data’=>’popoln_1′],[‘text’=>’5 руб’,’callback_data’=>’popoln_5′],[‘text’=>’10 руб’,’callback_data’=>’popoln_10′]]]; return [$res]; > if($command==»Выплата») < $res[‘text’]=»Сколько вы хотите вывести?»; $res[‘inline_keyboard’][‘inline_keyboard’]=[[[‘text’=>’1 руб’,’callback_data’=>’vivod_1′],[‘text’=>’5 руб’,’callback_data’=>’vivod_5′],[‘text’=>’10 руб’,’callback_data’=>’vivod_10′]]]; addCmd(«vivod_»,$chat_id); return [$res]; > $tlw = new TeleWallet($tlwkey,$tlwacc); if(strpos($command,’popoln_’)!==false) < $arr = explode(«_»,$command); mysqli_query($link,»INSERT INTO `donate`( `user_id`, `sum`) values(‘$chat_id’,»)»); $payId = mysqli_insert_id($link); $resp = $tlw->getСheque($arr[1],$payId); $res[‘text’]=»Вы выбрали пополнение на руб. Пополнение доступно через TeleWallet. Для продолжения нажмите кнопку под этим сообщением»; $res[‘inline_keyboard’][‘inline_keyboard’]=[[[«text»=>»Пополнить»,»url»=>$resp[‘url’]]]]; return [$res]; > if(strpos($command,’setnumber_’)!==false) < //пользователь задает номер счета $arr = explode(«_»,$command); mysqli_query($link,»UPDATE `users` SET `outnumber`=» where `id`=’$chat_id'»); $res[‘text’]=»Номер счёта обновлен.»; return [$res]; > if(strpos($command,’vivod_’)!==false) < $arr = explode(«_»,$command); if($ud[‘balance’]<$arr[1]) $res[‘text’]=»недостаточно средств на балансе»; else < if(empty($ud[‘outnumber’])) $res[‘text’]=»У вас не задан номер счета TeleWallet для вывода. Отправьте боту setnumber_(номер ваше счета) (без скобок), чтоб задать номер счёта»; else < $resp = $tlw->sendOutpay($arr[1],$ud[‘outnumber’]); if($resp[‘error’]==0) < //выплата удалась $res[‘text’]=»На указанный Вами номер счета выведено руб»; mysqli_query($link,»UPDATE `users` SET `balance`=`balance`- where `id`=’$chat_id'»); > else if($resp[‘error’]==4 || $resp[‘error’]==5) < //выплата удалась $res[‘text’]=»Вы указали неправильный номер счёта»; >else $res[‘text’]=»Выплата не удалась. Код ошибки: . Обратитесь к администратору проекта»; > > return [$res]; > > ?>
Когда пользователь нажимает Пополнить и выбирает сумму с помощью инлайн-кнопок под сообщением, создается платежная ссылка в строке:
$resp = $tlw->getСheque($arr[1],$payId);
Когда пользователь заказывает вывод, у него должен быть задан номер счета для вывода. Если это не так, мы сообщаем ему об этом. Если счет задан, мы пытаемся выполнить вывод, используя функцию sendOutpay, и если возвращенный ею код ошибки «0» — значит вывод прошел успешно, и мы списываем средства с баланса пользователя в нашем боте.
Проверка факта оплаты
Для проверки факта оплаты и зачисления средств на баланс пользователя создадим еще один скрипт: notice.php. Вот его код:
«); $pay_info = mysqli_fetch_assoc($ri); if($tlw->testPayIn($_POST) $pay_info[‘sum’]==$_POST[‘sum’]) < echo «YES»; mysqli_query($link,»UPDATE `users` SET `balance`=`balance`+where `id`=»); mysqli_query($link,»UPDATE `users` SET `balance`=`balance`+ where `id`=»); try < $telegram->sendMessage([«text»=>»Ваш баланс пополнен на руб»,»chat_id»=>$pay_info[‘user_id’]]); > catch(Exception $e) <> > else echo «NO»; ?>
На этот файл будет прилетать вебхук от кошелька, когда пользователь успешно завершит оплату.
Давайте вернемся теперь к нашему платежному счёту в кошельке. Нажмем кнопку URL для уведомлений и отправим боту ссылку на наш файл notice.php
Также укажите название магазина (точнее вашего проекта). В качестве URL успешно и URL fail просто укажите ссылку на ваш проект (бот)
Ну вот пожалуй и всё. Мы создали с вами тестового бота, который позволяет понять, как работать с платежным API TeleWallet.
Посмотреть, как работает этот тестовый пример (там правда еще добавлен ручной ввод суммы и счёта при выводе) можно по ссылке: http://t.me/TlwSdkBot.
Для лучшего понимания кода в статье, а также, чтоб узнать описание кодов ошибок и параметры запросов, смотрите документацию.
- telegram bot
- TeleWallet API
- платёжные системы
- php
- подключение платежей
Источник: habr.com
Как пополнить баланс и вывести средства?
Пополнить баланс можно совершенно любыми средствами, пополнение происходит в течении 5 минут.
Ниже представлены способы пополнения:
При пополнении картой до 5000₽, необходимо сделать перевод, будьте внимательны при вводе суммы, она обязательно должна быть такой, как указано при пополнении!
Вывод средств.
Так же возможен совершенно разными способами:
В среднем, выплаты происходят в течении 30 минут, но бывают задержки при сильной загрузке.
Если у вас возникли проблемы с пополнением или выводом средств, обратитесь в поддержку на сайте☺️
Источник: telegra.ph
Как пополнить баланс в телеграмме
Платежная система в Телеграме появилась еще в 2017 году. С помощью ботов можно получать оплату за товары и услуги прямо в каналах. С новым обновлением возможности расширились. Давайте рассмотрим, как подключить платежи в канале Телеграм.
Как работает платежная система в Телеграм?
Платежная система в Телеграм позволяет оплачивать все что угодно одним нажатием кнопки. Не нужно возиться с вводом данных карты или номером кошелька (только в первый раз пользования сервисом). Весь процесс происходит при помощи ботов.
Оплачивать покупку можно с любой банковской карты, а также используя Apple Pay и Android Pay.
Платежи обрабатывают либо Яндекс.Деньги, либо QIWI.
Телеграм во всей этой движухе всего лишь посредник. Это значит, что он не хранит ваши данные, а лишь передает ее напрямую платежной системе. И не берет комиссию! Из минусов: Телеграм не принимает жалобы по поводу возврата денег на счет или в других спорных моментах. Все ситуации придется решать с владельцем бота, с платёжной системой или с банком.
Но при этом Телеграм все равно будет держать все под контролем, и блокировать мошенников.
Что изменилось с обновлением платёжной системы в Телеграм 2.0?
С обновлением 2.0 можно оплачивать и принимать оплату с кредитных карт в любом чате (сюда входят и группы, и каналы). Для этого доступны 8 платежных систем.
- Yandex.Money
- Sberbank
- Stripe
- Tranzzo
- Payme
- CLICK
- LiqPay
- ECOMMPAY
Также у покупателей появилась возможность оставлять чаевые. Это помогает не только выразить свое мнение, но и поддержать магазин, блогера и так далее.
Как подключить платежи в Телеграм?
После регистрации помощника, вам нужно скопировать его токен, и выбрать один из подходящих конструкторов для создания ботов: BotHelp , TextBack и другие. Сконструировать в нем алгоритм действий бота, подключить его к любому чату (наградив правами админа) и ожидать приема платежей.
Заключение
Процесс создания бота, который умеет принимать платежи в Телеграме, может происходить самостоятельно, или с привлечением опытных разработчиков. В любом случае такое дополнение в чатах Телеграм очень упрощает взаимодействие между продавцами и покупателями.
Botobot
Telegram Payments – бесплатная и открытая платформа, которая позволяет принимать платежи от пользователей Telegram прямо в мессенджере. Она подключается к магазину в 2 этапа: в Telegram и в панели управления Botobot.
Как подключить Telegram Payments в мессенджере
2. Выберите команду /mybots и бота, к которому хотите подключить платформу.
3. Кликните на команду Payments.
Если вы подключаете платежный метод первый раз, сообщение будет выглядеть так
5. Выберите платежный метод. При нажатии на него Telegram перенаправит вас в его бот – вам останется включить прием платежей по его командам.
Вот, как это выглядит на примере тестового бота ЮKassa
Так будет выглядеть сообщение, если вы подключили тестовый платежный метод ЮKassa
Каждый вариант из списка предлагает подключить тестовый и боевой метод. Первый нужен только для того, чтобы протестировать процесс без реальной оплаты с помощью тестовой карты, например, 4242 4242 4242 4242. Пользоваться им есть смысл, если вы подключаете Telegram Payments впервые – чтобы разобраться в процессе. В других случаях можно сразу же подключать боевые платежные методы, не сомневаясь в их безопасности и работоспособности – в Botobot уже все проверили.
Как подключить Telegram Payments на платформе Botobot
Чтобы завершить процесс подключения Telegram Payments, вам нужно добавить реальный платежный токен в Telegram в панель управления Botobot.
1. Откройте панель управления и зайдите в Платежи > Настройки.
2. Нажмите Подключить и выберите из выпадающего списка Telegram.
4. Готово! Telegram Payments появилась в списке подключенных платежных систем.
Все подключенные платежные системы отображаются в разделе Платежи
Пополнение баланса через бот для Telegram и Viber
Ранее мы уже рассказывали, что для удобства наших клиентов мы создали специальный бот в Telegram и Viber. С его помощью можно получать уведомления о низком балансе, активациях/продлении или скором удалении услуг, а также о новых тикетах и многом другом.
Теперь через бот можно проверять баланс привязанных аккаунтов и пополнять счёт через СБП.
Как подключить?
Пополнение баланса
- Открываете мессенджер и бот в Telegram или Viber;
- Кнопка «Баланс» → «Пополнить баланс»;
- Из списка выбираете нужный аккаунт;
- Выбираете или прописываете необходимую сумму;
- Переходите по ссылке и совершаете оплату в приложении своего банка.
Если вы используете десктопную версию мессенджера, то при открытии ссылки дополнительно потребуется отсканировать QR-код со смартфона на котором установлено банковское приложение. После сканирование откроется приложение, в котором необходимо завершить оплату.
На вашем устройстве несколько банковских приложений
Если при переходе по ссылке открывается не то банковское приложение, запретите ему открывать ссылки для оплаты по СБП.
К примеру, на Android в настройках приложения следует перейти в раздел: «О приложении» → «Открывать по умолчанию» → снять галочку с «Открывать поддерживаемые ссылки».
Название параметров зависят от вашего устройства и могут отличаться от приведённого примера.
На iOS эта ситуация исправляется долгим нажатием на ссылку и открытием её в стороннем браузере (не Safari) — в браузере можно будет выбрать, через какой банк провести оплату и открыть нужное приложение. Или установите приложение от СБП, которое будет уточнять какой банк использовать при нажатии на ссылки.
Платежи для ботов
Представьте, как было бы здорово, если бы можно было оплачивать что угодно нажатием всего одной кнопки, без возни с переписыванием номера карты или кошелька.
Именно такую кнопку мы обавили в Telegram в этом обновлении: теперь вы можете как покупать любой товар или услугу в один клик, так и продавать что угодно при помощи ботов. Вот, как это выглядит:
При первой покупке вам потребуется указать данные своей карты (да, один раз повозиться с этим всё же придётся) и адрес для доставки. Если ваш аккаунт защищён с помощью двухэтапной авторизации, то вы сможете сохранить всю эту информацию для будущих покупок. Ну и, само собой, вы можете оплатить товар с помощью Apple Pay или Android Pay.
Под капотом
Кто же будет обрабатывать платежи? Ответ прост: любой банк или сервис, который захочет. В частности, в России обработкой платежей будут заниматься Яндекс.Деньги и QIWI, а в Узбекистане — Payme.
За проезд передаём!
Во всей этой системе Telegram выступает в роли посредника между пользователем, разработчиком бота и платёжной системой, которую этот бот использует. Все платёжные данные, которые вы вводите, отправляются напрямую в платёжную систему. Дальше, если система увидела ваш платёж и ;даёт добро, ваши контактные данные (адрес для доставки) отправляется боту, чтобы он ;мог завершить оформление заказа.
У такой системы есть как преимущества, так и недостатки.
Из плюсов: ваши данные будут находиться в безопасности, поскольку Telegram не хранит и не обрабатывает их.
Из минусов: Telegram не сможет обрабатывать жалобы и возвраты средств. Все эти проблемы вам придётся решать самостоятельно: с владельцем бота, платёжной системой или вашим банком.
Однако, Telegram будет контролировать ситуацию в целом и будет блокировать ботов, которые занимаются мошенничеством, вымогательством или прочими нехорошими вещами.
Сначала я не понял, а потом тоже не понял
Что делать, если я…
Последние записи
Менеджер загрузок, обновленное меню вложений, прямые трансляции с помощью сторонних приложений и многое другое
Моментальная прокрутка, календарный вид в «Медиа», заявки на вступление, глобальные темы для чатов на iOS и многое другое
Видеотрансляции, гибкая пересылка, переход между каналами и многое другое
Видеозвонки на 100 зрителей, видеосообщения 2.0, управление скоростью проигрывания видео и многое другое
Анимированные фоны
Групповые видеозвонки и трансляция экрана
Платежи 2.0, отложенные голосовые чаты и новые веб-версии Telegram
Голосовые чаты 2.0: каналы, миллионы слушателей, запись эфиров, инструменты для администраторов
Новые супергруппы и прокси
Видеосообщения и Telescope
Сайт про Telegram на русском (неофициальный).
Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.
Похожие публикации:
- Как изменить цвет текста в телеграмме
- Как использовать notion с telegram
- Как купить рекламу в телеграмме
- Как назвать telegram канал
Источник: gshimki.ru