Токен qiwi что это

Инструкция по работе с API QIWI Мастер

Чтобы автоматически управлять картами в составе пакета QIWI Мастер вы можете воспользоваться специальным API. С помощью API вы сможете:

Для настройки API и работы с ним вам потребуются базовые знания знание программирования на языках PHP или Python. Далее мы пошагово расскажем как отправлять запросы и обрабатывать ответы от сервиса QIWI.

Попробуйте интерфейс для управления вирутальными картами QIWI Мастер по API.

Установка и настройка сервера

Пропустите этот шаг если вы знаете, как запустить сервер на локальном компьютере или на хостинге. Перейти к работе с API.

Для отправки запросов через API и обработки ответов вам нужно настроить сервер. Разберем, как установить сервер Apache на домашнем компьютере или арендовать сервер в интернете. В примерах мы будем использовать язык программирования PHP.

Сервер на домашнем компьютере

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

Аренда сервера у хостинг-компании

Этот способ быстрее, но нужен свободный домен, с которого будут отправляться запросы. Некоторые хостинг-провайдеры предоставляют домен в подарок при покупке хостинга. Желательно использовать ssl сертификат и отправлять запросы по https-протоколу. SSL сертификат нужен, чтобы ваш трафик не смогли расшифровать и подменить данные при отправке.

Для работы с API достаточно оплатить любой виртуальный хостинг с поддержкой скриптов на PHP и интерфейсом на cPanel (например тариф Host-A от Reg.ru). Виртуальные сервера VDS\VPS тоже подойдут, но больше времени уйдет на настройку.

Токен qiwi что это. Токен qiwi что это фото. картинка Токен qiwi что это. смотреть фото Токен qiwi что это. смотреть картинку Токен qiwi что это.

Подготовка к работе с API

Токен qiwi что это. Токен qiwi что это фото. картинка Токен qiwi что это. смотреть фото Токен qiwi что это. смотреть картинку Токен qiwi что это.

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

Токен qiwi что это. Токен qiwi что это фото. картинка Токен qiwi что это. смотреть фото Токен qiwi что это. смотреть картинку Токен qiwi что это.

Отправка запросов и обработка ответа

Токен qiwi что это. Токен qiwi что это фото. картинка Токен qiwi что это. смотреть фото Токен qiwi что это. смотреть картинку Токен qiwi что это.

Покупка пакет QIWI мастер

После исполнения скрипта в браузере появится статус транзакции.

Покупка карты

Шаг 1. Создание заказа

Доступные для заказа типы карт:

Скопируйте этот код в файл cardsbuy.php и перейдите в браузере на cтраницу http://localhost/master-api/cardsbuy.php.

Шаг 2. Подтверждение заказ карты

Далее запрос на подтверждение заказа карты.

Добавьте следующий код в файл cardbuy.php для подтверждения заказа карты:

Шаг 3. Покупка карты

Отправим запрос для покупки карты.

Добавьте следующий код в файл cardbuy.php для подтверждения заказа карты:

Сообщение «Accepted!» означает, что карта выпущена успешно. Любое другое сообщение значит ошибку.

Список карт с реквизитами

Скопируйте этот код в файл cardsreq.php и перейдите в браузере на cтраницу http://localhost/master-api/cardsreq.php:

В результате выполнения кода вы получите список выпущенных вирутальных карт в составе пакета QIWI Мастер.

Источник

Введение

Последнее обновление: 2021-06-02 | Редактировать на GitHub

Сервис QIWI PAY предназначен для обслуживания операций по банковским картам. Сервис позволяет ТСП принимать безопасные платежи по картам от клиентов.

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

Способы взаимодействия

Существует два способа работы с QIWI PAY:

URL сервисов оплаты

Возможные операции

Список доступных операций для каждого способа взаимодействия с QIWI PAY приведен в таблице.

