Статьи

Прием платежей с GoCardless

Онлайн-платежи становятся все более и более популярными. GoCardless — это еще один платежный сервис, который в настоящее время работает в Великобритании и позволяет вам принимать платежи через Интернет.


GoCardless не принимает платежи по карте. Вместо этого они основывают свою платежную систему на прямых дебетах.

GoCardless позволяет быстро и легко принимать платежи. Сервис в настоящее время работает только в Великобритании; однако на странице часто задаваемых вопросов указано, что у них есть планы по расширению доступности GoCardless для большего количества регионов. GoCardless может похвастаться сервисом без платы за настройку, без месячных минимумов и без скрытых платежей. Они взимают 1% за транзакцию, но не более £ 2,00.

В настоящее время GoCardless предлагает два способа использования своего сервиса:

  • PayLinks генерирует простой URL, которым вы можете поделиться с кем угодно. Переход по этим ссылкам позволяет посетителю сделать платеж на ваш счет. Программирование не требуется!
  • API дает вам гораздо больше возможностей, чем PayLinks; однако, это требует больше работы для настройки.

В этом уроке я кратко познакомлю вас с использованием PayLinks и API.


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

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

После создания PayLink у вас теперь есть ссылка, которую вы можете распространять среди других. Вот тот, который я создал (примечание: не предоставляйте никаких данных; ссылка только для демонстрационных целей!): Https://gocardless.com/pay/6MG3GG5H

Переход по этому URL дает пользователю страницу, похожую на следующее изображение:

Не забудьте проверить панель инструментов, как только ваша ссылка будет активна. Он предоставляет вам актуальную информацию о том, кто платил и сколько они заплатили.

Примеры использования PayLinks:

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

Дальнейшее чтение на PayLinks:


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

GoCardless не принимает платежи по карте. Вместо этого они основывают свою платежную систему на прямых дебетах. Пользователи осуществляют платежи на странице, размещенной на GoCardless, а не на странице в вашем домене. Это может быть хорошо для вас, но некоторые компании могут захотеть сохранить все размещено на своем веб-сайте. Stripe , еще один сервис онлайн-платежей (хотя только для США), позволяет разработчикам осуществлять платежи через их собственный веб-сайт. Смотрите их полезное руководство Создание формы оплаты, которая дает хорошее представление о Stripe. SagePay — это еще один сервис, который позволяет обрабатывать платежи самостоятельно.

Secure Sockets Layer (SSL) абсолютно необходим в подобных ситуациях. Однако при использовании GoCardless пользователь перенаправляется на веб-сайт с поддержкой SSL, где все детали обрабатываются надежно. При этом наличие SSL на вашем собственном веб-сайте может помочь в обеспечении безопасности вашего сайта. Это не значит, что включение SSL защищает ваш веб-сайт от межсайтовых сценариев, внедрения SQL-кода, эксплойтов сервера и т. Д., Но оно шифрует соединение между вашим веб-сайтом и клиентом. Это зашифрованное соединение побуждает пользователей совершать транзакции. Естественно, это только одно из преимуществ SSL; см. эту статью для других преимуществ. Если SSL кажется вам интересным, то в этом разделе будет кратко описан процесс его настройки.

Получение сертификата SSL включает в себя шаги, подобные следующим:

  1. Создание запроса на подпись сертификата
  2. Отправка вашего CSR провайдеру SSL
  3. Установка вашего SSL-сертификата

API GoCardless очень хорошо документирован и предоставляет очень полезные функции.

Решение о том, у кого приобретать SSL-сертификат, является одной из самых сложных частей при настройке SSL. gandi.net предлагает годовой бесплатный SSL-сертификат при покупке домена у них. GoDaddy , VeriSign и GeoTrust , а также практически любой регистратор доменов также предлагают SSL-сертификаты с широким диапазоном цен. StartSSL предлагает бесплатный сертификат SSL.

