Платежные системы для сайта. Подключение SpryPay ч.1

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

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

Обзор системы приема платежей SpryPay

Итак, первой системой о которой я бы хотел поговорить – SpryPay (http://sprypay.ru/).

Сайт системы достаточно простой и не отличается красивым дизайном и интерфейсом. Для начала работы необходимо зарегистрироваться и после регистрации подтвердить свой email. При регистрации система нас предупреждает о том, что выводить неверифицированному пользователю больше 15 000 р нельзя, и то что sprypay предоставляет только аккаунты для продавцов без возможности пополнения. На мой взгляд эти два пункта и являются первыми минусами данной системы.

Первые минусы платежной системы SpryPay

После регистрации и авторизации первое, что я бы посоветовал – добавить и подтвердить свой номер телефона в пункте «Профиль».

После добавления номера можно пройти верификацию. Верифицировать аккаунт можно двумя способами.

  1. Отправить нотариально заверенную форму по указанному адресу;
  2. Сделать платеж в системе CONTACT.

На мой взгляд, оба способа очень неудобные. Если отправлять письмо с нотариально заверенным документом, то в лучшем случае Вы верифицируетесь через 1-2 месяца (время пересылки письма + рассмотрение заявления в течении 4 недель.). Второй способ намного быстрее первого, но недоступен для ряда стран.

Опечатка в системе SpryPay

Поэтому в SpryPay можно в принципе работать и дальше с неподтвержденным аккаунтом, но вводить более 15 000 р. Вы не сможете. Кроме этого на странице оплаты будет висеть некрасивая наклеечка, говорящая потенциальному покупателю, что он собирается сделать покупку у неизвестного продавца.

Неаттестованный продавец

Итак, верифицированный Вы пользователь или нет Вы все равно можете добавить свой магазин и принимать оплату.

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

Теперь нужно перейти по ссылке «Настройки» и выполнить требования по полной верификации магазина. Как только магазин пройдет верификацию, Ваш сайт будет отправлен на модерацию. У меня все сайты модерировались в течении 1-3 дней в зависимости от нагрузки! Я считаю, что это очень долго, но возможно Вам повезет и сайт проверят за несколько часов. Теперь Вы можете выбрать на вкладке «Прием средств» необходимые платежные системы. Обратите внимание, что самые распространенные из них не доступны пока магазин не промодерируют. После того как магазин пройдет проверку Вы сможете выбрать оставшиеся системы помеченные красным и подать заявку на их подключение.

Все варианты оплаты

Теперь хочу остановиться и расписать подробнее о заявке на прием. Заявки для СМС платежей, QIWI и ЯД обрабатывают в течении нескольких часов. Далее Вы сможете их отметить и они автоматически подключаться к вашему сайту. Самая большая головная боль начинается при подключении WM и оплаты по карточкам.

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

Требования WM к сайту

Если хотя бы одно из требований не будет выполнено, то Ваш сайт не подключат и повторно отправить заявку уже будет нельзя! На моей практике при создании интернет-магазинов успешное подключение WM было всего лишь несколько раз и то через 5 дней с момента подачи заявки. В остальных случаях заявки отклоняли хоть все требования и были выполнены. Поэтому как и чем руководствуются люди дающие добро на подключение WM мне до сих пор не ясно. Намного хуже дело обстоит с оплатой по карточкам. Для того что бы подать заявление на оплату с карточек не нужно делать никаких действий просто подать заявку и ждать когда ее обработают в течении недели. В 95% на любом интернет-магазине отклоняли запрос оплаты по карточке. Опять же, чем и как руководствуются люди дающие добро мне не ясно. Я подключал абсолютно разные магазины и верифицированные и нет, но только лишь один раз мне удалось подключить к оплате по карточкам. Такое странное поведение WM и банков я понять не могу, но скорее всего это зависит все от самой системы SpryPay потому что в других системах я такое странное поведение замечал лишь несколько раз.

Итак, после того как магазин проверили и Вы подключили все системы пришло время заполнить оставшуюся информацию на вкладках Вашего магазина. С заполнением вкладок я думаю проблем возникнуть не должно. Но на вкладке «Оповещения» я остановлюсь и распишу все поподробнее.

На вкладке «Оповещения» Вам нужно обязательно заполнить 4 поля.

  1. ipnUrl: — адрес страницы на которую будут приходить POST/GET запросы о статусе покупки;
  2. successUrl: — страница оповещающая об удачной оплате и завершении покупки. На нее также приходят POST/GET запросы;
  3. failUrl: — страница оповещающая об ошибках возникших в процессе оплаты. На нее также приходят POST/GET запросы;
  4. ipnEmail: — вписываете свою почту на которую будут приходить отчеты о совершенных покупках в Вашем магазине.

Заполняем последнее поле и создаем на своем сайте 3 соответствующие страницы (статус, успех и плохо). Я для примера буду создавать просто страницы WP внутри темы (page-status.php, page-success.php, page-bad.php). Как Вы уже догадались для каждого файла страницы создам отдельную страницу в админке WP и получившиеся URL страниц вставлю в пустые поля. После этого выставлю значения в выпадающих полях на POST и все сохраню. В итоге должно получиться примерно так как на скриншоте.

Заполенение обязательных полей SpryPay

Теперь идем в документацию и читаем все внимательно от начала до конца. Если все прочитать то, в принципе в дальнейшем трудностей возникнуть не должно.

После прочтения документации вставляем на свой сайт форму оплаты и настраиваем по своему вкусу. Исходя из примера Выше я вставил форму такого вида:

<form action="https://sprypay.ru/sppi/" method="POST" accept-charset="utf-8">
	<input type="hidden" name="spShopId" value="id вашего магазина">
	<input type="hidden" name="spCurrency" value="rur">
	<input type="hidden" name="spPurpose" value="название товара">
    <input type="hidden" name="spAmount" value="100500.00">
    <input type="hidden" name="spIpnUrl" value="http://site.ru/status/">
    <input type="hidden" name="spIpnMethod" value="1">
    <input type="hidden" name="spSuccessUrl" value="http://site.ru/success-order/">
    <input type="hidden" name="spSuccessMethod" value="1">
    <input type="hidden" name="spFailUrl" value="http://site.ru/payment-error/">
    <input type="hidden" name="spFailMethod" value="1">
    <input type="hidden" name="lang" value="ru">                                 
	<input type="text" name="spUserDataUserName" placeholder="Ваше имя" required>
	<input type="tel" name="spUserDataUserPhone" placeholder="Ваш телефон" required>
	<input type="email" name="spUserEmail" placeholder="Ваш email" required>
	<input type="submit" value="Купить">                                
</form>

Хочу обратить внимание, что я добавил дополнительные поля для имени пользователя и его телефона (spUserDataUserName и spUserDataUserPhone). Теперь эти поля также будут улетать в составе POST запроса и возвращаться обратно на страницу статуса. На этом в принципе минимальные настройки для сайта произведены и Вы можете выставить значение поля spAmount на 1.00 и попробовать оплатить. После оплаты моментально приходит и письмо как к плательщику так и на почту продавца о том что товар был приобретен. Но и в пришедшем письме от системы SpryPay имеются очень неприятные минусы, а именно – в нем выводятся названия всех дополнительных полей, которые присутствуют в форме. Выглядит это слегка не красиво.

Кривое письмо от SpryPay

Как видно из скриншота выше на почту к покупателю пришло письмо с его именем и телефоном. И названия полей слегка не к месту в этом письме. Кроме этого после оплаты покупателя не перенаправляет на страницу успешной оплаты! Имейте это ввиду! Т.е страница success-order должна по сути просто быть на случай если пользователь догадается щелкнуть после оплаты на незаметную ссылку «Вернуться в магазин». Поэтому вся нагрузка на работу с оплатой ложиться на страницу статуса (status). На странице статуса для каждого платежа желательно делать проверку. Код проверки написан в документации и с ним проблем возникнуть не должно. Ниже приведу пример моего кода статусной страницы.

<?
if ( !empty($_POST) ) {
    define('WP_USE_THEMES', false);
// в данном примере данные приходят в POST-запросе
// список переменных, которые должны присутствовать в запросе с данными платежа
    $spQueryFields = array('spPaymentId', 'spShopId', 'spShopPaymentId', 'spBalanceAmount', 'spAmount', 'spCurrency', 'spCustomerEmail', 'spPurpose', 'spPaymentSystemId', 'spPaymentSystemAmount', 'spPaymentSystemPaymentId', 'spEnrollDateTime', 'spHashString', 'spBalanceCurrency');

// проверим, что все они присутствуют в запросе
    foreach ($spQueryFields as $spFieldName) if (!isset($_POST[$spFieldName])) exit("error в запросе с данными платежа отсутствует параметр `$spFieldName`");

// ваш секретный ключ, задается в настройках магазина
    $yourSecretKeyString = 'ipnSecretKey ваш секретный ключ';

// получим контрольную подпись
    $localHashString = md5($_POST['spPaymentId'] . $_POST['spShopId'] . $_POST['spShopPaymentId'] . $_POST['spBalanceAmount'] . $_POST['spAmount'] . $_POST['spCurrency'] . $_POST['spCustomerEmail'] . $_POST['spPurpose'] . $_POST['spPaymentSystemId'] . $_POST['spPaymentSystemAmount'] . $_POST['spPaymentSystemPaymentId'] . $_POST['spEnrollDateTime'] . $yourSecretKeyString);

// сравним полученную подпись и ту, что пришла с запросом
    if ($localHashString == $_POST['spHashString']) {
        $name = $_POST['spUserDataUserName'];
        $phone = $_POST['spUserDataUserPhone'];
        $email = $_POST['spCustomerEmail'];

        $headers = 'From: Покупай воздух дешево! <info@site.ru>';
		wp_mail($email, 'Вы успешно купили воздух', 'Спасибо за приобретение воздуха!', $headers);
    } else {
        exit("error не совпали подписи; локальная: `$localHashString`; в запросе:`" . $_POST['spHashString'] . "`");
    }
} else {
    header("Location: http://site.ru/");
    exit();
}
?>

Код выше проверяет запрос и в случае успеха отправляет письмо. Т.е. грубо говоря статусная страница выполняет роль статусной и успешной. Ведь во многих магазинах после подтверждения оплаты обычно происходят какие-то дополнительные действия (отправка доп. писем пользователям, запись в БД всех покупок и т.п.) и это должно происходить на странице успешной покупки, но поскольку мы не знаем перейдет на нее пользователь или нет приходиться выкручиваться таким нестандартным методом. Отсутствие статуса об успешной оплате и редиректа на страницу success-order я считаю самым большим минусом в данной системе. Также в системе SpryPay есть готовые модули для различных CMS. Естественно они уже все старые и почти на всех CMS уже не работают. Поэтому код легче ручками прописывать.

Если в процессе установки системы появиться необходимость проверить в каком виде и как передаются параметры, то в SpryPay на странице «Тестирование IPN» вы можете генерировать случайные платежи и проверять ответы вашей статусной страницы. Для вывода средств из SpryPay перейдите в соответствующий пункт и выберите куда вывести деньги. После нажатия на кнопку «Вывод» к вам придут деньги в течении 1-2 минут.

Итог работы с системой приема платежей SpryPay

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

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

Подписаться на новые статьи