Skip to content

Краткое описание как подружить Apple Pay Button + Tinkoff Bank

Notifications You must be signed in to change notification settings

mamashin/TinkoffWebApplePay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

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 сертификатом, подробней об этом можно увидеть в коде.

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

Будут вопросы - пишите на мыло [email protected] или сюда на GitHub.

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

About

Краткое описание как подружить Apple Pay Button + Tinkoff Bank

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages