Как подключить пейпал к сайту

Интегрируем оплату через Paypal в web-приложение

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

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

Создание аккаунта

Для реализации данной схемы нам потребуется business аккаунт. PayPal Payments Standard должно быть достаточно.
Переходим по ссылке и создаем аккаунт.

Создание sandbox аккаунта

Для тестирования нашего приложения будем использовать Paypal Sandbox. Нам потребуется 2 sandbox аккаунта. Аккаунт покупателя(buyer) и аккаунт продавца(facilitator). Прежде всего нужно задать пароль для обоих sandbox аккаунтов. Для этого переходим на сайт paypal в раздел для разработчиков. Логинимся, затем переходим в dashboard. В меню слева находим раздел Sandbox, вкладку accounts. Здесь мы можем увидеть 2 sandbox аккаунта(Buyer и Facilitator).

Как подключить пейпал к сайту

Нажимаем на profile, в появившемся модальном окне кликаем change password, затем сохраняем пароль.
Устанавливаем пароли для обоих аккаунтов. После этого можно перейти на сайт Paypal Sandbox и попробовать залогиниться.

Настройка Paypal

Теперь нам нужно настроить Paypal Facilitator аккаунт, на который мы будем получать средства. Переходим на сайт Sandbox, логинимся с помощью facilitator аккаунта и переходим в настройки профиля. Открываем меню profile, выбираем пункт my selling tools.

Как подключить пейпал к сайту

В разделе Selling online выбираем пункт Website preferences, нажимаем Update. Здесь можно включить перенаправление пользователя. После завершения платежа пользователь по умолчанию будет перенаправлен на указанный url. Но также есть возможность перенаправить пользователя на другой url (см. ниже).

Как подключить пейпал к сайту

Также необходимо активировать Paypal Instant Payment Notifications. Для этого в разделе Getting paid and managing my risk выбираем пункт Instant payment notifications и также нажимаем Update.

Как подключить пейпал к сайту

В настройках IPN указываем URL, на котором будет работать наш IPN Listener. Этот URL обязательно должен быть доступен глобально т.к. на него будут приходить уведомления о проведении операций.

Как подключить пейпал к сайту

Включаем Message delivery и сохраняемся. На этом настройка аккаунта завершена. Можно приступить к настройке непосредственно платежей.

Разовые Платежи

Для начала реализуем разовые платежи. Это, вероятно, наиболее распространенный вариант использования. Пользователь просто хочет купить какой-нибудь товар или разовую услугу. Ну и хочется, чтобы нам ничего больше не нужно было менять в настройках paypal. Список товаров и цены хранились бы в базе нашего приложения, мы могли бы их менять как нам хочется. Для разовых платежей будем использовать Payment Buttons (PayPal Payments Standard).

Структура данных

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

Но можно и усложнить задачу. Например, менять цену в зависимости от количества заказанных товаров, или менять стоимость в зависимости от дня недели и времени.

Или включить в заказ много различных товаров.

products — здесь будем хранить товары:

users — здесь будем хранить пользователей:

idfirstnamelastnameemailpassword
315AlanSmithalansmith@example.com$1$2z4.hu5.$E3A3H6csEPDBoH8VYK3AB0
316JoeDoejoedoe@example.com$1$Kd4.Lf0.$pGc1h7vwmy9N6EJxac953/

products_users — кому мы и что отгрузили:

iduser_idproduct_iditems_countcreated_date
1315132015-09-03 08:23:05

Также будем хранить в нашей базе историю транзакций в таблице transactions:

txn_idtxn_typemc_grossmc_currencyquantitypayment_datepayment_statusbusinessreceiver_emailpayer_idpayer_emailrelation_idrelation_typecreated_date

Форма оплаты

Для начала создадим форму заказа. Генерируем форму в нашем приложении, где указываем основные параметры заказа(название товара, цена, количество).

Здесь мы можем указать любую цену, название, количество и т.д. Поле custom полезно тем, что в нем можно передавать любые данные. Здесь мы будем передавать id товара, id пользователя и, возможно, другую информацию. Эти данные понадобятся нам для дальнейшей обработки платежа.
Если нужно передать несколько параметров, можно использовать json или сериализацию. Либо можно использовать дополнительные поля вида on0, on1, os0 and os1. Лично я это не проверял, информацию нашел здесь.

Ниже приведен пример формы:

