ApplePayApp
Операция покупки через Apple Pay
Для выполнения платежа с Apple Pay из приложения, необходимо сначала отправить запрос Валидация мерчанта и создание заказа, а затем отправить запрос Подтверждение платежа Apple Pay.
Валидация мерчанта и создание заказа (api/apple/validate)
Production url: https://****.procard-ltd.com/api/apple/validate
POST параметры:
Параметр | Тип | Описание | Значение |
---|---|---|---|
operation | String | Тип операции | Purchase |
merchant_id | String | ID мерчанта, выдается процесcингом | |
amount | Float | Сумма операции. Пример 500.00 | |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. | |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, currency_iso, description разделенных “;” (точка с запятой) в кодировке UTF-8. | |||
Порядок параметров при конкатенации важен! | |||
order_id | String | Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку. | |
currency_iso | String | Валюта платежа | UAH |
description | String | Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах | |
add_params | Array | Массив с дополнительными параметрами. Дополнительные параметры потом возвращаются мерчанту в callback вызове | |
callback_url | String | URL на который придет информация о результате выполнения платежа |
В ответ приходят следующие параметры:
Параметр | Тип | Описание |
---|---|---|
order_key | String | Идентификатор заказа в платежной системе |
code | Integer | Код ответа (0 - успех) |
message | String | Расшифровка кода ответа |
Подтверждение платежа Apple Pay (api/apple/payment)
Production url: https://****.procard-ltd.com/api/apple/payment
Система сама определяет по какому пути идет аутентификация с 3DS
или без, в зависимости от данных полученных от Apple.
POST параметры:
Название | Тип | Описание |
---|---|---|
order_key | String | Идентификатор заказа в платежной системе |
apple_pay_payment_data | String | Данные токена Apple Pay, закодированные в base64 |
apple_pay_payment_data_decrypted | String | Параметр передается вместо apple_pay_payment_data , если используется оплата с расшифрованным токеном. Данные токена Apple Pay, закодированные в base64 |
В ответ приходит:
Параметр | Тип | Описание | Значения |
---|---|---|---|
transactionStatus | String | Статус операции | Approved - Успешно Declined - Отказ |
reason | String | Текстовая причина отказа | |
reasonCode | String | Код ошибки при отказе | |
rrn | String | Уникальный идентификатор банковской транзакции |
После вызова этого метода приходит callback
в backend торговца.
Пример запроса на оплату с расшифрованным токеном:
{
"order_key": "9910ae2538be76b828f63a08f14ddf4a267d5148713cb2bb2742848fd622cfd266d86cab7f44b",
"apple_pay_payment_data_decrypted": "ewoiYXBwbGljYXRpb25QcmltYXJ5QWNjb3VudE51bWJlciI6ICI0MDEyMDAwMDAwMDAzMTE5IiwKImFwcGxpY2F0aW9uRXhwaXJhdGlvbkRhdGUiOiAiMjgxMTMwIiwKImN1cnJlbmN5Q29kZSI6ICI5ODAiLAoidHJhbnNhY3Rpb25BbW91bnQiOiAxMDAwMCwKImRldmljZU1hbnVmYWN0dXJlcklkZW50aWZpZXIiOiAiMDQwMDEwMDMwMjczIiwKInBheW1lbnREYXRhVHlwZSI6ICIzRFNlY3VyZSIsCiJwYXltZW50RGF0YSI6ewoib25saW5lUGF5bWVudENyeXB0b2dyYW0iOiIxMjMiLAoiZWNpSW5kaWNhdG9yIjoiNSIKfQp9Cg=="
}
Структура расшифрованного токена:
Параметр | Тип | Описание |
---|---|---|
applicationPrimaryAccountNumber | String | Токенизированный номер карты |
applicationExpirationDate | String | Дата окончания срока действия карты (формат YYMMDD) |
currencyCode | String | Валюта платежа |
transactionAmount | Float | Сумма транзакции. Пример 500.00 |
deviceManufacturerIdentifier | String | Уникальный идентификатор производителя устройства |
paymentDataType | String | Тип платежных данных |
paymentData | ||
onlinePaymentCryptogram | String | Криптограмма для безопасных онлайн-транзакций |
eciIndicator | String | Индикатор электронной торговли, показывает уровень безопасности транзакции |
Пример расшифрованного токена:
{
"applicationPrimaryAccountNumber": "4012000000003119",
"applicationExpirationDate": "281130",
"currencyCode": "980",
"transactionAmount": 10000,
"deviceManufacturerIdentifier": "040010030273",
"paymentDataType": "3DSecure",
"paymentData": {
"onlinePaymentCryptogram": "123",
"eciIndicator": "5"
}
}