Код операцииQIWI PAY WPFQIWI PAY APIОперацияФинансоваяОписание
1++saleДаОдношаговый сценарий оплаты
2+finish_3dsЗависит от сценарияВозврат в систему после 3DS аутентификации
3++authНетАвторизационный запрос (холдирование средств) в случае двухшагового сценария оплаты
5+captureДаПодтверждение авторизации в случае двухшагового сценария оплаты
6+reversalНетОтмена платежа (средства расхолдируются практически сразу)
7+refundДаВозврат платежа (средства возвращаются в течение 30 дней)
20+payoutДаОперация выплаты (OCT )
30+statusНетЗапрос статуса операции
40+get_cards_by_tokenнетПолучение списка привязанных карт

Финансовая операция означает, что по результатам данной операции будет произведено движение средств по счетам.

Типы операций покупки

Методы проведения оплаты

Возможны два сценария платежа:

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

С точки зрения наличия полей в запросе, все операции идентичны. Отличаются лишь коды операций.

Технология 3DS

QIWI PAY WPF

Клиенту отображается платежная форма для ввода реквизитов карты на стороне QIWI PAY.

Схема одношагового сценария платежа с использованием платежной формы (WPF ) на стороне QIWI PAY.

Перенаправление на платежную форму

QIWI PAY API

Авторизация

Реализация сценариев платежа

Схема одношагового сценария платежа

Схема двухшагового сценария платежа

Операция покупки

Запрос

Ответ на операцию покупки в случае не 3DS операции

Поле ответаТип данныхОписание
txn_idintegerИдентификатор транзакции
txn_statusintegerСтатус транзакции
txn_typeintegerТип транзакции
txn_dateYYYY-MM-DDThh:mm:ss±hh:mmДата транзакции в формате ISO8601 с временной зоной
card_tokenstring(40)Токен карты (если функционал токенизации включен для данного сайта)
card_token_expireYYYY-MM-DDThh:mm:ss±hh:mmСрок истечения токена карты (если функционал токенизации включен для данного сайта)
error_codeintegerКод ошибки работы системы
panstring(19)Номер карты Покупателя
issuer_namestring(40)Название банка-эмитента
issuer_countrystring(3)Страна банка-эмитента
amountdecimalСумма списания
currencyintegerВалюта суммы списания в цифровом формате согласно ISO 4217
auth_codestring(6)Код авторизации
ecistring(2)Индикатор E-Commerce операции
is_teststring(4)Наличие этого параметра со значением true указывает на то, что транзакция проведена в тестовой среде. Реального списания д/с с карты не было.

Ответ в случае если необходима 3DS аутентификация

Поле ответаТип данныхОписание
txn_idintegerИдентификатор транзакции
txn_statusintegerСтатус транзакции
txn_typeintegerТип транзакции
txn_dateYYYY-MM-DDThh:mm:ss±hh:mmДата транзакции в формате ISO8601 с временной зоной
error_codeintegerКод ошибки работы системы
acs_urlstring(1024)URL адрес банка-эмитента куда необходимо перенаправить Покупателя
pareqstring(4096)Уникальный идентификатор Покупателя, используемый при дальнейшем его перенаправлении на acs_url.
is_teststring(4)Наличие этого параметра со значением true указывает на то, что транзакция проведена в тестовой среде. Реального списания д/с с карты не было.

Завершение 3DS аутентификации

Запрос после прохождения 3DS аутентификации

ПараметрУсловиеТип данныхОписание
opcodeОбязательноintegerКод операции ( 2 )
merchant_siteОбязательноintegerИдентификатор сайта ТСП
paresОбязательноstring(4096)Результат верификации Покупателя
txn_idОбязательноintegerИдентификатор транзакции
signОбязательноstring(64)Контрольная сумма переданных параметров

Ответ на операцию покупки после 3DS аутентификации