На самом деле, параметров может быть гораздо больше, подробную информацию можно найти в документации. После отправки формы пользователь попадает на страницу оплаты paypal, где он снова видит детали заказа.

Как подключить пейпал к сайту

Здесь пользователь может оплатить заказ с помощью paypal аккаунта либо с помощью банковской карты. Далее пользователь переадресовывается обратно на наш сайт(параметр return), где мы можем ему сообщить, что его платеж находится в обработке.

Instant Payment Notification(IPN)

После того, как пользователь совершил платеж, Paypal обрабатывает его и отправляет подтверждение в наше приложение. Для этого используется сервис Instant Payment Notification(IPN).

В начале статьи мы настраивали наш Paypal аккаунт и устанавливали IPN Notification URL. Сейчас самое время создать IPN listener, который будет обрабатывать IPN запросы. Paypal предоставляет пример реализации IPN listener. Подробное объяснение работы сервиса можно найти здесь. В двух словах, как это работает: Paypal обрабатывает платеж пользователя, видит что все хорошо и платеж успешно завершен. После этого IPN отправляет на наш Notification URL такого вида Post запрос:

Наш IPN Listener должен этот запрос обработать. В частности:

После этого, если Paypal подтвердил подлинность запроса, можем приступить к его дальнейшей обработке.

Обработка платежа

В первую очередь нам потребуется получить значение поля custom, где мы передавали id заказа, id пользователя или еще что-то(зависит от логики нашего приложения). Соответственно мы сможем получить из нашей базы данных информацию о пользователе/заказе. Также нужно получить id транзакции.

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

Проводим валидацию платежа. Если все нормально, тогда можно сохранить информацию о платеже в базу и выполнить дальнейшие действия (присвоить пользователю статус «premium», заказу статус «оплачен» и т.д.). Если платеж не прошел валидацию, необходимо установить причину и связаться с пользователем. Дальнейшие операции, в частности, отмена платежа, проводятся вручную.

Валидация платежа

Валидация платежа сильно зависит от бизнес-логики вашего приложения. Могут быть добавлены специфические условия. Например пользователь оплатил 15 единиц товара, а в наличии есть всего 10. Нельзя пропустить такой заказ.

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

Ну и, конечно, добавляйте свои проверки.

В итоге у вас должны работать разовые платежи. На этапе создания формы платежа мы можем указывать любые параметры. Например, можно гибко управлять ценой товара(2 по цене 3, каждому 101 покупателю скидка 30% и т.д.). Нам для этого не нужно ничего менять в Paypal.

Подписки

Теперь рассмотрим реализацию подписок. Принцип тот же, что и с разовыми платежами. Только платежи повторяющиеся. Поэтому их реализация несколько сложнее.

Доступно несколько тарифных планов, например Free — бесплатно, Pro — 5$ за пользователя в месяц, Premium — 10$ за пользователя в месяц.
Пользователь может отменить подписку с возвратом денег за неиспользованный период. Также пользователь может менять условия подписки, например, перейти на другой тарифный план, либо изменить количество пользователей.

Понятно, что для Free подписки paypal вообще не нужен. Возможно, этот тарифный план должен активироваться автоматически, сразу при регистрации пользователя в нашем приложении. Данная схема хороша тем, что показывает типичное использование для какой-нибудь SaaS системы. И с ходу не очень понятно, как реализовать это с использованием Paypal.

Для работы с подписками понадобятся дополнительные таблицы:

subscription_plans — для хранения тарифных планов:

idservice_providerservice_namepriceprice_typeperiod
1Servicepro5.00usermonth
2Serviceenterprise10.00usermonth
3Servicefree0.00usermonth

subscriptions — для хранения подписок:

iduser_idplan_idsubscription_idcreated_dateupdated_datepayment_dateitems_countstatus

Форма оформления подписки

Форма оформления подписки очень похожа на форму создания разового платежа.

Стоимость подписки задается параметром a3. Период подписки задается с помощью параметров p3 и t3(в данном примере платежи происходят каждый месяц).

Подробное описание этих и других параметров можно посмотреть в документации.

С IPN принципиально все то же самое, что и с разовыми платежами. Правда, мы будем получать больше запросов т.к. нужно обрабатывать больше событий: создание подписки, платеж по подписке, отмена подписки и т.д. Как и раньше, нужно проверять достоверность для каждого запроса и только после этого обрабатывать.

Валидация подписки