Большинство провайдеров сертификатов предоставляют специфическую для сервера документацию о том, как начать работу с SSL. Если выбранный вами провайдер этого не делает, проверьте документацию вашей хостинговой компании. На моем личном сервере (установка Ubuntu) вот что я должен был сделать.

  • Установить OpenSSL
  • Создать запрос на подпись сертификата
  • Скачайте подписанный сертификат у моего провайдера и сохраните его на сервере.
  • Загрузите корневой сертификат CA
  • Получите Apache для обслуживания моего сайта на основе конфигурации виртуального хоста с включенным SSL

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
#install openssl
apt-get install openssl
 
#generate csr
openssl req -new -nodes -days 365 -keyout www.mydomain.com.key -out www.mydomain.com.csr -newkey rsa:2048
 
#after having retrieved the signed certificate from my provider and copying it onto the server, configure apache virtual hosts
 
<VirtualHost 12.34.56.78:443>
    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/www.mydomain.com.crt
    SSLCertificateKeyFile /etc/apache2/ssl/www.mydomain.com.key
    SSLCACertificateFile /etc/apache2/ssl/verisign.cer
 
    ServerAdmin [email protected]
    ServerName www.mydomain.com
    DocumentRoot /srv/www/mydomain.com/public_html/
    ErrorLog /srv/www/mydomain.com/logs/error.log
    CustomLog /srv/www/mydomain.com/logs/access.log combined
</VirtualHost>

Вышеприведенные команды взяты из превосходной документации Linode по SSL-сертификатам. Другие полезные ссылки:

GoCardless позволяет быстро и легко принимать платежи.

Кроме того, если вы хотите попробовать HTTPS, но у вас нет денег или вы не хотите тратить деньги, вы можете проверить самозаверяющие сертификаты ( Ubuntu , CentOS & IIS 7 ).

Установив SSL, вы получите блестящий замок в нашей адресной строке! Кроме того, обеспечьте безопасность других частей вашего сайта. Как упоминалось ранее, SSL просто шифрует соединение. В десятке проектов OWASP вы найдете информацию об основных уязвимостях, обнаруженных в веб-приложениях.

Иногда вы можете услышать, что SSL плохо влияет на производительность и влияет на время загрузки. Это в некоторой степени верно, но результаты сильно различаются. Я запустил быстрый тест с использованием изображения размером 140 КБ на моем сервере (котенок, конечно). Чтобы проверить время загрузки по HTTP и HTTPS, я использовал отличный webpagetest.org .

Результаты интересные. HTTP- версия изображения имела время загрузки 1,168 с, а загрузка контента началась через 0,3 секунды. Результаты HTTPS были довольно разными, время загрузки 1.722 с загрузкой контента происходило всего через 0.9 секунды. Если вы посмотрите на результаты HTTPS, вы увидите розовую часть на графике; это представляет согласование SSL и не происходит на запросе только HTTP. Согласование SSL добавило к запросу примерно 581 мс.


API GoCardless очень хорошо документирован и предоставляет очень полезные функции. Вы можете найти клиентские библиотеки для PHP ( документы ), Python ( документы ), .NET ( документы ) и Ruby ( документы ). Чтобы проверить наши платежи в среде песочницы, вы можете использовать следующие данные:

  • Номер счета: 55779911
  • Код сортировки: 20-00-00

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

Как и в приведенном выше примере CURL, иногда часть ответа отображается на веб-странице. Это полезно, и вы можете указать предпочитаемый формат ответов, передав определенный заголовок или добавив .json/.xml к URL-адресу (формат ответа по умолчанию — XML). Например:

1
2
3
4
5
#Get a JSON response
curl -H «Authorization: bearer access_token» https://sandbox.gocardless.com/api/v1/merchants/247.json
 
#Get an XML response
curl -H «Authorization: bearer access_token» -H «application/xml» https://sandbox.gocardless.com/api/v1/merchants/247