Поле ответаТип данныхОписание
txn_idintegerИдентификатор транзакции
txn_statusintegerСтатус транзакции
txn_typeintegerТип транзакции
txn_dateYYYY-MM-DDThh:mm:ss±hh:mmДата транзакции в формате ISO8601 с временной зоной
card_tokenstring(40)Токен карты (если функционал токенизации включен для данного сайта)
card_token_expireYYYY-MM-DDThh:mm:ss±hh:mmСрок истечения токена карты (если функционал токенизации включен для данного сайта)
error_codeintegerКод ошибки работы системы
panstring(19)Номер карты Покупателя
issuer_namestring(40)Название банка-эмитента
issuer_countrystring(3)Страна банка-эмитента
amountdecimalСумма списания
currencyintegerВалюта суммы списания в цифровом формате согласно ISO 4217
auth_codestring(6)Код авторизации
ecistring(2)Индикатор E-Commerce операции
is_teststring(4)Наличие этого параметра со значением true указывает на то, что транзакция проведена в тестовой среде. Реального списания д/с с карты не было.

Операция подтверждения покупки

Запрос

ПараметрУсловиеТип данныхОписание
opcodeОбязательноintegerКод операции ( 5 )
merchant_siteОбязательноintegerИдентификатор сайта ТСП
txn_idОбязательноintegerИдентификатор транзакции
signОбязательноstring(64)Контрольная сумма переданных параметров
chequeОпциональноstringДанные для кассового чека по 54-ФЗ

Ответ

Поле ответаТип данныхОписание
txn_idintegerИдентификатор транзакции
txn_statusintegerСтатус транзакции
txn_typeintegerТип транзакции
txn_dateYYYY-MM-DDThh:mm:ss±hh:mmДата транзакции в формате ISO8601 с временной зоной
error_codeintegerКод ошибки работы системы
is_teststring(4)Наличие этого параметра со значением true указывает на то, что транзакция проведена в тестовой среде. Реального списания д/с с карты не было.

Операция отмены

Запрос

ПараметрУсловиеТип данныхОписание
opcodeОбязательноintegerКод операции ( 6 )
merchant_siteОбязательноintegerИдентификатор сайта ТСП
txn_idОбязательноintegerИдентификатор транзакции
signОбязательноstring(64)Контрольная сумма переданных параметров
amountОпциональноstring(20)Сумма операции

Ответ

Поле ответаТип данныхОписание
txn_idintegerИдентификатор транзакции
txn_statusintegerСтатус транзакции
txn_typeintegerТип транзакции
txn_dateYYYY-MM-DDThh:mm:ss±hh:mmДата транзакции в формате ISO8601 с временной зоной
error_codeintegerКод ошибки работы системы
amountdecimalСумма списания
is_teststring(4)Наличие этого параметра со значением true указывает на то, что транзакция проведена в тестовой среде. Реального возврата д/с на карту не было.

Операция возврата

Запрос

ПараметрУсловиеТип данныхОписание
opcodeОбязательноintegerКод операции ( 7 )
merchant_siteОбязательноintegerИдентификатор сайта ТСП
txn_idОбязательноintegerИдентификатор транзакции
signОбязательноstring(64)Контрольная сумма переданных параметров
amountОпциональноstring(20)Сумма операции

Ответ

Поле ответаТип данныхОписание
txn_idintegerИдентификатор транзакции
txn_statusintegerСтатус транзакции
txn_typeintegerТип транзакции
txn_dateYYYY-MM-DDThh:mm:ss±hh:mmДата транзакции в формате ISO8601 с временной зоной
error_codeintegerКод ошибки работы системы
amountdecimalСумма списания
is_teststring(4)Наличие этого параметра со значением true указывает на то, что транзакция проведена в тестовой среде. Реального возврата д/с на карту не было.

Операция выплаты

Запрос

Ответ

Поле ответаТип данныхОписание
txn_idintegerИдентификатор транзакции
txn_statusintegerСтатус транзакции
txn_typeintegerТип транзакции
txn_dateYYYY-MM-DDThh:mm:ss±hh:mmДата транзакции в формате ISO8601 с временной зоной
error_codeintegerКод ошибки работы системы
panstring(19)Номер карты
amountdecimalСумма выплаты
currencyintegerВалюта суммы списания в цифровом формате согласно ISO 4217
auth_codestring(6)Код авторизации

Запрос статуса операции

Запрос

ПараметрУсловиеТип данныхОписание
opcodeОбязательноintegerКод операции ( 30 )
merchant_siteОбязательноintegerИдентификатор сайта ТСП
signОбязательноstring(64)Контрольная сумма переданных параметров
txn_idОпциональноintegerИдентификатор транзакции
order_idОпциональноstring(256)Уникальный номер заказа в системе ТСП

Ответ

Подпись запроса

Каждая операция должна быть подписана. Подпись помещается в параметр sign запроса.

Уведомления о платежах

Существует два метода доставки уведомлений о платеже:

Для дополнительной уверенности следует принимать уведомления о платежах только с указанных ниже IP-адресов компании QIWI.

Отраслевые данные

Авиаданные

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

ПараметрУсловиеТип данныхОписание
typeОбязательноstringТипы отраслевых данных ( avia )
pnrОпциональноstring(6)Номер брони
ticketsОбязательноarrayМассив билетов
numberОбязательноstring(14)Номер билета
passenger_nameОбязательноstring(20)Имя пассажира
amountОбязательноdecimalЦена билета без сборов
amount_totalОбязательноdecimalЦена билета со сборами
restrictedОбязательноbooleanRestricted Ticked Indicator
agency_codeОбязательноstring(8)Код агентства
agency_nameОбязательноstring(25)Название агентства
airport_codeОбязательноstring(3)Аэропорт вылета (3 буквы по классификации IATA)
segmentsОбязательноarrayМассив сегментов
amountОбязательноdecimalНомер билета
service_classОбязательноstring(1)Класс обслуживания
fare_basis_codeОбязательноstring(6)Вид тарифа
dest_cityОбязательноstring(3)Аэропорт назначения (3 буквы по классификации IATA)
carrier_codeОбязательноstring(2)Код авиакомпании
stopover_codeОбязательноstring(1)Stop-Over Code
departure_dateОбязательноYYYY-MM-DDThh:mm:ss±hh:mmДата вылета в формате ISO8601 с временной зоной
flight_numberОбязательноstring(5)Номер рейса, только цифры

Безопасная сделка

Безопасная сделка от QIWI обеспечивает прозрачный и надежный механизм оплаты работ без риска потери денег как для заказчика, так и для исполнителя. Чтобы подключить Безопасную сделку, обратитесь к вашему сопровождающему менеджеру.

Поддерживается два вида безопасной сделки:

Работа с подсуммами

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

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

Подсумма комиссий — сумма комиссий Площадки, на которой выполняется сделка, и QIWI. Из данной подсуммы QIWI удержит комиссию за проведение операции, а остаток перечислит Площадке.

Подсуммы передаются в авторизационном запросе или в вызове WPF в поле cf2 через точку с запятой:

Безопасная сделка с выплатой на QIWI кошелек

Этот вид безопасной сделки состоит из двух этапов:

На каждом из этапов обязательно указывайте номер QIWI Кошелька в поле cf1 в формате

При подтверждении операции сумма к выплате автоматически зачислится на указанный в запросе QIWI Кошелек.

Транзакцию можно отменить полностью или частично только до подтверждения операции. Чтобы совершить отмену, выполните запрос отмены (код операции 6 ) и укажите в поле cf2 подсуммы отменяемой транзакции (в том же формате, что и при авторизации).

Безопасная сделка с выплатой на карту

Этот вид безопасной сделки состоит из трех этапов:

После подтверждения операции есть 30 дней для того, чтобы совершить операцию выплаты. Зачисление средств на карту получателя происходит в течение трех дней.

Вы можете отменить транзакцию полностью или частично до подтверждения операции, а также совершить возврат после подтверждения, если выплата еще не была совершена.