Здесь все немного сложнее, чем с разовыми платежами. Нам нужно валидировать не только платеж, но и создание подписки, отмену подписки, возможно, изменение подписки. Возможно, что-то еще, в зависимости от логики работы приложения. Например, мы хотим, чтобы на тарифном плане Pro можно было создать не более 100 пользователей. Или еще что-нибудь в этом роде. Опять же все это можно попытаться учесть на этапе создания формы.

Что точно необходимо проверять в данном случае:

Обработка платежа

Отмена подписки

Реализуем отмену подписки, на случай если пользователю надоест пользоваться нашим приложением. В таком случае воспользуемся Paypal Classic Api для отмены подписки.

Для работы с API нам понадобятся Username, Password и Signature. Их можно найти в настройках профиля.

Как подключить пейпал к сайту

Отмена подписки осуществляется с помощью метода ManageRecurringPaymentsProfileStatus

Есть некоторая проблема с этим методом, т.к. мы не можем отменить подписку, если она уже отменена. Но и проверить статус подписки мы тоже не можем. Потому приходится отменять подписку вселпую (в нормальной ситуации нам не придется отменять подписку дважды). Данная проблема описана в этом посте.

Возврат средств(полный/частичный)

Возможно, кроме отмены подписки пользователь хотел бы вернуть деньги за неиспользованный период(прим: оформил подписку на месяц, через неделю отменил — нужно вернуть 75% стоимости).

Для этого также можно использовать Paypal Classic Api, метод RefundTransaction.

Для расчета суммы возврата можно использовать следующий код. Код предназначен для расчета возврата ежемесячной подписки.

Изменение подписки

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

Эта проблема обсуждается здесь

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

Возможно, не очень красиво, но работает без нареканий. В итоге остановился на этом варианте. хотя, в принципе, по ссылке выше есть информация, как сделать изменение подписки более правильно.

Заключение

В результате получаем возможность работать с разовыми платежами и подписками Paypal. Логика работы с разовыми платежами подписками находится в нашем веб-приложении.

Со временем мы можем добавлять новые тарифные планы и менять старые (нужно делать это осторожно, проверять валидацию и т.д.).

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

Источник

Настройка PayPal — как подключить ПайПал к сайту

Как подключить пейпал к сайту

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

Подключение сайта к PayPal

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

Как подключить пейпал к сайту

Для создания профиля нужно ввести информацию о себе и о предприятии. Служба поддержки может запросить сканы дополнительных документов, подтверждающих наличие бизнеса. К верифицированному аккаунту можно привязать банковские карты, счета.

Как подключить пейпал к сайту

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

Как подключить пейпал к сайту

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

Настройка API

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

Как подключить пейпал к сайту

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

Настройка PayPal API:

Важно. Сохраните данные по API. Они потребуются при настройке кнопки.

Настройка к использованию

Чтобы подключить кнопку, нужно заполнить форму в пункте «Оплата» на собственном сайте. Для заполнения потребуется данные API. Внимательно введите информацию по API и нажмите кнопку сохранения.

Как подключить PayPal на сайте:

Как подключить пейпал к сайту

Важно. Самостоятельно проверьте работоспособность всех кнопок. Если возникли неполадки, проверьте введенные данные API и скопируйте код с сайта PayPal повторно.

Особенности использования PayPal

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

Комиссия для продавцов зависит от месячного оборота средств:

Как подключить пейпал к сайту

Система расширяет возможности магазина и позволяет покупателям оплачивать товары без перехода на сайт PayPal.

Как установить PayPal на собственный сайт?

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

Источник

Устанавливаем на сайт кнопку PayPal

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

Этот вопрос будем разбирать постепенно, чтобы вам было все ясно:

Немного о сервисе

Свою работу в странах СНГ компания начала где-то в 2011 году. С тех пор было много разных усовершенствований и доработок. Пользователи с каждым годом чувствовали и видели эти инновации и стали больше доверять PayPal.

Уже не новость, что эта компания начала устанавливать свои сервера на территории России в начале 2015 года. «Зачем?» – спросите вы. Да потому, что в ней зарегистрировано больше трех миллионов русскоязычных пользователей. Поэтому это выгодно как самой компании, так и нам с вами.

Все чаще пользователи привязывают к своим сайтам и/или интернет-магазинам счет в платежной системе PayPal. Это дает возможность легко и быстро выставлять счета другим пользователям, оплачивать покупки, совершенные вами или у вас.

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

Краткое руководство по регистрации

