Share
Explore

Продажа видеоуроков через бота

Как заработать 10 000₽ за три часа. Сейчас многим нужна автоматизация продаж видеоконтента, в этих условиях - простой бот может пополнить ваш счет разработчика ПО))
Собираем бота на платформе JAICP


Создаём аккаунт

Читаем документацию

Если сложно просим поддержку тут
Загрузка и раздача видео в ботах
Способ 1, через загрузку на сервер ТГ
Использовать код в том токене, в котором планируешь раздачу видео, иначе не работает

theme: /

state: Start
q!: $regex</start>
a: Начнём.
state: fileEvent
event!: fileEvent
event!: telegramAnyMessage
event!: telegramApiRequestFailed
a: Привет {{$request.rawRequest.message.video.file_id}}


Загружает файлы маленького и большого размера

Минусы подхода
Долгая загрузка файла у пользователя
Отсутствие статистики

Плюсы
Халявное хранение
Блокировка возможности сохранить и переслать (Protect_content)

Способ 2, через Vimeo (платный тариф можно заменить на YouTube)
Минусы подхода
Платный
Иностранный

Плюсы
Быстрая загрузка у пользователя
Небольшая статистика
Защита от скачивания

Способ 3, через Vimeo + Тильда (можно любой конструктор сайтов)
Минусы подхода
Платный
Трудозатратный
Плюсы
Повышает индексацию материнского сайта
Очень гибкая статистика
Защита от скачивания

Размещаю видео на Vimeo ( фишка в том, что можно после видео возвращать по кнопке в нужный стейт (бонусный модуль https://t.me/{какой то бот}?start=bonus2244 (надеюсь идея ясна)


Снимок экрана 2022-04-16 в 09.25.17.png

Встраиваем видео на сайт - беру блок Т123 и ставлю код для встраивания из Vimeo
Снимок экрана 2022-04-16 в 09.14.23.png
👇Ссылка на то, что получилось

Подключаем яндекс метрику, гугл аналитику и тд

даём пользователю из бота ссылку с utm метками в utm метке указываем user_Id



Снимок экрана 2022-04-16 в 09.08.42.png

Оплата в ТГ
Тестовый токен Юкасса
В ТГ находим @BotFather
Вводим команду /mybots и выбираем нужного бота
Снимок экрана 2022-04-16 в 18.11.40.png

Жмякаем на кнопку Payments

Снимок экрана 2022-04-16 в 18.12.32.png

Жмякаем на Юкассу

Снимок экрана 2022-04-16 в 18.13.23.png

Жмякаем на Тест


Снимок экрана 2022-04-16 в 18.21.54.png
Далее по инструкции получаем токен

Снимок экрана 2022-04-16 в 18.24.01.png


Код оплаты и выдачи контента с utm метками
Пишем код в main.sc

require: slotfilling/slotFilling.sc
module = sys.zb-common
require: functions.js
theme: /

state: Start
q!: $regex</start>
# запоминаем user id для utm метки
script:
$client.user_id = $request.rawRequest.message.from.id;
a: Напиши 1 для оплаты
state: Hello
q!: 1
# отправляем метод sendInvoice
script:
var id = $request.rawRequest.message.chat.id;
$temp.response = postData(id);

state: Precheckout
event: telegramPrecheckoutEvent
# отправляем метод answerPreCheckoutQuery
script:
var id = $request.query;
$temp.response = postData2(id);


state: PaymentFailed
event: telegramPaymentFailedEvent
a: Возникли неполадки. Пожалуйста, напишите нам, куда-то.

state: PaymentSuccessful
event: telegramPaymentSuccessEvent
# при успешной оплате формируем ссылку на контент с utm меткой и делаем ссылку короткой, так мы можем посмотреть сколько юзер был на страничке с видео
script:
$temp.url = "https://intensive-online.ru/perenos01?utm_source=bot&utm_medium=" + $client.user_id
var utm_url = $temp.url
$temp.response = GetUrl(utm_url)
a: Оплата прошла успешно. \nВам открыт доосуп \nЛекция 1 - {{$temp.response}}

state: CatchAll
event: noMatch
a: Платеж не прошел. Проверьте, пожалуйста, правильность введенных данных и повторите попытку.

state: Bye
intent!: /пока
a: Пока пока

state: NoMatch
event!: noMatch
a: Я не понял. Вы сказали: {{$request.query}}

Пишем код в functions.js

function postData(id) {
var url = "https://api.telegram.org/bot2050539171:AAGt-GpY8_bG0xwI1qe5QUH8Y7d_aF11yY4/sendInvoice";
var options = {
dataType: "json",
body: {
"chat_id":id,
"title": "Тариф профи",
"description": "Тестовый платеж в тестовом боте для проверки",
"payload":{},
"provider_token":"381764678:TEST:36029",
"currency": "RUB",
"start_parameter":"mybot",
"photo_url":"https://447906.selcdn.ru/Tc/photo_2022-04-16%2017.55.06.jpeg",
"prices":[{"label":"руб","amount": 10000}],
"need_phone_number": true
}
};
var response = $http.post(url, options);
return response.isOk ? response.data : false;
}

function postData2(id) {
var url = "https://api.telegram.org/bot2050539171:AAGt-GpY8_bG0xwI1qe5QUH8Y7d_aF11yY4/answerPreCheckoutQuery";
var options = {
dataType: "json",
body: {
"pre_checkout_query_id":id,
"ok": true
}
};
var response = $http.post(url, options);
return response.isOk ? response.data : false;
}

function GetUrl(utm_url) {
var url = "https://clck.ru/--?url=" + utm_url;
var options = {
dataType: "json"
};
var response = $http.get(url, options);
return response.isOk ? response.data : false;
}

Идем тестировать в бота

Для оплаты используйте данные тестовой карты: 1111 1111 1111 1026, 12/22, CVC 000

Когда я ввожу номер карты



IMAGE 2022-04-16 18_36_42.jpg
26 попадает в дату, надо после ввода 1111 1111 1111 10 - вернуть курсор на поле ввода номера карты после 10 ввести 26 потом 12 22 000


IMAGE 2022-04-16 18_39_20.jpg
Теперь жмякаем оплатить

photo_2022-04-16 18.40.15.jpeg


Наслаждаемся результатом


photo_2022-04-16 18.34.45.jpeg

👇Смякаем если хочется потестить

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.