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 | ID мерчанта, выдается процесcингом | String | |
amount | Сумма операции. Пример 500.00 | Float | |
signature | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. | String | |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, currency_iso, description разделенных “;” (точка с запятой) в кодировке UTF-8. | |||
Порядок параметров при конкатенации важен! | |||
order_id | Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку. | String | |
currency_iso | Валюта платежа | String | UAH |
description | Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах | String | |
add_params | Массив с дополнительными параметрами. Дополнительные параметры потом возвращаются мерчанту в callback вызове | Array | |
callback_url | URL на который придет информация о результате выполнения платежа | String |
В ответ приходят следующие параметры:
Параметр | Описание | Тип |
---|---|---|
order_key | Идентификатор заказа в платежной системе | String |
code | Код ответа (0 - успех) | Integer |
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 | Данные токена Apple Pay, закодированные в base64 | String |
apple_pay_payment_data_decrypted | Параметр передается вместо apple_pay_payment_data , если используется оплата с расшифрованным токеном. Данные токена Apple Pay, закодированные в base64 | String |
В ответ приходит:
Параметр | Описание | Тип | Значения |
---|---|---|---|
transactionStatus | Статус операции | String | Approved - Успешно Declined - Отказ |
reason | Текстовая причина отказа | String | |
reasonCode | Код ошибки при отказе | String |
После вызова этого метода приходит callback
в backend торговца.
Пример запроса на оплату с расшифрованным токеном:
{
"order_key": "9910ae2538be76b828f63a08f14ddf4a267d5148713cb2bb2742848fd622cfd266d86cab7f44b",
"apple_pay_payment_data_decrypted": "ewoiYXBwbGljYXRpb25QcmltYXJ5QWNjb3VudE51bWJlciI6ICI0MDEyMDAwMDAwMDAzMTE5IiwKImFwcGxpY2F0aW9uRXhwaXJhdGlvbkRhdGUiOiAiMjgxMTMwIiwKImN1cnJlbmN5Q29kZSI6ICI5ODAiLAoidHJhbnNhY3Rpb25BbW91bnQiOiAxMDAwMCwKImRldmljZU1hbnVmYWN0dXJlcklkZW50aWZpZXIiOiAiMDQwMDEwMDMwMjczIiwKInBheW1lbnREYXRhVHlwZSI6ICIzRFNlY3VyZSIsCiJwYXltZW50RGF0YSI6ewoib25saW5lUGF5bWVudENyeXB0b2dyYW0iOiIxMjMiLAoiZWNpSW5kaWNhdG9yIjoiNSIKfQp9Cg=="
}
Структура расшифрованного токена:
Параметр | Описание | Тип |
---|---|---|
applicationPrimaryAccountNumber | Токенизированный номер карты | String |
applicationExpirationDate | Дата окончания срока действия карты (формат YYMMDD) | String |
currencyCode | Валюта платежа | String |
transactionAmount | Сумма транзакции. Пример 500.00 | Float |
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"
}
}