Для тех, кто еще не знаком с платежной системой, расскажу и покажу, как тут зарегистрироваться.

Итак, переходите на сайт и выбирайте тип аккаунта и свою страну проживания:

Как подключить пейпал к сайту

Я выбрал «Личный». Мне этих настроек хватает. Если вы настроены серьезно на бизнес в интернете, тогда лучше выбирайте тип аккаунта «Корпоративный».

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

Как подключить пейпал к сайту

Как подключить пейпал к сайту

Теперь введите проверочный код и нажимайте «Продолжить».

Как подключить пейпал к сайту

После этого вы попадаете в свой личный кабинет пользователя.

Как подключить пейпал к сайту

Настройка подключения

Вот мы и подошли к самому интересному. Сейчас будем разбираться, как подключить PayPal к своему сайту. Сегодня эта процедура уже не является сложной, ведь компания о нас думает и заботится. Они упростили ее до уровня «новичок». Поэтому не переживайте, все у вас получится.

Как помните, мы с вами находимся на главной странице своего кошелька. Вам нужно перейти во кладку «Профиль». Она находится в верхнем горизонтальном меню.

Как подключить пейпал к сайту

Теперь слева в меню нажимайте на «Мои инструменты продаж».

Как подключить пейпал к сайту

В открывшемся списке найдите «Продажа в интернете». Этот пункт дает возможность настроить платеж через систему. Мы будем настраивать учетные данные API вашего профиля с сайтом или интернет-магазином.

Нажимайте на кнопку «Обновить» с правой стороны от краткой информации.

Как подключить пейпал к сайту

Быстрые платежи

Перед тем как настроить ваши учетные сведения API, рекомендую воспользоваться функцией «Быстрые платежи» или PayPal express checkout. Делается все просто. Переходим по ссылке внизу страницы –«Включить функцию «Быстрые платежи».

Как подключить пейпал к сайту

Попадаем на страницу, где нажимаете на кнопку «Отправить».

Как подключить пейпал к сайту

После этого вас перебрасывает на главную страницу вашего профиля. Вы увидите сообщение о сохранении информации:

Как подключить пейпал к сайту

Настройка API

На этом этапе вам нужно определиться с вариантом создания API. Эта информация позволяет платежной системе взаимодействовать с вашим сайтом или корзиной для приема платежей.

У вас на выбор два варианта создания учетных данных:

Рекомендую выбирать и пользоваться вторым вариантом. Я выбираю его и жму на кнопку «Запросить учетные записи API».

Как подключить пейпал к сайту

Ставим галочку, если не поставлена, возле варианта «Запросите подпись API» и нажимайте «Подтвердить согласие и отправить».

Как подключить пейпал к сайту

Вы попадаете на страницу просмотра ваших сведений подписи API.

Как подключить пейпал к сайту

Нажимая «Показать», увидите имя пользователя, пароль и подпись. Скопируйте их и сохраните в надежном месте.

Настройка подключения на сайте

Теперь переходите в настройки своего сайта и найдите там пункт «Оплата». У всех оно похоже, поэтому детально все описывать тут смысла не вижу.

Выбирайте «Оплата через PayPal» и заполняйте поля информацией, взятой в предыдущем шаге:

Как подключить пейпал к сайту

Перед тем как выставлять счет покупателям, протестируйте сами эту функцию.

Создание кнопки

Еще нужно создать кнопку для оплаты. Кнопка PayPal создается на их сайте. Зайдите во вкладку «Profile» – «More Options».

Как подключить пейпал к сайту

Теперь нажимайте «Update».

Как подключить пейпал к сайту

Нажимаем справа «Create new button».

Как подключить пейпал к сайту

Заполняйте все поля, выбирайте разные настройки. Тут уже все зависит от вашей фантазии.

Как подключить пейпал к сайту

Как подключить пейпал к сайту

Как подключить пейпал к сайту

После всех ваших проделанных манипуляций жмите «Создать кнопку». Вы увидите на экране код (HTML-код).

Как подключить пейпал к сайту

У меня получился такой HTML-код. У вас будет совсем другой. В зависимости от настроек.

Копируете его к себе на сайт. Вставляйте его непосредственно в код своего сайта или интернет-магазина, а не просто в текст.

Вот таким образом происходит подключение PayPal к сайту и непосредственная его настройка в вашем личном кабинете пользователя и на сайте.

Желаю вам успехов и больших продаж.

Как подключить PayPal к сайту: Видео

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *