Skip to content
Краткое описание как подружить Apple Pay Button + Tinkoff Bank
Python JavaScript HTML CSS
Branch: master
Clone or download
Pull request Compare This branch is 1 commit ahead of mamashin:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
img
src
README.md
Tinkoff_ApplePay.pdf

README.md

Tinkoff Bank + Apple Pay Button (WEB version)

Очень краткое руководство по тому как настроить оплату на web сайте через кнопку Apple Pay (именно сайте, не мобильном приложении!), вот так или примерно так должно получится.

У нас все это работает на Python + Django, поэтому примеры для понимания сути вопроса будут именно на нем, точнее даже не примеры, а просто куски кода из нашего биллинга, они не рабочие, не предназначены для копи-пасты, а лишь должны помочь вам понять в каком напралении двигаться при реализации вашего проекта, что-то подобного мне очень не хватало на этапе настройки :)

На состояние начала 2019 года подробной информации о том, как реализовать кнопку Apple Pay у себя на сайте крайне мало, есть только документации от платежных сервисов типа Яндекса или CloudPayments - все описание которого сводится к банальному - вжуух и магия но, что нужно конкретно сделать, что-бы пройти верификацию перед платежём описано крайне туманно. Да и сама документация от Apple тот еще пазл - как-то кусками все разбили, и собрать в голове весь алгоритм прохождения платежа не так просто.

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

Схема запуска примерно такая:

  • Регистрируемся в Apple как developer, да 99$ в год, но без этого никак. Можно как частное лицо, по крайне мере для кнопки Apple Pay этого будет достаточно
  • Заходим в личный кабинет, дальше в сертификаты и MerchantIDs
  • Создаем уникальное имя, например merchant.ru.tinkoff.oplata.1496667497923 (оно нам будет нужно)
  • Внутри этого ID нам нужно сделать минимум три вещи:
    • Создать Apple Pay Payment Processing Certificate, в этом нам поможет личный кабинет Тинькова, грубо говоря с помощью этого сертификата Apple шифрует все платежи, а Тиньков их расшифровывает, что там внутри - мы не знаем :)
    • Создать Apple Pay Merchant Identity Certificate - он нужен для нашей идентификации, именно с его помощью мы делаем запросы на сервера Apple и если с ним что-то не так - кина не будет
    • Добавить домены на которые мы планируем поставить конпку, их может быть несколько, каждый домен нужно верифицировать, верификация предельно проста - Apple дает вам вайл и url по которому он хочет его найти, вы идете в конфигурацию Nginx (или что там у вас) и прописывайте его как вам удобно

в итоге в личном кабинете Apple у вас примерно должна быть такая картина

Первая часть о том, как все сделать на стороне Apple довольно подробно описана в ИНСТРУКЦИЯ ПО ПОДКЛЮЧЕНИЮ APPLEPAY WEB от 03.09.2018 которую мне прислал Тиньков, единственный момент на этом этапе - нужно сделать экспорт Apple Pay Merchant Identity Certificate, который мы сгенерили в связке ключей, в формат p12, затем из этого p12 нужно сделать то, что мы подсунем утилите requests :

openssl pkcs12 -in merchant_id.p12 -out merchant_id.pem -nodes

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

req = requests.post(validationurl, json=merchant_msg, cert=ca)

где ca это файл с pem сертификатом, подробней об этом можно увидеть в коде.

На вторую часть документации от Тинькова лучше не смотреть, это больше похоже на какой-то драфт, не для публичного использования, но тем не менее финальный запрос там описан почти верно :) Еще такой момент - на данный момент времени (февраль 2019 года), что-бы вся эта история заработала, ваш тип подключения терминала в личном кабинете Тиньков должен быть настроен как мобильное приложение, обещали сделать это и на типе подключения API но пока только так. Короче, смотрите кусочки кода, я постарался максимально подробно прокомментировать там важные моменты.

Будут вопросы - пишите на мыло nick@sochi-online.com или сюда на GitHub.

p.s. Все, что тут описано - является только моим личным опытом, и не как не претендует на истину в последней инстанции, возможно тут куча ошибок и нубства, но это наш опыт - на данный момент он такой :)

You can’t perform that action at this time.