Для отмены или возврата выполните запрос отмены (код операции 6 ) или возврата (код операции 7 ) и укажите в поле cf2 подсуммы отменяемой транзакции (в том же формате, что и при авторизации).

Передача чека (54-ФЗ)

JSON структура чека должна быть сжата алгоритмом DEFLATE, описанным в RFC1951, а после представлена в ZLIB формате, описанным в RFC1950. Далее результат кодируется в BASE64 и передается в соответствующем параметре.

Параметры чека

ПараметрУсловиеТип данныхОписание
seller_idОбязательноdecimalИНН организации, для которой пробивается чек
cheque_typeОбязательноdecimalПризнак расчета (тэг 1054 ):
1. Приход
2. Возврат прихода
3. Расход
4. Возврат расхода
customer_contactОбязательноstring(64)Телефон или электронный адрес покупателя (тэг 1008 )
tax_systemОбязательноdecimalСистема налогообложения (тэг 1055 ):
0 – Общая, ОСН
1 – Упрощенная доход, УСН доход
2 – Упрощенная доход минус расход, УСН доход — расход
3 – Единый налог на вмененный доход, ЕНВД
4 – Единый сельскохозяйственный налог, ЕСН
5 – Патентная система налогообложения, Патент
positionsОбязательноarrayМассив товаров
quantityОбязательноdecimalКоличество предмета расчета (тэг 1023 )
priceОбязательноdecimalЦена за единицу предмета расчета с учетом скидок и наценок (тэг 1079)
taxОбязательноdecimalСтавка НДС (тэг 1199 ):
3 – с учетом НДС 18% (18/118)
4 – с учетом НДС 10% (10/110)
5 – ставка НДС 0%
6 – НДС не облагается
7 – с учетом НДС 20% (20/120)
descriptionОбязательноstring(128)Наименование предмета расчета
payment_methodОбязательноdecimalПризнак способа расчёта (тэг 1214 ):
1 – предоплата 100%. Полная предварительная оплата до момента передачи предмета расчета.
2 – предоплата. Частичная предварительная оплата до момента передачи предмета расчета.
3 – аванс.
4 – полный расчет. Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета.
5 – частичный расчет и кредит. Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит.
6 – передача в кредит. Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит.
7 – оплата кредита. Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита).
payment_subjectОбязательноdecimalПризнак предмета расчёта (тэг 1212 ):
1 – товар. О реализуемом товаре, за исключением подакцизного товара (наименование и иные сведения, описывающие товар).
2 – подакцизный товар. О реализуемом подакцизном товаре (наименование и иные сведения, описывающие товар).
3 – работа. О выполняемой работе (наименование и иные сведения, описывающие работу).
4 – услуга. Об оказываемой услуге (наименование и иные сведения, описывающие услугу).
5 – ставка азартной игры. О приеме ставок при осуществлении деятельности по проведению азартных игр.
6 – выигрыш азартной игры. О выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению азартных игр.
7 – лотерейный билет. О приеме денежных средств при реализации лотерейных билетов, электронных лотерейных билетов, приеме лотерейных ставок при осуществлении деятельности по проведению лотерей.
8 – выигрыш лотереи. О выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению лотерей.
9 – предоставление результатов интеллектуальной деятельности. О предоставлении прав на использование результатов интеллектуальной деятельности или средств индивидуализации.
10 – платеж. Об авансе, задатке, предоплате, кредите, взносе в счет оплаты, пени, штрафе, вознаграждении, бонусе и ином аналогичном предмете расчета.
11 – агентское вознаграждение. О вознаграждении пользователя, являющегося платежным агентом (субагентом), банковским платежным агентом (субагентом), комиссионером, поверенным или иным агентом.
12 – составной предмет расчета. О предмете расчета, состоящем из предметов, каждому из которых может быть присвоено значение выше перечисленных признаков.
13 – иной предмет расчета. О предмете расчета, не относящемуся к выше перечисленным предметам расчета.

