Razorpay TokenHQ, первое в Индии решение для токенизации мультисетевых карт

Токенизация карты с помощью Razorpay

Узнайте, как внедрить функцию сохранения карты, соблюдая новые рекомендации RBI.

Введение

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



Как добавить платежи Razorpay в приложения для Android
Изучите стандартную кассу Razorpay в Androidbetterprogramming.pub



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

Еще несколько месяцев назад платежи, связанные с конфиденциальными данными, такими как данные карты, идентификаторы UPI и т. д., должны храниться только на защищенных и утвержденных серверах платежных шлюзов. Но все изменилось с новым руководством от RBI.

Руководство RBI по токенизации карт запрещает предприятиям, платежным агрегаторам, платежным шлюзам и банкам-эквайерам сохранять данные карт клиентов. Карточные сети и эмитенты карт — единственные стороны, которые теперь могут сохранять данные карт. Это действует с 1 января 2022 года.

Что такое токенизация карты?

Токенизация новой карты — это не что иное, как процесс объединения 16-значного номера карты и номера PAN держателя карты со случайной уникальной 16-значной строкой, не чем иным, как токеном.

Эти токены могут быть сохранены на защищенных серверах платежных шлюзов, таких как Razorpay, вместе с неконфиденциальными данными, такими как последние 4 цифры и информация об истечении срока действия карты. Позже предприятия могут отображать неконфиденциальную информацию для клиентов, и когда они решат заплатить одним из них, Razorpay будет использовать токен для совершения платежа.

Каковы преимущества токенизации карт?

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

Токенизация карты через Razorpay

Большинство предприятий отказываются от стандартного процесса оформления заказа, предлагаемого Razorpay. Если вы один из них, то вам повезло. По умолчанию Razorpay обрабатывает рекомендации RBI, поэтому без изменений продавцы соблюдают новые рекомендации RBI.

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

Без дальнейших задержек, давайте начнем с части кодирования.

Razorpay Авторизация

В следующих разделах мы будем иметь дело в основном с API Razorpay. Таким образом, большинство API-интерфейсов Razorpay следуют базовой реализации Auth, где требуется заголовок авторизации.

Нам нужно закодировать строку Razorpay_key:Razorpay_secret_key в кодировке base64 и передать ее в заголовках вызовов API с префиксом Basic. Это необходимо соблюдать для всех API, которые мы собираемся обсудить в статье.

header.put(“Authorization”, “Basic $base64_encoded_string”)

Создайте клиента на сервере шлюза

Чтобы сохранить детали, сначала нам нужно создать клиента на сервере платежного шлюза, в данном случае это Razorpay. Для создания клиента Razorpay предлагает API, в котором вы можете передать данные о пользователе, такие как имя, адрес электронной почты, номер телефона, пользовательские заметки и т. д. В ответ Razorpay предоставит идентификатор клиента.

POST https://api.razorpay.com/v1/customers
Request body:
{
   "name":"John Dao",
   "contact":"1234567890",
   "email":"[email protected]",
   "fail_existing":"0",
   "gstin":"29XA09A436910PC",
   "notes":{
     "notes_key_1":"Sample notes 1",
     "notes_key_2":"Sample notes 2"
   }
}
Response:
{
  "id" : "cust_1Aa00000001002",
  "entity": "customer",
  "name":"John Dao",
  "contact":"1234567890",
  "email":"[email protected]",
  "fail_existing":"0",
  "gstin":"29XA09A436910PC",
  "notes":{
     "notes_key_1":"Sample notes 1",
     "notes_key_2":"Sample notes 2"
   },
  "created_at ": 1234567590
}

Создать клиента — это простой вызов POST API от Razorpay, который принимает данные клиента в виде объекта JSON и в ответ возвращает все сохраненные данные клиента вместе с идентификатором клиента.

Прежде чем перейти к следующему шагу, я хочу обсудить пару ключ-значение fail_existing, которую мы отправляем в теле запроса. Это необязательное поле с двумя возможными значениями: 0 и 1.

  • 0: Если клиент с такими данными уже существует, извлекается информация о существующем клиенте.
  • 1 (по умолчанию): если клиент с такими данными уже существует, выдается ошибка.

Сохраните карту на кассе

Я разработчик Android, поэтому я решил реализовать функцию карты сохранения через Android SDK, но, честно говоря, это то же самое и для других платформ. Итак, как только пользователь ввел данные карты — номер карты, месяц и год истечения срока действия, имя на карте и CVV, нам нужно продолжить оплату через клиент Razorpay.

До этого, если вы хотите ускорить оформление заказа для клиентов, сохранив данные карты, вам необходимо получить согласие клиента на сохранение карты. Razorpay предлагает для этого два способа: либо продавец может получить согласие, либо предоставить Razorpay возможность справиться с этим при оформлении заказа. Разработчики могут настроить это на панели управления Razorpay.

Как только вы примете согласие на сохранение карты, нам нужно отправить следующую полезную нагрузку клиенту Razorpay для обработки платежа. Полезная нагрузка включает данные карты, детали заказа, идентификатор клиента и флаг сохранения. Взгляни:

Большинство полей, связанных с заказом и данными карты, говорят сами за себя. Но есть одно необычное поле — save, оно имеет два возможных значения: 0 и 1.

  • 1: Razorpay должен сохранять данные карты клиента в виде токенов в карточной сети. Это будет работать только в том случае, если от клиента было получено явное согласие клиента.
  • 0: Razorpay не должен сохранять данные карты.

Переходя к функции sendRequest, здесь мы проверим и заполним поля и обработаем платеж с помощью клиента Razorpay. Взгляни:

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

Это все, если платеж прошел успешно и значение сохранения равно 1, тогда Razorpay получит токен, связанный с картой, и сохранит его на своих серверах вместе с некоторыми основными неконфиденциальными данными.

Получить все токены клиента

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

Для этого Razorpay предлагает GET API для получения всех токенов, связанных с клиентом. Все, что нам нужно, это идентификатор клиента. Взгляни:

GET https://api.razorpay.com/v1/customers/:customer_id/tokens

Ответ:

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

Использование токена для оформления заказа

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

Мы должны передать токен вместо данных карты, таких как номер и срок действия. Теперь, когда запрос доходит до эмитента карты, он извлекает данные карты, сопоставленные с этим токеном, для обработки платежа.Имейте в виду, что пользователю необходимо вручную ввести CVV, либо мы произведем платеж с данные карты или токены.



На данный момент - все. Надеюсь, вы узнали что-то полезное. Спасибо за прочтение.