Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!

Pазработчик с опытом Python - Django - HTML5 - CSS - PayPal API

прием ставок


Нужен разработчик с хорошим опытом Python / Django / CSS / Bootstrap / HTML5. 

Разработчик должен быть в полной мере знаком с перечисленными технологиями как фронт-энда так и бэк-энда, или работать с партнером. Необходимо также уметь оперировать с репозиторием Bitbucket, пользоватся SSH терминалом на сервере Ubuntu, иметь опыт интеграции платежной системы PayPal. После выполнения первоночальной задачи подразумевается дальнейшее сотрудничество по развитию проекта.

По первоначальной задаче необходимо будет выполнить следующие первостепенные задачи, которые включают работу как с бэк-эндом, там и фронт-эндом:

1. Добавить ограничения функциональных возможностей в завиосимости от типа акаунта. 

Для этого нужно будет добавить в базу и профиль пользователя параметр "тип аккаунта". 1-ый (ограниченый тип) должен быть реализован отключением некоторого функционала на рабочем столе, 2-ой (стандартный) тип аккаунта будет иметь помый функционал и возможность добавить "расширение" функционала за отдельную плату. 3-ий (расширеный) тип будет включать полный фукционал без ограничений в том виде как он выполнен сейчас (то есть, огрнаичений по "расширенному" типу делать не нужно).

2. Интегрировать платежную систему PayPal по схеме PayPal Standard с использование IPN и PDT.

Дополнительно предусмотреть отображение выбранного типа аккаунта в админке и профиле пользователя, а также предусмотреть возможность для пользователей улучшить план в любое время, то есть с доплатой перейти на более расширеный план обслуживания.

3. Добавить функционал предложения пользователям скидок по расценкам посредством введение кода рекламной компании на странице "Расценки".

Эта задача включает добавление раздела в админке для созадания рекламных компаний, линк на странице расценок для посылки запроса о получении кода на е-мейл, и поле для ввода кода на странице расценок, обновление странцы расценок при введении кода в соответствии с ценами рекламной компанией (дискаунтами), сохранение.


