Оплата кошика


Метод

Array payCart( array $request );

Запит

Поля Тип Опис Статус
cart_guid String Ідентифікатор кошика Обов'язково
card Array Інформація про карту з гаманців Masterpass, Google Pay, Apple Pay містить ключі: masterpass_uid, masterpass_alias, masterpass_msisdn, masterpass_mask, google_pay_token, apple_pay_token, tokly_token, tokly_mch_id, tokly_token_type Обов'язковий якщо тип Агента acquiring
aml Array AML поля, наприклад {"sender_fio":""} Опціональний
У разі оплати через Google Pay, при створенні токена, необхідно у параметрі gatewayMerchantId передавати значення partner.id, у параметрі gateway передавати значення ipayua. tokly_token - токен, створений по апі tokly.При подачі токена tokly_token обов'язково подавати tokly_mch_id.
Параметри google_pay_token та apple_pay_token перед відправкою мають бути закодовані у форматі Base64.

Відповідь

Поля Тип Опис Статус
status String Статус кошика:
0 - Створений кошик, оплата не подавалася
1 - Було створено платіж
4 - Неуспіх
5 - Успіх
9 - Скасування (платіж скасовано)
10 - Очікування додаткових даних для верифікації

Статуси 4, 5 та 9 є фінальними

pid_id String id платежу
cart_guid String Ідентифікатор кошика
external_pmt_id String Ідентифікатор платежу у системі партнера
invoice String Вартість послуги в Копійках
amount String Вартість послуги з комісією у Копійках
fee Array Комісія послуги у Копійках у розрізі за типами: зовнішня, внутрішня та агентська компенсація
cartItems Array Перелік послуг у кошику
security_rate String Рівень безпеки: 0D, 3D
security_data Array Дані для 3D містить поля version, redirect_url

У разі отримання статусу 10 необхідно запитати поля AML, заповнити їх та повторно надіслати запит на оплату

Метод 1: Виклик методу PHP

Запит

$response = $api->payCart([
                    'cart_guid' => E80F563B-78CB-48CD-84E2-C0EE7E53711F,
                ]);

Відповідь

Array
(
    [response] => Array
        (
            [status] => 5
            [pid_id] => 12040557
            [cart_guid] => E80F563B-78CB-48CD-84E2-C0EE7E53711F
            [invoice] => 3
            [amount] => 203
            [fee] => Array
                (
                    [external] => 200
                    [internal] => 0
                    [agent_compensation] => 0
                )
            [cartItems] => Array
                (
                    [0] => Array
                        (
                            [bill_id] => 541
                            [invoice] => 1
                            [amount] => 101
                            [fee]  => Array
                                (
                                    [external] => 100
                                    [internal] => 0
                                    [agent_compensation] => 0
                                )
                            [desc] => Номер телефона: +380685980460; Сумма: 0,01 грн.
                            [bill_flields] => Array
                                (
                                    [step_1] => Array
                                        (
                                            [acc] => +380685980460
                                            [invoice] => 1
                                        )
                                )
                        )
                    [1] => Array
                        (
                            [bill_id] => 541
                            [invoice] => 2
                            [amount] => 102
                            [fee] => Array
                                (
                                    [external] => 100
                                    [internal] => 0
                                    [agent_compensation] => 0
                                )
                            [desc] => Номер телефона: +380685980460; Сумма: 0,02 грн.
                            [bill_flields] => Array
                                (
                                    [step_1] => Array
                                        (
                                            [acc] => +380685980460
                                            [invoice] => 2
                                        )
                                )
                        )
                )
        )
)

Метод 2: Використання запиту на URL

https://www.ipay.ua/shina/cart/pay

Запит

{
    "request":{
        "app_id":"auto_test",
        "sig":"b52c4f35afbfa18aeed04bb6f1d289fe",
        "time":"2016-06-14 16:56:49",
        "cart_guid":"3360B667-4586-4D6D-AA1E-6B958B34F6E6"
    }
}

Відповідь

{
    "response":{
        "status":"5",
        "pid_id":"12590249",
        "cart_guid":"3360B667-4586-4D6D-AA1E-6B958B34F6E6",
        "invoice":100,
        "amount":100,
        "cartItems":[
            {
                "bill_id":541,
                "invoice":100,
                "amount":100,
                "fee":{
                    "external":0,
                    "internal":0,
                    "agent_compensation":0
                }
                "desc":"Номер телефона: 0685980460; Сумма: 1,00 грн.",
                "values":{
                    "step_1":{
                        "acc":"0685980460",
                        "invoice":1
                    }
                }
            }
        ]
    }
}