/ Сайтостроение / Плагины / Платежная система PayKeeper

Платежная система PayKeeper

08.07.2017

769

Подключаем к интернет-магазину сервис электронной оплаты PayKeeper. У данного сервиса есть специальный модуль для Woocommerce — WooCommerce PayKeeper Plugin. Сам модуль и инструкция по подключению есть на официальном сайте. В данной статье приведу тезисно порядок подключения и проблемы с которыми пришлось столкнуться.

Интеграция PayKeeper

Изначально при заключении Договора получаем доступ (данные) к личному кабинету PayKeeper. Далее заводим выделенный сервер (либо на FastVPS, либо на REG.ru, либо на хостинге PayKeeper), сообщаем необходимые данные менеджеру сервиса.

Установка и настройка плагина

После этого устанавливаем плагин на сайт. Настройки PayKeeper находятся в разделе Платежи.

Прописываем в первом поле
https://site.server.paykeeper.ru/order/inline/ — !site прописываем без зоны

Во втором поле — придумываем и пишем секретное слово (лучше латиницей). Далее оно нам пригодиться.

Следующие 3 поля Наименование, Описание, Icon заполнены автоматически — это то что выводиться на странице оформления заказа.

Следующая группа полей также заполнена по умолчанию. В первых двух полях Адрес уведомления и Успешный переход — одинаковое значение: https://site.ru/?wc-api=wc_pk_gateway
В следующем Переход при ошибке: https://site.ru/?wc-api=wc_pk_gateway&failed

После внесения изменений не забываем сохранить настройки.

Синхронизация

Далее идем в личный кабинет PayKeeper, и в разделе Получение информации о платежах выбираем Способ получения уведомления о платежах» — POST-оповещения.

В поле Секретное слово вставляем слово которое мы придумывали настраивая плагин. А в поле URL, на который будут отправляться POST-запросы вставляем значение из плагина: https://site.ru/?wc-api=wc_pk_gateway

Идем в раздел Адреса перенаправления клиент и заполняем 2 поля, скопировав значения из плагина:
https://site.ru/?wc-api=wc_pk_gateway
https://site.ru/?wc-api=wc_pk_gateway&failed

Собственно ВСЕ! Модуль должен работать. Но у меня не заработал.

Ошибки

Выбирая оплату картами Visa/MasterCard онлайн (PayKeeper) после нажатия кнопки Оформить заказ мы попадаем на экран успешного завершения заказа, а должны попасть на сервис для оплаты. Более того возвращаясь к заказу в личном кабинете и попытавшись оплатить, снова попадаем на экран успешного завершения заказа — но заказ по прежнему не оплачен.

Проблему удалось решить следующим образом:

1. Создал А-запись на домене pay.site.ru A 888.888.88.888
2. Операторы установили на этот поддомен сертификат
3. Заменил адрес Платежной формы PayKeeper на https://pay.site.ru/form/inline

И все заработало! Только немного странно, что форма оплаты появляется фактически после создания заказа.

Не обновляется статус заказа

При внесении платежа статус заказа онлайн не обновлялся. Это происходило из-за плагина Bad Behavior. После отключения плагина, все стало работать как надо.

Автозаполнение полей формы PayKeeper

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

Скрипт заполнения формы PayKeeper:

$(document).ready(function() { 
	if($("body").is(".woocommerce-order-pay")) {
		var orderNumber = $(".order_details .order strong").text();
		$("#tmg_payment_credits #orderid").val(orderNumber);
		
		var orderTotal = $(".order_details .total .woocommerce-Price-amount").text();
		var orderTotal2 = orderTotal.substring(0, orderTotal.length - 3);
		orderTotal2 = orderTotal2.replace(/\s+/g,''); //убираем пробелы если они есть (например после тысяч)
		$("#tmg_payment_credits #sum").val(orderTotal2);
	}
});

orderTotal.substring(0, orderTotal.length — 3); — обрезание последних символов строки.

Есть еще один способ избавления от ненужных символов: orderTotal.replace(/[^1-9.]/g, «»); Но в данном случае он не подойдет, т.к. изначальный формат суммы 35.45 р.. Т.е. после данной операции будет оставаться лишняя точка 35.45.

Также можно вывести а впоследствии автозаполнить поля имя, e-mail, phone.

Для начала выведем необходимые данные, где нибудь в footer (причем чтобы их не было видно #user-data {display: none;})

Если выводить через функцию WordPress, то мы получим только часть данных:

<?php $current_user = wp_get_current_user();
echo '<div id="user-email">'.$current_user->user_email.'</div>';
echo '<div id="user-name">'.$current_user->user_firstname.'</div>'; ?>

Чтобы получить поля Woocommerce, нужно делать так:

<?php $current_user_id = get_current_user_id();
$billing_first_name = get_user_meta($current_user_id,'billing_first_name',true);
echo '<div id="user-name">'.$billing_first_name.'</div>'; 
$billing_phone = get_user_meta($current_user_id,'billing_phone',true);
echo '<div id="user-phone">'.$billing_phone.'</div>'; ?>

Чтобы узнать название полей нужно пойти в форму заказа и посмотреть id соответствующих input.

Итак готовый вывод необходимых данных:

<div id="user-data">
	<?php $current_user_id = get_current_user_id();

	$billing_first_name = get_user_meta($current_user_id,'billing_first_name',true);
	echo '<div id="user-name">'.$billing_first_name.'</div>'; 

	$billing_phone = get_user_meta($current_user_id,'billing_phone',true);
	echo '<div id="user-phone">'.$billing_phone.'</div>';

	$billing_email = get_user_meta($current_user_id,'billing_email',true);
	echo '<div id="user-email">'.$billing_email.'</div>'; ?>
</div>

А в скрипт добавим автоподстановку полей

var orderemail = $("#user-data #user-email").text();
$("#tmg_payment_credits #client_email").val(orderemail);
		
var ordername = $("#user-data #user-name").text();
$("#tmg_payment_credits #clientid").val(ordername);

Загвоздка будет только с полем телефон, т.к. в форме PayKeeper у этого поля установлена маска, и есть вероятность подставить не правильно, поэтому это поле я не трогаю.

Поделится информацией с друзьями

  • Комментарии
  • Вложения

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

Пока нет комментариев. Будь первым!

Платежная система PayKeeper Платежная система PayKeeper Платежная система PayKeeper Платежная система PayKeeper
Субкатегории в категориях Woocommerce
Рекомендации для васСубкатегории в категориях WoocommerceOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.