Как принимать оплату по qr коду тинькофф у себя в магазине. Интернет-эквайринг Тинькофф Банк на opencart+retailcrm

Заказать разработку модулей для opencart можно через мой кворк или обратившись ко мне напрямую.

Используется модуль оплаты для opencart 3 с сайта https://www.tinkoff.ru/kassa/develop/cms/

Скачан по ссылке https://acdn.tinkoff.ru/static/acquiring/60537806-12d5-4ed7-9e9f-72f77dc655f8.zip?_ga=2.81241748.286014317.1643209680-1435375226.1632341646

Задача

В платежном шлюзе тинькоф отключить оплату по банковской карте, оставить платежи по qr коду (см.скрин ниже)

 class=

Решение

Необходимо добавить код в файлы модуля, чтобы вслед за первым запросом (инициализации) к серверу API банка отправлялся второй для получения ссылки на qr code. Для этого в параметры нового запроса потребуется вставлять идентификатор платежа, получаемый в ответ от первого обращения к серверу. Ссылка на документацию

ссылка на документацию 2

Правки модели

Файл catalogmodelextensionpaymenttinkoff.php

Цель правкиМестоположениеВносимые изменения
сформировать второй запрос и заполнить параметр
PaymentId значением, полученным от первого запроса
После строк
$request = $tinkoff->buildQuery('Init', $data); $this->logs($data, $request); $request = json_decode($request);
вставить
$datagain = array(«PaymentId»=>$request->PaymentId);
$requestagain = $tinkoff->buildQuery(‘GetQr’, $datagain);
$this->logs($datagain, $requestagain);
$requestagain = json_decode($requestagain);
возвращать ответ от второго запроса к APIстроку
return isset($request->PaymentURL) ? $request->PaymentURL : »;
заменил на
return isset($requestagain->Data) ? $requestagain->Data : »;

Правки вьюшки

Содержимое Файла catalogviewthemedefaulttemplateextensionpaymenttinkoff.twig

заменил на

<iframe src="{{url}}" height="500px" width="100%"></iframe>

<script type="text/javascript">
	var i =0 ;
	setInterval(function () {
		if(i < 5) {
			checkOrderStatus();
			i++;
		} else
			location.href = 'https://ruketo.ru/index.php?route=checkout/failure';
	},60000);
	function checkOrderStatus() {
		$.ajax({
		      url:'index.php?route=extension/payment/tinkoff/checkOrderStatus',
		      dataType:'json',
		      type:'post',
		      success: function (json) {
		      	if(typeof json['order_status_id'] !== 'undefined' && json['order_status_id'] !== null && json['order_status_id']>0) 
		      		location.href = 'https://ruketo.ru/index.php?route=checkout/success';
		      }
		    });
	}
</script>

Таким образом qr code при оплате откроется не на отдельной странице, а будет подгружен на странице заказа opencart во внутренний фрейм. Как только сработает callback от платежной транзакции в банке произойдет обновление этой страницы. Покупателю будет выведено сообщение об успешном или неудачном платеже.

Модуль retailcrm

Если opencart интегрирован с retailcrm, то нужно установить соответствие способов оплат через тинькоф банк в модуле opencart и в retailcrm

 class=
 class=
 class=
 class=

Благодаря данной настройке заказы, оплаченные через qr code, будут менять статус в retailcrm точно также, как в opencart

Вопросы к тех. поддержке retailcrm

Вопрос №1

Подскажите можно как-то менять статус оплаты заказа в retailcrm, когда оплата подтверждается на сайте моего магазина? Т.е. клиент сделал заказ, нажал кнопку подтвердить и перешел на страницу оплаты в платежную систему. Произвел платеж и заказ у меня в магазине меняет статус через обратную связь с плат.системой. Можно сделать, чтобы в этот момент через АПИ пошел запрос в ритейл на смену статуса оплаты этого заказа? Я находил в документации только, что нужно создавать интеграционный тип оплаты в ритейле и оплата должна осуществляться по ссылке из ритейловской карточки заказа,- вот тогда смена статуса оплаты будет происходить.

Ответ

На стороне OpenCart нет отдельного поля под статус оплаты, по умолчанию, поэтому в модуле не предусмотрено работы с ним, но техническая возможноcть передавать в заказ статус оплаты есть.

Для решения этой задачи вам потребуется сделать отдельный скрипт. Методом /api/v5/orders/{externalId} можно получить заказ и из него id оплаты (order[payments][][id]). Далее методом /api/v5/orders/payments/{id}/edit (с параметром by=id) можно передать статус оплаты (payment[status]).

Так можно сделать только если в RetailCRM тип оплаты не связан с модулем платежей. По такому типу оплаты статус может быть изменен только через модуль платежей, но не напрямую.

Использовал данную информацию из ответа ТП и получил приемлемое решение(на основе модуля оплаты tinkoff и библиотеки модуля retailcrm):