Получение сведений о продавце демонстрирует идею «ресурсов», которая содержится в блоке sub_resource_uris ответа. Структура URL довольно интуитивна; URL каждого ресурса очень похож на исходный запрос. Взгляните на следующий пример с использованием структуры JSON:

1
2
3
4
5
6
{
    «users»: «https://sandbox.gocardless.com/api/v1/merchants/247/users»,
    «bills»: «https://sandbox.gocardless.com/api/v1/merchants/247/bills»,
    «pre_authorizations»: «https://sandbox.gocardless.com/api/v1/merchants/247/pre_authorizations»,
    «subscriptions»: «https://sandbox.gocardless.com/api/v1/merchants/247/subscriptions»
}

Чтобы получить список ваших пользователей, просто добавьте /users к запросу. GoCardless также предлагает несколько субресурсов:

  • Пользователи : список клиентов продавца; содержит информацию, такую ​​как идентификатор пользователя, когда была создана его учетная запись, имя и фамилия.
  • Счета : список счетов (счета разовые), сделанные с продавцом; содержит информацию, такую ​​как общая сумма счета, комиссии GoCardless, идентификатор пользователя, валюта и многое другое.
  • Предварительные авторизации : аналогично счетам, счет может быть сделан с использованием существующей предварительной авторизации, немедленное разрешение пользователя не требуется (при условии, что оно уже было дано). Данные включают в себя интервал, статус, максимальную сумму, которая может быть снята и многое другое.
  • Подписки : ваши подписки содержат такие данные, как количество, длительность интервала, идентификатор пользователя, дата предстоящего интервала, статус и многое другое.

Эти примеры кода можно посмотреть в учебном демо ; это довольно простые и распространенные вещи, которые разработчик может захотеть использовать при внедрении GoCardless на свой сайт.

Создание нового счета (за 10 фунтов стерлингов):

01
02
03
04
05
06
07
08
09
10
11
$payment_details = array(
    ‘amount’ => ‘10.00’,
    ‘name’ => ‘A short description’
);
 
$billURL = GoCardless::new_bill_url($payment_details);
 
/*
* $billURL will now contain something like: https://sandbox.gocardless.com/connect/bills/new?bill%5Bamount%5D=30.00&bill%5Bmerchant_id%5D=247&bill%5Bname%5D=Donation&client_id=….
* The URL can now go into an anchor tag
*/

Создание нового URL подписки (за £ 4,99 каждые 3 месяца):

01
02
03
04
05
06
07
08
09
10
11
$payment_details = array(
  ‘amount’ => ‘4.99’,
  ‘interval_length’ => ‘3’,
  ‘interval_unit’ => ‘month’
);
 
$subscription_url = GoCardless::new_subscription_url($payment_details);
 
/*
* Just like with creating a new bill, we can insert $subscription_url into the href attribute of an anchor tag
*/

Получение данных вашего продавца:

1
$merchant = GoCardless_Merchant::find(‘247’);

Получение сведений о конкретном пользователе:

1
$user = GoCardless_Bill::find(‘438’);

Получение сведений о конкретном счете:

1
$bill = GoCardless_Bill::find(‘043RVT596Q’);

Интерфейс GoCardless довольно прост в навигации (на примере песочницы). После входа в систему вы можете перейти на свою домашнюю страницу по адресу sandbox.gocardless.com . Вы сможете увидеть обзор входящих и исходящих платежей.

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

Вкладка « Разработчик » содержит идентификатор вашего приложения, секрет приложения, маркер доступа продавца и идентификатор продавца, которые вам понадобятся при использовании API. Вы также можете предоставить URI перенаправления: куда перенаправляются ваши клиенты после совершения платежа.

Надеюсь, этого достаточно, чтобы дать вам общий обзор того, что может предложить GoCardless, и помочь вам решить, будет ли услуга соответствовать вашим требованиям. Спасибо за прочтение!