Валідація послуги перед платежем


Метод

Array getBillValidate( array $request );

Запит

Поле Тип Опис Статус
bill_id Integer Унікальний ідентифікатор послуги Обов'язковий
step Integer Ідентифікатор кроку сервісу Опціональний
values Array Масив полів, що відправляються на перевірку Обов'язковий
lang String ua - Українська
en - Англійська
ru - Російська
Опціональний

Масив полів values для кроку №1 (приклад)

Поле Тип Опис Статус
acc String Ідентифікатор клієнта Обов'язковий
invoice Float Сума оплати в грн Обов'язковий

Відповідь

Поля Тип Опис Статус
step String nextstep - Потрібна валідація наступного кроку
gotopay - Валідацію пройдено успішно

Ошибки

Ключ Опис
acc Клієнта не знайдено
bill_id Послугу bill_id = $bill_id не знайдено
bill_id Поле bill_id порожнє
values Поле values порожнє

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

Запит

$response = $api->getBillValidate( [
                        'bill_id' => 541,
                        'step' => 1,
                        'values' => [
                            'acc' => '+380 (68) 333 33 33',
                            'invoice' => '50'
                        ] );

Ответ Правильный

Array
(
    [response] => Array
        (
            [step] => gotopay
            [acc] => 0683333333
            [invoice] => 50
        )

)

Ответ с errors

Array
(
    [errors] => Array
        (
            [acc] => Клієнта не знайдено
        )

)

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

https://www.ipay.ua/shina/bill/validate

Запит

{
    "request":{
        "app_id":"auto_test",
        "sig":"03221e365316dc1f8b3482d194c7d1cf",
        "time":"2016-06-14 16:56:46",
        "bill_id":541,
        "step":1,
        "values":{
            "acc":"0685980460",
            "invoice":"1"
        }
    }
}

Відповідь

{
    "response":{
        "step":"gotopay",
        "acc":"0685980460",
        "invoice":"1"
    }
}

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

https://www.ipay.ua/shina/bill/validate

Запит

{
    "request":{
        "app_id":"auto_test",
        "sig":"03221e365316dc1f8b3482d194c7d1cf",
        "time":"2016-06-14 16:56:46",
        "bill_id":541,
        "step":1,
        "values":{
            "acc":"0635980460",
            "invoice":"1"
        }
    }
}

Відповідь

{
    "errors":{
        "acc":"Клієнта не знайдено"
    }

}

Приклад даних щодо послуг

Array
(
    [step] => nextstep
    [acc] => 000001
    [phone] => +380 (67) 111 11 11
    [year] => 2017
    [month] => 9
    [customData] => Array
        (
            [info] => Array
                (
                    [Особовий рахунок] => 00001
                    [Адреса] => БУЧМИ А. Б-Р.
                    [Період] => Вересень 2017 р.
                )

            [services] => Array
                (
                    [0] => Array
                        (
                            [id] => 122
                            [info] => Array
                                (
                                    [title] => ПрАТ АК Київводоканал. ЦЕНТРАЛІЗОВАНЕ ВОДОВІДВЕДЕННЯ ГАРЯЧОЇ ВОДИ ЛІЧИЛЬНИК
                                )

                            [calculation] => Array
                                (
                                    [info] => Array
                                        (
                                            [counted] => 21.33
                                            [debt] => 0
                                        )

                                    [fields] => Array
                                        (
                                        )

                                )

                            [counters] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 0
                                            [info] => Array
                                                (
                                                    [title] => 
                                                )

                                            [fields] => Array
                                                (
                                                    [currentValue] => Array
                                                        (
                                                            [name] => [service][122][counter][0][currentValue]
                                                            [value] => 
                                                        )

                                                    [oldValue] => Array
                                                        (
                                                            [name] => [service][122][counter][0][oldValue]
                                                            [value] => 26.1
                                                        )

                                                    [diff] => Array
                                                        (
                                                            [name] => [service][122][counter][0][diff]
                                                            [value] => 
                                                        )

                                                    [tariff] => Array
                                                        (
                                                            [name] => [service][122][counter][0][tariff]
                                                            [value] => 7.36
                                                        )

                                                    [total] => Array
                                                        (
                                                            [name] => [service][122][counter][0][total]
                                                            [value] => 
                                                        )

                                                )

                                        )

                                )

                            [fields] => Array
                                (
                                    [invoice] => Array
                                        (
                                            [name] => [service][122][invoice]
                                            [value] => 0
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [id] => 126
                            [info] => Array
                                (
                                    [title] => ПрАТ АК Київводоканал. ЦЕНТРАЛІЗОВАНЕ ПОСТАЧАННЯ ХОЛОДНОЇ ВОДИ ТА ВОДОВІДВЕДЕННЯ ЛІЧИЛЬНИК
                                )

                            [calculation] => Array
                                (
                                    [info] => Array
                                        (
                                            [overpayment] => 7.9
                                            [debt] => 0
                                        )

                                    [fields] => Array
                                        (
                                        )

                                )

                            [counters] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 0
                                            [info] => Array
                                                (
                                                    [title] => 
                                                )

                                            [fields] => Array
                                                (
                                                    [currentValue] => Array
                                                        (
                                                            [name] => [service][126][counter][0][currentValue]
                                                            [value] => 
                                                        )

                                                    [oldValue] => Array
                                                        (
                                                            [name] => [service][126][counter][0][oldValue]
                                                            [value] => 4.5
                                                        )

                                                    [diff] => Array
                                                        (
                                                            [name] => [service][126][counter][0][diff]
                                                            [value] => 
                                                        )

                                                    [tariff] => Array
                                                        (
                                                            [name] => [service][126][counter][0][tariff]
                                                            [value] => 15.79
                                                        )

                                                    [total] => Array
                                                        (
                                                            [name] => [service][126][counter][0][total]
                                                            [value] => 
                                                        )

                                                )

                                        )

                                )

                            [fields] => Array
                                (
                                    [invoice] => Array
                                        (
                                            [name] => [service][126][invoice]
                                            [value] => 0
                                        )

                                )

                        )

                )

        )

)