Apple Pay

Apple Pay позволяет покупателям оплачивать покупки на сайте в одно касание, без ввода данных карты. Технология работает в мобильных приложениях и браузере Safari на iPhone, iPad, Apple Watch и MacBook. Для включения метода оплаты Apple Pay необходимо обратиться к вашему сопровождающему менеджеру.

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

Более подробно об интеграции можно узнать на сайте Apple.

Как отправлять платеж

Пример передачи данных от Apple

Процесс выполнения платежа Apple Pay в QIWI PAY API состоит из трех этапов:

При процессинге платежей Apple Pay на текущий момент при выполнении операции покупки поддерживаются следующие коды операций ( opcode ): sale (1) и auth (3).

Значение поля apple_pay_encoded_payment_token рассчитывается по следующему алгоритму:

value = b64_encode_bytes_to_string (compress_bytes_with_zlib (to_bytes (json)))

Пример шифрования/проверки токена Apple Pay

Шаг 1 ( to_bytes ) — Объект json конвертируется в массив байтов в соответствии с кодировкой UTF-8.

Шаг 2 ( compress_bytes_with_zlib ) — Байты, полученные на предыдущем шаге сжимаются с помощью библиотеки zlib. При сжатии необходимо следовать спецификации RFC1950 и обеспечить запись zlib header в начало потока со сжатыми данными.

Шаг 3 ( b64_encode_bytes_to_string ) — Байты, полученные на предыдущем шаге, кодируются в формат base64.

Интеграция с Google Pay™

Как отправлять данные в Google

При процессинге платежей Google Pay™ поддерживаются следующие коды операций покупки: sale (opcode: 1 ) и auth (opcode: 3 ).

Пример шифрования/проверки токена Google Pay

Значение поля google_pay_encoded_payment_token рассчитывается по следующему алгоритму:

b64_encode_bytes_to_string (compress_bytes_with_zlib (to_bytes (JSON)))

Шаг 1 ( to_bytes ) — JSON конвертируется в массив байтов в соответствии с кодировкой UTF-8.

Шаг 2 ( compress_bytes_with_zlib ) – Байты, полученные на предыдущем шаге, сжимаются с помощью библиотеки zlib. При сжатии необходимо следовать спецификации RFC1950 и обеспечить запись zlib header в начало потока со сжатыми данными.

Шаг 3 ( b64_encode_bytes_to_string ) — Байты, полученные на предыдущем шаге, кодируются в формат base64.

Ответ на запрос покупки

Типы транзакций

ТипНазваниеОписание
1PurchaseОдношаговая операция оплаты
2PurchaseОперация авторизации при двухшаговом сценарии платежа
4ReversalОперация отмены
3RefundОперация возврата
8PayoutОперация выплаты (OCT )
0UnknownНеизвестный тип операции

Статусы транзакции

Описание ошибок

Структура ответа с ошибкой

Запрос с ошибкой карточных данных

Запрос с ошибкой (пустой номер транзакции)

Ответ с ошибкой имеет следующую структуру:

ПолеТипОписание
error_codeNumberКод ощибки
error_messageStringОписание ошибки
errorsArray of ObjectsПодробное описание ошибок в параметрах
errors[].fieldStringПараметр запроса, вызвавший ошибку
errors[].messageStringТекстовое описание ошибки

Коды ошибок

Данные для тестирования

Для тестирования операций оплаты используются производственные URL сервисов оплаты.

Тестовые номера карт

Получить номера карт

Для тестирования различных вариантов оплаты и ответов необходимо использовать различные сроки действия карты:

На тестовой среде установлено ограничение на сумму и количество тестовых операций. По умолчанию максимальная сумма тестовых транзакций — 10 рублей. Максимум — 100 транзакций в сутки (учитываются операции за текущие сутки, время по МСК). Учитываются операции с суммой не более установленного лимита.

Источник

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

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