/
Оплата по сохраненной карте

Оплата по сохраненной карте

Пример реализации у нас:

Для возможности оплаты по сохраненной карте необходимо в метод Авторизация платежа передать параметры SaveCard = true и ExternalId = null.

В ответе метода Авторизация платежа прийдет поле ExternalId со значением. Значение из поля ExternalId необходимо сохранить в вашей системе.

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

Если сохранять карту не нужно, то в метод Авторизация платежа передать параметры SaveCard = false и ExternalId = null.

Для получения информации по ранее сохраненной карте необходимо в запрос GET payment/cards передать значение ExternalId. Если для ExternalId у нас есть данные, то мы вернем следующие данные:

{ "data": [ { "cardId": "9BBEF19476623CA56C17DA75FD57734DBF82530686043A6E491C6D71BEFE8F6E", "firstSix": "411111", "lastFour": "1111", "cardMask": "4111 11****** 1111", "cardType": "Visa" } ], "succeed": true, "statusCode": 0, "errors": [ "string" ], "validationErrors": { "additionalProp1": [ "string" ] }

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

После выбора карты необходимо запросить у платящего ввод cvv кода

и сгенерировать криптограмму используя метод Создание криптограммы.

Для создания криптограммы требуется передать publicId из метода Получение publicId, а также cvv введенный платящим:

var checkout = new cp.Checkout( "publicId", document.getElementById("paymentForm"), mode: "cvv" );

После того, как криптограмма успешно сформирована, мы передаем ее в метод POST /payment/partner/auth/saved-card

Запрос:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

cardholderName

String

Да

Уникальный идентификатор страницы оплаты получателя

amount

Integer

Да

Сумма платежа

feeFromPayer

Boolean

Да

Комиссия с платящего, значения true и false

currency

String

Да

Валюта платежа, константа RUB

name

String

Нет

Имя платящего

comment

String

Нет

Комментарий платящего

layoutId

String

Да

Уникальный идентификатор страницы оплаты получателя

ipSource

String

Да

IP адрес плательщика

invoiceId

String

Нет

Внешний идентификатор партнера, например внутренний номер заказа

payerEmail

String

Нет

email платящего

receiverSubscriptionSettingId

String

Нет

Не используется

payerPhoneNumber

String

Нет

Телефон платящего

payerCity

String

Нет

Город платящего

rating

 

Нет

Компоненты рейтинга

score

Integer

Нет

Оценка, значение от 0 до 5

selectedComponents

Array of string

Нет

Выбранные компоненты полученные при запросе данных Страницы оплаты, передается список id выбранных компонентов

externalId

String

Да

Уникальный идентификатор платящего

CvvCryptogramPacket

String

Да

Cvv криптограммы

cardId

String

Да

Уникальный идентификатор карты

Пример запроса:

{ "cardholderName": "string", "amount": 0, "feeFromPayer": true, "currency": "string", "name": "string", "comment": "string", "layoutId": "string", "invoiceId": "string", "ipSource" : "string", "payerEmail": "user@example.com", "receiverSubscriptionSettingId": "string", "payerPhoneNumber": "string", "payerCity": "string", "rating": { "score": 0, "selectedComponents": [ "string" ] }, "externalId": "string", "cardId": "string", "cvvCryptogramPacket": "string" }

Ответ:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

transactionId

String

Да

Уникальный идентификатор оплаты

md

String

Да

 

paReq

String

Да

 

acsUrl

String

Да

URL банка для прохождения 3DS

message

String

Да

Текстовый статус платежа

statusCode

String

Да

Статус код платежа

cardToken

String

Да

Токен карты платящего

partnerRedirectUrl

String

Да

URL редиректа на страницу партнера

cardIssuerBankCountry

String

Да

Страна банка эмитента карты

cardLastFour

String

Да

Последние 4 цифры карты

cardExpDate

String

Да

Дата окончания действия карты

issuerCode

String

Да

Код эмитента

succeed

Boolean

Да

Стату запроса, значение true и false

errors

Array of string

Да

Возвращатеся список ошибок, относящихся целиком к запросу

validationErrors

Array of string

Да

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

Пример ответа:

{ "data": { "transactionId": 0, "md": "string", "paReq": "string", "acsUrl": "string", "message": "string", "statusCode": "string", "cardToken": "string", "partnerRedirectUrl": "string", "cardIssuerBankCountry": "string", "cardLastFour": "string", "cardExpDate": "string", "issuerCode": "string" }, "succeed": true, "statusCode": 0, "errors": [ "string" ], "validationErrors": { "additionalProp1": [ "string" ], "additionalProp2": [ "string" ], "additionalProp3": [ "string" ] } }

Далее необходимо вызвать методы Обработка 3-D Secure и Завершение оплаты.

Более подробно процесс оплаты описана в Оплата по карте.

Related content