Подробное описание задачи будет предоставлено в процессе обсуждения проекта.



  1. ставка скрыта фрилансером
  2. 1 день800 ₴
    Aleksey Pysanets
     371  проверен   1  0

    Здравствуйте, Николай!

    Я представляю команду python-разработчиков.
    Мы работаем на бэке с Python/Django, на фронте используем различные технологии, в зависимости от сложности реализации - Javascript, Vue.js, Angular 6.
    Связка HTML5/CSS/Bootstrap не представляет какой-либо сложности для нас. Работаем с BitBucket, GitLab, GitHub и т.д.
    Интегрировали в проектах такие платежные системы как Authorize, PayPal, Stripe.

    Работаем с почасовым рейтом, всегда заинтересованы в долговременном сотрудничестве.

    Украина Украина | 11 октября в 10:40 |
  3. 11 дней111 ₴
    Orazaly Karl
     330   7  0

    Готов взяться за работу. Можете написать в лс или на почту [email protected] Я работаю с командой и имеем опыт с Django и PayPal API.

    Казахстан Алматы (Алма-Ата) | 11 октября в 17:41 |
  4. 1 день400 ₴
    Алекс Похиленко
     289   1  0

    Здравствуйте.
    Есть опыт интеграции PayPal в проекты на Django. С Django работаю 3 года, 2 из них в аутсорс компаниях. Пишу и фронт, и бек. Подробнее портфолио можно посмотреть на xander.im/ru
    Можем работать как по фиксированной цене так и почасовой оплате.
    Давайте обсудим детали.

    Украина Одесса | 12 октября в 11:52 |
  • Николай Борисенко — заказчик проекта
    14 октября в 02:37 |

    Пожалуйста посмотрите подробный список задач. На первой старнице содержание, по которому вы можете сорентироваться быстро, а далее задачи расписаны подробно с пояснениями. Если чгто то не понятно я могу ответить на все вопросы. Хотелось бы чтобы в озвучили сроки и цену на выполнение этих задач и далее сможем поговорить по скайпу - таким образом наверно будет проще ответить на все вопросы... или сначала поговорим, потом вы пришлете ваш бид по времени и цене.

  • Николай Борисенко — заказчик проекта
    14 октября в 02:40 |

    Краткий список задач

    Типы аккаунтов:

    1. Сохранить параметр "тип аккаунта"

    2. Запрограммировать ограничения функционала на рабочем столе в соответствии с типом аккаунта.

    3. Отобразить тип аккаунта в профиле пользователя

    Изменения по странице расценок:

    4. Нужно сделать отдельную секцию “Promotions” в админке для создания и редактирования рекламных акций.

    5. Создать параметр “Promotion Code” для каждой рекламной акции

    Способы показа рекламной акции:

    6. Добавить страницу Pricing в нижнем меню сайта. На страница Pricing добавить линк "TRY FREE FOR 14-DAYS".

    7. На странице Subscription / Pricing добавить поле для ввода промо-код после расценок. 

    8. На странице Pricing и Subscription добавить линк "Get a current promo code to receive a discount".

    9. Выполнить поп-ап на странице Pricing и Subscription

    10. В админке для рекламных акций (задача 4) предусмотреть параметр "E-MAIL CAMPAIGN" 

    11. Дополнить процесс поиска пользователей в админке по параметру промо-кода за определенный период. 

    Подключение платежной системы PayPal:

    12. Создать страницу IPN listener и обеспечить работу PDT

    13. Сохранить полученные параметры транзакции в базе с активацией аккаунта пользователя.

    14. Дополнительно сохранять параметры PDT и IPN текстовым файлом в профиле пользователя в админке

    15. Добавить раздел статус подписки в SETTINGS пользователя.

    Удаление документов после окончания подписки:

    16. Запрограммировать автоматическое удаление документов не оплаченных аккаунтов после 60 дней

    17. Автоматически послать е-мейл напоминание о просроченной подписки дважды.

     

    Подробное описание задач:

    В настоящее время на сайте имеется страница Subscription на которой пользователь может сравнить все предлогаемые планы и расценки на них. В низу этой страницы находится рекламный блок, где указана дискаунтная цена. Страница была создана как рабочий эскиз планов, раценок и рекламной акции. Подразумевалось, что на этапе привязки сайта к платежной системе, метод демонстрации скидочных цен будет доведен до планируемого. Кроме того подразумевается добавления ограничений по планам обслуживания (за исключением "полно-функционального" (Enhanced), который внедрен в настоящее время.

    1. Добавить ограничения функциональных возможностей в зависимости от типа акаунта по планам Базовый и Стандартный. 

    2. Добавить функционал предложения пользователям скидок по расценкам посредством введение кода рекламной компании на странице "Расценки".

    3. Интегрировать платежную систему PayPal по схеме PayPal Standard с использование IPN и PDT.

    Типы аккаунтов 

    Описание типов аккаунтов находится на странице Subscription / Pricing. Всего имеется три типа: Enhanced, то есть полный план который внедрен в настоящее время, Стандартный (Standard), который включает весь функционал полного плана за исключением приложения подписания документов E-Sign, который по Стандартному плану должен предлагаться за дополнительную плату, и Базовый план (Basic) , который подразумевает отключение нескольких функциональных кнопок на рабочем столе. Различные типы планов и расценки программируются заказчиком на кнопках платежной системы, а после оплаты платежная система возвращает нам параметр обозначающий какой тип аккаунта нужно активировать (B, S, E).


    1. Сохранить параметр "тип аккаунта"

    Сохранить в базу на аккаунт данного пользователя параметр "тип аккаунта"

    возвращаемого платежной системой после оплаты, и тем самым активировать тот или иной тип акаунт (с ограничениями или без).

    2. Запрограммировать ограничения функционала на рабочем столе в соответствии с типом аккаунта.

    Отключение кнопок и дополнение системного сообщения предлагающего

    3. Отобразить тип аккаунта в профиле пользователя

    Отобразить тип аккаунта в профиле пользователя в админке и на странице SETTINGS на рабочем столе пользователя.

    Типы аккаунтов в зависимости от плана подписки с ограничениями указанными в описании пакета: Basic (B), Standard (S), Enhanced (E). Параметр "тип аккаунта" (B, S, или E) после проведения оплаты по данному плану должен сохранятся в базе данных аккаунта пользователя для реализации необходимых ограничениях в функционале.

    Basic (ограниченный тип) должен быть реализован отключением некоторого функционала на рабочем столе. В базовом варианте нужно будет дeактивировать кнопки как указано в описании плана. Кнопки с рабочего стола не убирать, но сделать их "серыми" и при нажатии добавить поп-ап предлагающий произвести дополнительную оплату за расширение функционала.

    Standard (стандартный) тип аккаунта будет иметь полный функционал и возможность добавить приложение для подписания документов. Стандартный аккаунт предусматривает ежемесячную оплату подписки. В настоящее время сайт выполнен как Enhanced версия, то есть зарегистрировавшись все пользователи пользуются приложением бесплатно. В стандартном аккаунте все кнопки рабочего стола являются рабочими за исключением кнопки "приложения" E-SIGNING. При нажатии на эту кнопку предложить подписаться на приложение за отдельную плату.

    Standard Plus - стандартный аккаунт с добавленным функционалом E-SIGNING. Во время подписки на Standard (стандартный) тип аккаунта предложить дополнительную оплату подписки с приложением (практически это будет 4-й тип подписки с общей ценой включая приложение подписания с помесячной оплатой).

    Enhanced (расширенный) тип - будет включать полный функционал без ограничений в том виде как он выполнен сейчас (то есть, ограничений по "расширенному" типу делать не нужно, кроме того, что обозначить название этого плана).

    Изменения по странице расценок

    4. Нужно сделать отдельную секцию “Promotions” в админке для создания и редактирования рекламных акций.

    Секция должна быть выполнена также как в настоящее время сделана секция Content/Pages с возможностью редактировать текст, иллюстрации, цену и другие параметры отображающиеся на экране. Как дефолт для работы можно использовать рекламный блок помещенный сейчас внизу страницы Subscription.

    Дополнительно нужно добавить переключатель (чек марк) для статуса рекламной акции “on-off” status change  дополнительно к статусу "Published" который есть сейчас на секции редактирования страниц. Этот переключатель должен будет активировать и деактивировать саму рекламную акцию на сайте как описано ниже. То есть видимо отключать код управляющий показом рекламы или отправкой кода по емейлу. Нужно обсудить этот вопрос перед началом работы.

    5. Создать параметр “Promotion Code” для каждой рекламной акции

    Код создается администратором в панели или создается автоматически из случайных чисел в определенном формате (например 000-0000) при нажатии н акнопку "Add New Promo". Этот код будет вводится пользователем при оплате подписки для получения скидки на оплату. Promotion Code должен обновлять страницу Subscription / Pricing соответствующими скидочными ценами. После введения кода пользователем нужно показывать опции оплаты с дискаунтом. Нужно или менять всю страницу на новую, где будут показаны другие расценки и, соответственно запрограммированные скидками, кнопки "Subscribe" (сейчас SELECT), или заменять нижнюю часть страницы на которой показаны только цены и кнопки. Нужно предусмотреть возможность заменить автоматически созданный промо-код на любой другой вручную администратором, который создает рекламную кампанию (например вместо цифр написать буквы: DEC2019, CHRISTMAS19.

    После регистрации введенный пользователем промо-код должен быть ассоциирован с аккаунтом пользователя в базе. Нужно также добавить промо-код акции (если он использован при подписки) на странице USERS в админке как часть профиля пользователя. Показывать только в админке - в профиле на рабочем столе не нужно.

    Способы показа рекламной акции

    Информацию о рекламной акции на сайте показывать или посылать следующими способами:

    - Поп-ап когда пользователь зашел на страницу Pricing и уходит с неё на любой другой линк не начав подписку;

    - Линки "Get a current promo code to receive a discount" на страницах Pricing и Subscription. При нажатии показывать форму для заполнения - имя и е-мейл адрес куда код будет отправлен. После нажатия на кнопку SEND посылать промо-код пользователю на указанный е-мейл. Имя и емейл сохранять в базе как аккаунт с незаконченной регистрацией для целей маркетинга по е-мейлу. Текст е-мейла должен иметь возможность редактировать в админ панеле (это не тот текст который у нас сейчас написан внизу страницы).

    - Если пользователь начал SIGN-UP, создал аккаунт (то есть дал нам имя и емейл), перешел на страницу Subscribe, но не закончил подписку оплатой, при переходе на другую страницу по любому линку сделать поп-ап с описанием акции, и послать информацию рекламную кампанию по емейлу;

    - Тем кто запросил промо-код, или начал создавать аккаунт, но не закончил, или был подписчиком, но прекратил подписку иногда делать рассылку по е-мейлу, который мы имеем в базе по данному аккаунту.

    Примечание: При обычном порядке регистрации и оплаты пользователь попадает на страницу SUBSCRIPTION после подтверждения регистрационного е-мейла и телефона. Страница SUBSCRIPTION имеет описание различных планов подписки с кнопками "PayPal Subscription” расположенными под каждым планом (кнопки на страницу Subscription я поставлю сам по готовности вместо кнопок SELECT). Каждый план имеет отдельную кнопку перехода на платежную систему в которую запрограммирован именно этот план с ценой. После окончания оплаты на сайте PayPal пользователь возвращается на страницу DASHBOARD, возможно через введение данных логина на нашей странице, если это необходимо. В момент успешной оплаты и возврата обратно на сайт PayPal мы получаем необходимые параметры оплаченной подписки на нашу страницу IPN Listener.

    6. Добавить страницу Pricing в нижнем меню сайта. На страница Pricing добавить линк "TRY FREE FOR 14-DAYS".

    Нужно скопировать HTML page в админке и дополнить линк в меню.

    Страница Pricing является копией страницы SUBSCRIPTION, но на ней вместо кнопок оплаты должны находиться кнопки "TRY FREE FOR 14-DAYS" по которым пользователь пройдет обычный процесс регистрации. Страница Pricing должна просто показывает расценки и предлагать зарегистрироваться.

    Нужно поставить одну кнопку после таблицы расценок "TRY FREE FOR 14-DAYS" - эта кнопка будет просто делать то же что и SING-UP, то есть включать форму регистрации.

    7. На странице Subscription / Pricing добавить поле для ввода промо-код после расценок. 

    При вводе кода обновлять расценки или всю страницу с другими кнопками . Кнопки "PayPal Subscribe" будут заменяться в соответствии с расценками по рекламной акции. Я буду программировать кнопки на сайте платежной системы для каждого отдельного плана или рекламной акции отдельно. Hа каждой кнопке будет запрограммировано какой это план и определенная цена на него (со скидкой или без). Наверно можно или делать на каждую рекламную акцию отдельную страницу Subscription и менять всю страницу при введении кода, или только отдельную нижнюю часть таблицы где я в админке смогу поменять кнопки и цены соответственно рекламной акции - тогда менять только нижнюю часть таблицы.

    8. На странице Pricing и Subscription добавить линк "Get a current promo code to receive a discount".

    9. Выполнить поп-ап на странице Pricing и Subscription

    При уходе со страницы Pricing и Subscription (то есть при нажатии на какой то линк) показать активную рекламную акцию в поп-апе (то что у нас сейчас внизу страницы). Кнопка SELECT должна дублировать кнопку SIGN-UP то есть начинать процесс регистрации.

    10. В админке для рекламных акций (задача 4) предусмотреть параметр "E-MAIL CAMPAIGN" 

    Использовать эти рекламные акции отредактированные или созданные в админке для рассылки их по е-мейлам неактивным пользователям, которые мы можем иметь в базе: тем кто незакончил начатую подписку, запросил код, или был клиентом но потом прекратил оплату. Кнопка "TRY FREE FOR 14-DAYS" в данном случае должна сразу открывать SUBSCRIPTION PAGE, но уже с расценками соответственно данной рекламной компании по её коду. Надо предусмотреть здесь как то, чтo у нас будут некоторые клиенты которые имеют имя и емейл в базе и созданный аккаунт номер, но не имеют пароля для входа так как они только запросили промо-код когда то не создавая аккаунт. Наверно нужно для этого случая предусмотреть промежуточную форму создания пароля.

    Примечание: В настоящее время у нас есть система рассылки рекламных е-мейлов определенному типу пользователей выбранных по определенному параметру, которая производится автоматически в определенных условиях. Нужно продублировать имеющийся механизм для рассылки данных рекламных е-мейлов пользователям, которые получили промо-код, но не зарегистрировались.

    11. Дополнить процесс поиска пользователей в админке по параметру промо-кода за определенный период. 

    Сейчас имеется такой поиск по параметру "незарегистрированный пользователь" - там все потенциальные пользователи в базе которые не имеют активированного аккаунта могут быть выведены отдельным списком для просмотра. Такую же выборку нужно сделать по параметру "промо-код".

    На админпанели в разделе USERS сделать возможным делать выборку пользователей зарегистрированных в определенные даты - period “from 09/20/2019 – to 09/25/2019” или один определенный день – date 09/22/2019. В этом репорте новые пользователи должны быть отсортированы по промо-коду и названию рекламной акции.

    Подключение платежной системы PayPal

    Эта секция описано примерно по тем пунктам, о работе которых я имею представление. Подразумевается, что фрилансер знает PayPal API и сам определит, что и как нужно выполнить для того чтобы работала платежная система и возврат данных по системе PayPal IPN и PayPal PDT.

    Мы собираемся использовать простейшую систему - PayPal Standard с одной кнопкой Subscribe и возврат данных по системе IPN и PDT. Код для кнопок перехода на платежную систему я сделаю сам и могу в админке поставить его на кнопки на странице подписки. После проведения оплаты PayPal посылает подтверждение об оплаченной подписки и вам нужно будет используя посланные PayPal-ом параметры (IPN / PDT) подключить принятие этих параметров на нашем сайте (IPN listener page) и отображение / сохранение результатов в админке и базе - статус "subscription activated" будет до тех пор пока не истечет срок подписки. С каждой успешной оплатой платежная система присылает дату следующего платежа. Также отдельный код может приходить если оплата не прошла и указать причину - отменена пользователем, не прошел платеж и ещё пару вариантов если надо (хотя думаю нам все равно пока). Там будет два варианта с оплатой помесячно и оплатой сразу за год, но в обоих случаях в виде "подписки" то есть на PayPal это оформляется как подписка (то есть при годовой следующий платеж заранее вносится в график через год). Дополнительного программирования годовая подписка не требует так как мы просто ставим в базу дату следующего платежа - это или в следующем месяце, или в следующем году.

    Задачи по подключению платежной системы видимо такие:

    12. Создать страницу IPN listener и обеспечить работу PDT

    Нужно добавить страницу или файл на сервере, которая будет принимать информацию в постоянном режиме ожидания и дать мне список всех variables которые нужно запросить от платежной системы. Здесь находится список поддерживаемых variables:

    https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/#

    Насколько я понимаю IPN / PDT необходимы для того, чтобы мы получали данные об оплате и могли активировать аккаунт пользователя немедленно после оплаты и сохранения полученных параметров оплаты в базе. PDT обеспечивает немедленное получение данных с переводом пользователя на его активированный аккаунт, но как я понял имеет ограничение в том, что если каким то образом "связи" не произошло, то необходимые параметры не высылаются второй раз Системаа IPN делает тоже самое, но гарантирует получение данных даже если наш сервер не будет работать в момент оплаты - там гарантируется получение данных. Надеюсь что вы знаете об этом больше и сможете скорректировать задачу таким образом, чтобы обеспечить необходимый функционал.

    13. Сохранить полученные параметры транзакции в базе с активацией аккаунта пользователя.

    Написать на нашем сайте код который при получении параметров по каждой трансакции из PayPal будет эту информацию записывать в базу данных на аккаунт определенного пользователя согласно присланного Subscription ID. Как минимум будет приходить следующие параметры:

    - Subscription ID (уникальный для каждого пользователя)

    - тип оплаченного аккаунта

    - User ID пользователя на PayPal (задается используемой кнопкой)

    - имя пользователя

    - е-мейл пользователя

    - адрес пользователя

    - дату оплаты

    - дату следующей оплаты

    - токен оплаты индивидуальный для каждой трансакции

    и вообще все другие параметры которые вы считаете нужными и запросите будут приходить автоматически.

    При первой регистрации нужно ассоциировать Subscription ID с данным пользователем в базе и отметить дату деактивации если следующая оплата не будет получена.

    Активировать тип аккаунта соответствующей присланному параметру оплаченного типа (каждая кнопка оплаты соответствует одному типу аккаунта и программируется индивидуально - то есть этот код практически это название продукта который купил пользователь. Всего три вида: Basic, Standard, Enhanced (создание типов описано выше).

    При ежемесячной подписке полученное подтверждение в базе обновлять активацию по номеру Subscription ID. Обновление активации происходит просто заменой даты когда акаунт должен быть деактивирован на новую - дата следующего платежа в параметрах трансакции - присылается PayPal-ом.

    В случае не уплаченной вовремя подписки деактивировать аккаунт и посылать один е-мейл пользователю что оплата просрочена.

    14. Дополнительно сохранять параметры PDT и IPN текстовым файлом в профиле пользователя в админке

    Для отслеживания подписки пользователей в админке предусмотреть дополнительное окно по каждому пользователю, где показывать (накапливать) данные полученные по системе PDT и IPN от платежной системы простым текстовым файлом.

    15. Добавить раздел статус подписки в SETTINGS пользователя.

    В разделе SETTINGS у пользователя показывать: Статус (Active, Suspended - если не оплачен), Account type (Basic, Standard, Enhanced и короткое описание по расширенному функционалу, “date” когда был сделан первый платеж, и “date” когда был сделан последний платеж.

    Удаление документов после окончания подписки

    16. Запрограммировать автоматическое удаление документов не оплаченных аккаунтов после 60 дней

    Если пользователь прекращает подписку, то все документы в его TRANSACTIONS перманентно удаляются через 60 дней после последнего оплаченного дня. Аккаунт при этом из памяти не удаляется. Пользователь может зайти на свой рабочий стол, использовать все бесплатные функции и при желании и продлить аккаунт оплатив подписку.

    17. Автоматически послать е-мейл напоминание о просроченной подписки дважды.

    Если пользователь отменил подписку, то нужно послать ему один е-мейл напоминания, в котором описать ситуацию о удалении всех файлов через 60 дней.

    Your Subscription have not been paid as of the due date ___________ (вставить дату дня оплаты). At any time you can login to your account, manage your contacts and clients, review incoming service requests, and renew your subscription. Your transaction documents will be kept in the system for a period of 60 days. Thank you for your business!

    За день до истечения 60-ти дней прислать е-мейл с напоминанием еще раз.