API CashDesk Mobile
Метод використовується для інтеграції мобільного додатка з Програмним ПРРО CashDesk за допомогою виклику Intent.
Запит виконується методом POST у форматі JSON.
Налаштування
Щоб мати можливість викликати додаток, потрібно додати наступний запис до файлу AndroidManifest.xml:
<queries>
<package android:name="ua.cashdesk.web" />
</queries>
Мобільний додаток повинен використовувати об'єкт Intent для передачі даних у Касу наступним чином:
//Java
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("ua.cashdesk.web");
if (launchIntent != null) {
launchIntent.setFlags(0);
try {
launchIntent.putExtra("num_fiscal", "5*********");
launchIntent.putExtra("action_type", "status");
activityLauncher.launch(launchIntent);
} catch (JSONException e) {
e.printStackTrace();
}
}
Важливо
Ваш мобільний додаток має бути готовим до наступних ситуацій:
- Відсутність відповіді від додатку Каса
- Повернення відповіді null
- Отримання відповіді від системи Android
Таким чином, на стороні вашого додатку повинна бути підтримана обробка всіх неочікуваних ситуацій при отриманні відповіді на Intent, наприклад:
//Java
ActivityResultLauncher<Intent> activityLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if(result.getResultCode() == Activity.RESULT_OK){
Intent data = result.getData();
if(data!=null){
String a = data.getStringExtra("response_status");
if(a != null){
if(!a.isEmpty()){
//Main parse logic
} else {
//Message that operation processed successful.
}
} else {
//Message that operation processed successful.
}
} else {
//Message that operation processed successful.
}
} else {
//Message that operation processed successful.
}
});
Приклад результату (більшість викликів Intent: open_shift, service_input, service_output, sale, return_sale, z_report)
| Ім'я | Тип | Опис |
|---|---|---|
| version | string | Версія API |
| response_status | string | Статус відповіді:
|
| ORDERDATE | string | Дата створення документа |
| ORDERNUM | string | Номер документа |
| ORDERTIME | string | Час створення документа |
| text_print | string | Дані для друку |
Відповідь:
version: "1.1",
response_status: "OK",
ORDERDATE: "2025-01-13",
ORDERNUM: "DEV_6784e5659b415",
ORDERTIME: "12:05:25",
text_print: "ICAgICAgICAgINCi0JXQo....",
Запит "Виклик статусу"
Параметри запиту
| Ім'я | Тип | Обов'язковий | Опис |
|---|---|---|---|
| action_type | string | Так | Тип операції, що виконується Можливі значення:
|
| num_fiscal | string | Так | Фіскальний номер пристрою або каси |
Приклад запиту
Запит:
action_type: 'status',
num_fiscal: "500*******"
Пара метри відповіді
| Ім'я | Тип | Опис |
|---|---|---|
| version | string | Версія API відповіді |
| response_status | string | Статус відповіді:
|
| num_fiscal | string | Фіскальний номер каси |
| org_name | string | Назва організації, до якої прив'язана каса |
| address | string | Юридична або фактична адреса організації |
| ipn | string | Реєстраційний номер облікової картки платника податків |
| tin | string | Ідентифікаційний номер платника податків |
| name | string | Назва касового апарата або точки продажу |