в файл модуля catalogcontrollerextensionpaymenttinkoff.php добавил немного кода после определения класса class ControllerExtensionPaymentTinkoff extends Controller
{

private $retailcrmApiClient;
    public function __construct($registry)
    {
        parent::__construct($registry);
        $this->load->library('retailcrm/retailcrm');
        $this->retailcrmApiClient = $this->retailcrm->getApiClient();
    }
    public function changeRetailStatus($order_id)
    {
        $response = $this->retailcrmApiClient->ordersGet($order_id);
        if ($response->isSuccessful()) {
                $pay_id = 0;
                foreach ($response['order']['payments'] as $payment) {
                    if($payment['type']=='qr-code-shorp') {
                        $pay_id = $payment['id'];
                        break;
                    }
                    
                }
                if($pay_id) {
                    $result = $this->retailcrmApiClient->ordersPaymentEdit(array('status'=>'paid','id'=>$pay_id),'id');
                    if(!$result['success']){
                        $this->log->write('Оплата по qr коду не прошла. Вот причина:');
                        $this->log->write(print_r($result,true));
                    } 
                }
            }
    }

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

$this->changeRetailStatus((int)$request[‘OrderId’]);
 class=

Вопрос №2

Подключил оплату через qr. Вот пример страницы оплаты https://qr.nspk.ru/AD10005B56B02IQ89FCQPRSE60B5GTFQ?type=02&bank=100000000004&sum=1000&cur=RUB&crc=C8B3 Вопрос в том, можно ли сделать как-то чтобы после оплаты по qr приведенная страница обновлялась на страницу с результатом платежа или задать страницу переадресации?

Ответ

Коллеги ответили, что, к сожалению, для QR не работает принцип success/failURL

Вопрос №3

Возможно ли добавить к вам в систему свой модуль оплаты? Например, я хочу сделать аналог вот этому https://market-*.retailcrm.ru/admin/integration/list т.к. уже готовый вариант из каталога мне не на 100% подходит. Документация и доступы к АПИ платежной системы у меня есть. Если это возможно, то буду благодарен ссылкам на инструкции по данному вопросу

Ответ

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

Оплата по QR Тинькофф: выгода, возможности, нюансы

Банковская организация Тинькофф активировала финансовый сервис по QR-кодам. Он привязан к системе быстрых платежей СПб. Сгенерировать QR можно в приложении для ОС Андроид и iOS. Чере «куар кодировку» возможно погашение задолженности, оплата товаров, коммуналки.

 class=

Как сгенерировать код

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

Пример использования QR кода

Чтобы понять, как принимать и осуществлять оплату по QR коду Tinkoff, нужно знать принцип работы системы. Пошаговая инструкция на примере внесения средств на счет юридического лица:

  1. Скачайте и установите приложение Tinkoff для iOS или Android.
  2. Выберите вкладку «Оплатить» в нижнем меню.
  3. Нажмите на иконку в разделе «Переводы».
  4. Укажите нужную организацию.
  5. Отсканируйте квитанцию для оплаты онлайн.
  6. Наведите камеру на QR, либо найдите подходящее изображение в галерее смартфона.
  7. После считывания реквизиты сохранятся автоматически.
  8. Выберите нужный товар, отсканируйте отпечатки с упаковки.
  9. Подтвердите завершение платежа.

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

Для чего он нужен

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

Преимущества

Достоинства оплаты по QR коду Тинькофф – простота подключения и проведения транзакций (без использования POS-терминала). Средства мгновенно зачисляются на счет, пользователю дается кэшбек. Потребителю доступно закрыть дебетовую карту банка, не выходя из дома. Компания предоставляет услуги экварийнга, покупки билетов и прочих платежей.

 class=

К приложению уже подключено несколько розничных торговых точек. Оплатить покупку можно просто приложив телефон к сканеру. В дальнейшем банк Тинькофф планирует расширение услуг через QR код.

Для снятия наличных проделайте следующие манипуляции:

  1. На мониторе выберите «Снять».
  2. Вставьте карту, предварительно авторизовавшись в приложении Тинькофф через QR кодь в магазинах Google Play, App Store, Pay или других виртуальных сообществах.
  3. Приложите мобильное устройство, введите код ПИН или авторизуйтесь при помощи отпечатка пальца.
  4. Выберите необходимую операцию.

Приложение QR от банка Тинькофф безопасно, дает возможность не носить при себе наличные, подходит для оплаты большинства потребительских услуг.

guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

СТАТЬИ БЛОГА ПО РУБРИКЕ И МЕТКАМ

img

Организация мульти склада в opencart и получение остатков из 1С

Краткое описание модуля Заказать организацию мульти склада в opencart и получение остатков из 1С можете через мой кворк или напрямую через контакты на сайте. Условия для работы модуля Товарам в ИМ должен быть присвоен уникальный код, […]

Организация мульти склада в opencart и получение остатков из 1С

Краткое описание модуля Заказать организацию мульти склада в opencart и получение остатков из 1С можете через мой кворк или напрямую через контакты на сайте. Условия для работы модуля Товарам в ИМ должен быть присвоен уникальный код, […]
img

Загрузка объектов недвижимости на wordpress через xml по крону

Заказать разработку плагинов для wordpress можно через мой кворк или обратившись ко мне напрямую. Описание решения За основу взята статья WORDPRESS WOOCOMMERCE: ДОБАВЛЕНИЕ КАТЕГОРИЙ И ТОВАРОВ ПО API В КАТАЛОГ На проекте используются: Создаем в корне сайта […]

Загрузка объектов недвижимости на wordpress через xml по крону

Заказать разработку плагинов для wordpress можно через мой кворк или обратившись ко мне напрямую. Описание решения За основу взята статья WORDPRESS WOOCOMMERCE: ДОБАВЛЕНИЕ КАТЕГОРИЙ И ТОВАРОВ ПО API В КАТАЛОГ На проекте используются: Создаем в корне сайта […]
img

Возможности интеграции Опенкарт и МойСклад

Интеграция проверена на проектах до 12 тыс. товарных позиций

Платформа: Opencart

Версия Api МойСклад: 1.2

ОПИСАНИЕ: работает в нескольких режимах. Когда нужна первая начальная синхронизация, перебирает всю информацию из МС от самого раннего товара. Потом ставится на крон и работает в режиме, когда скрипты отыскивают изменения из МС, которые были совершены между крайними запусками. В модуле компактный код, используются одна и та же библиотека и функции для разных режимов. Ещё плюс, что модуль извлекает из АПИ МойСклад информацию постранично и фиксируется в БД процент выполнения. То есть если синхронизация по какой-то причине прервется, то достаточно запустить скрипт снова и процесс начнется не сначала, а с зафиксированной точки останова.

Возможности интеграции Опенкарт и МойСклад

Интеграция проверена на проектах до 12 тыс. товарных позиций Платформа: Opencart Версия Api МойСклад: 1.2 ОПИСАНИЕ: работает в нескольких режимах. Когда нужна первая начальная синхронизация, перебирает всю информацию из МС от самого раннего товара. Потом ставится на крон и работает в режиме, когда скрипты отыскивают изменения из МС, которые были совершены между крайними запусками. В модуле компактный код, используются одна и та же библиотека и функции для разных режимов. Ещё плюс, что модуль извлекает из АПИ МойСклад информацию постранично и фиксируется в БД процент выполнения. То есть если синхронизация по какой-то причине прервется, то достаточно запустить скрипт снова и процесс начнется не сначала, а с зафиксированной точки останова.
img

Переход на https в opencart wordpress

Для wordpress

https://zen.yandex.ru/media/id/5b4ae96b3d0e9500a9a853c7/podkliuchenie-besplatnogo-sslsertifikata-na-hostinge-timeweb-5b5eb4e09bef9e00a82f7564

Для нулевых сайтов на opencart

Переход на https в opencart wordpress

Для wordpress https://zen.yandex.ru/media/id/5b4ae96b3d0e9500a9a853c7/podkliuchenie-besplatnogo-sslsertifikata-na-hostinge-timeweb-5b5eb4e09bef9e00a82f7564 Для нулевых сайтов на opencart
img

Как наполнить opencart 2.3 fake-заказами

Подключиться к БД другого интернет-магазина и выкачать оттуда заказы с помощью запроса С помощью хранимой процедуры актуализируем заказы, на одну дату по пять заказов Если получились заказы из будущего, то запросом delete удаляем лишнии, в […]

Как наполнить opencart 2.3 fake-заказами

Подключиться к БД другого интернет-магазина и выкачать оттуда заказы с помощью запроса С помощью хранимой процедуры актуализируем заказы, на одну дату по пять заказов Если получились заказы из будущего, то запросом delete удаляем лишнии, в […]
img

Создание pdf с деталями заказа в письме клиенту. Opencart

Сделано в OPENCART 2.3. Скачать библиотеку, зайти в папку с ней через консоль команд и выполнить команды git clone https://github.com/dompdf/dompdf.git cd dompdf git clone https://github.com/PhenX/php-font-lib.git lib/php-font-lib cd lib/php-font-libgit checkout 0.5.1 cd .. git clone https://github.com/PhenX/php-svg-lib.git […]

Создание pdf с деталями заказа в письме клиенту. Opencart

Сделано в OPENCART 2.3. Скачать библиотеку, зайти в папку с ней через консоль команд и выполнить команды git clone https://github.com/dompdf/dompdf.git cd dompdf git clone https://github.com/PhenX/php-font-lib.git lib/php-font-lib cd lib/php-font-libgit checkout 0.5.1 cd .. git clone https://github.com/PhenX/php-svg-lib.git […]
img

Передача промокода/купона из opencart в retailcrm. Модификация бесплатного модуля.

Используемый модуль:https://ocmod.net/modul-retailcrm Задачи Промокоды/промокоды — стандартный функционал opencart. 1.Если на товар есть скидка по акции и она составляет меньшую сумму, чем по промокоду, применяется только промокод. А если на товар есть скидка по акции и […]

Передача промокода/купона из opencart в retailcrm. Модификация бесплатного модуля.

Используемый модуль:https://ocmod.net/modul-retailcrm Задачи Промокоды/промокоды — стандартный функционал opencart. 1.Если на товар есть скидка по акции и она составляет меньшую сумму, чем по промокоду, применяется только промокод. А если на товар есть скидка по акции и […]
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x