Опис полів:

Найменування поля Опис
customData Блок з інформацією для користувача та переліком доступних йому послуг
customData -> info Інформація для користувача
customData -> services Перелік доступних послуг
services -> id Ідентифікатор послуги
services -> info Інформація про послугу
services -> info -> title Найменування послуги
services -> calculation -> info Інформація по рахунку
services -> calculation -> info -> debt Борг за послугою
services -> calculation -> info -> counted Нараховано за послугою
services -> calculation -> info -> overpayment Переплата за послугою
services -> calculation -> fields Поля рахунку, наприклад субсидія, компенсація, переплата
services -> fields -> invoice Разом за послугою
services -> counters Лічильники
services -> counters -> id Ідентифікатор лічильника
services -> counters -> info -> title Найменування лічильника
counters -> fields -> currentValue Поточне значення
counters -> fields -> oldValue Попереднє значення
counters -> fields -> diff Різниця між поточним та попереднім значеннями
counters -> fields -> tariff Тариф за лічильником
counters -> fields -> total Вартість послуги по лічильнику, добуток різниці на тариф

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

Запит

$response = $api->getBillValidate( [
                        'bill_id' => 2061,
                        'step' => 2,
                        'values' => [
                            'step_1' => [
                                'acc' => '1111111111',
                                'fio' => 'ФИО'
                            ],
                            'step_2' => [
                                'invoice' => '12.02',
                                'service' => [
                                    0 => [
                                        'counter' => [
                                            0 => [
                                                'currentValue' => '5050',
                                                'oldValue' => '5048',
                                                'diff' => '2',
                                                'tariff' => '5.51',
                                                'total' => '11.02',
                                            ],
                                        ],
                                        'invoice' => '11.02',
                                    ],
                                    1 => [
                                        'invoice' => '1.00',
                                    ]
                                ]
                            ]
                        ] );
                

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

https://www.ipay.ua/shina/bill/validate

Запит

{
    "request":{
        "app_id":"auto_test",
        "sig":"03221e365316dc1f8b3482d194c7d1cf",
        "time":"2016-06-14 16:56:46",
        "bill_id":653,
        "step":2,
        "values":{
            "step_1":{
                "acc":"789789",
                "fio":"ФИО"
            },
            "step_2":{
                "invoice":"1"
            }
        }
    }
}