M-Pesa — приймання платежів Safaricom і оплата на касі (Кенія)
Що це
M-Pesa — мобільні платежі Safaricom. Покупець платить на номер магазину, Safaricom повідомляє ERPJS про платіж, і платіж зʼявляється в реєстрі Платежі M-Pesa сам. На касі касир вибирає цей платіж, а не вводить суму: чек, у якому сума M-Pesa не збігається з вибраними платежами, не проводиться. Усе це є лише у версії ERPJS для Кенії.
Огляд модуля — на сторінці M-Pesa (Safaricom, Кенія).
Передумови: що отримати в Safaricom
- Робочий номер Till («Buy Goods») або Paybill.
- Акаунт розробника Daraja і застосунок у ньому: consumer key і consumer secret — спершу для тестового середовища (Sandbox).
- Для бойового середовища — схвалення Safaricom: лист на бланку компанії, зазвичай 1–3 робочі дні.
- Адреса ERPJS, відкрита з інтернету за
https://: Safaricom повідомляє про платежі лише туди.
Крок 1. Спосіб оплати каси
- У налаштуванні Спосіб оплати заведіть код для M-Pesa, якщо його ще немає.
- У способах оплати каси поставте цей код третім способом оплати. У каси з M-Pesa третій спосіб — лише M-Pesa; інші безготівкові способи ставте другим (термінал) або четвертим.
Крок 2. Обліковий запис M-Pesa
Відкрийте Модулі → M-Pesa → Регістри → Облікові записи M-Pesa і створіть запис.
- «Номер M-Pesa (Till / Paybill)» — 5–7 цифр; «Тип номера» — Till (Buy Goods) або Paybill.
- «Спосіб оплати» — код із кроку 1: за ним каса дізнається, що її третій спосіб — M-Pesa.
- «Середовище Daraja», «Ключ Daraja (consumer key)» і «Секрет Daraja (consumer secret)». Ключі зберігаються зашифрованими: після збереження поле показує маску. Не чіпайте його — ключ лишиться; наберіть новий — він замінить старий; очистіть поле — ключ зітреться під час збереження. Змінили середовище — введіть ключі ще раз. Ключі потрібні лише для кнопки «Зареєструвати адресу в Safaricom»: приймати сповіщення запис може й без них.
Відкритий обліковий запис — один на номер і один на спосіб оплати. Поля й перевірки — на сторінці Облікові записи M-Pesa.
Крок 3. Адреса сповіщень — у Safaricom
Збережіть запис. У меню вікна:
- «Адреса сповіщень» показує адреси, на які Safaricom повідомлятиме про платежі. У них — секрет запису: не пересилайте їх нікому, крім Safaricom.
- «Зареєструвати адресу в Safaricom» передає ці адреси в Safaricom ключами запису. Відкривайте ERPJS за тією адресою, яку бачать з інтернету: саме її й отримає Safaricom. Реєструється збережений запис: змінили номер чи середовище — спершу збережіть. У бойовому середовищі Safaricom зазвичай дозволяє зареєструвати адресу один раз — далі зміни йдуть через Safaricom.
Обидві дії доступні тому, хто має право змінювати облікові записи M-Pesa.
Перевірка: заплатіть на номер невелику суму (у тестовому середовищі — через симулятор Daraja). Платіж має зʼявитися в Платежах M-Pesa за кілька секунд.
Крок 4. На касі
- Проведіть товар у чек.
- Натисніть кнопку третього способу оплати — відкриється вікно «Платіж M-Pesa».
- Наберіть код транзакції з SMS покупця, суму, імʼя платника або (для Paybill) номер рахунку, який він увів, — від двох знаків. У таблиці зʼявляться вільні платежі на номер цієї каси, що надійшли за останню добу; платіж на суму, яка лишилась до сплати, — першим.
- Виберіть платіж і підтвердьте. Код із SMS, набраний повністю, береться одразу.
На чеку під підсумками друкується блок «Оплачено M-Pesa» — код транзакції й сума кожного узятого платежу.
- Прибрати платіж із чека — у тому самому вікні виберіть рядок «Прибрати з чека: …».
- Видалити чек — його платежі знову вільні.
- Платіж, більший за залишок до сплати, каса не візьме: платіж береться цілим, решти з M-Pesa немає.
- Платіж, узятий іншим чеком чи іншою касою, взяти не можна — каса назве номер того чека.
- Платіж на номер іншої каси взяти не можна.
Передоплата клієнта через M-Pesa
Клієнт переказав гроші заздалегідь, а рахунку ще немає (депозит):
- Відкрийте платіж у Платежі M-Pesa і виберіть у меню вікна «Створити платіж клієнта (передоплата)».
- Відкриється новий документ Платежі: спосіб оплати — той, що в облікового запису M-Pesa, один рядок передоплати на всю суму, позначено «Згенерувати № передоп.», у колонці «Код транзакції M-Pesa» — код платежу.
- Виберіть клієнта й збережіть документ.
Після збереження в платежу в «Платежах M-Pesa» заповнена колонка Документ «Платежі» — номер цього документа. Каса й інший документ такий платіж уже не візьмуть. Далі передоплату привʼязують до рахунків як звичайно; одна передоплата може закрити кілька рахунків або лишитися частково на клієнті.
Код можна ввести й вручну в рядку документа «Платежі», якщо спосіб оплати документа — спосіб відкритого облікового запису M-Pesa. Один платіж можна розкласти на кілька рядків одного документа (частина — оплата рахунку, решта — передоплата): код — у кожному рядку, а сума рядків із цим кодом має дорівнювати платежу. Ділити платіж між різними документами не можна.
- Прибрали код із рядка чи видалили непроведений документ — платіж знову вільний.
- Проведений документ зі способом оплати M-Pesa — у кожному рядку код, валюта рядка — базова, а сума рядків за кожним кодом дорівнює сумі платежу. Інакше документ не проведеться.
Якщо сповіщення не прийшло
У покупця є SMS, а в реєстрі платежу немає: отже, Safaricom не зміг достукатися до ERPJS. Менеджер вносить платіж вручну в Платежі M-Pesa — код транзакції, суму, номер. Після цього касир бере його як звичайно. Якщо сповіщення потім усе-таки прийде, другого платежу не буде: ключ платежу — код транзакції.
Номер і суму вносьте точно за випискою Safaricom: каса бачить лише платежі на номери своїх облікових записів, а пізніше сповіщення з тим самим кодом не виправить платіж, внесений вручну.
Перевірки, які ERPJS робить сам
- Повтор сповіщення Safaricom — той самий платіж, а не другий.
- Рахунок із сумою M-Pesa не проводиться, доки сума кожного способу оплати M-Pesa в ньому не дорівнює сумі узятих ним платежів на номери цього способу, — з каси, з вікна рахунку чи через API.
- Платежі M-Pesa — у базовій валюті (KES): рахунок в іншій валюті M-Pesa не оплатити, такий рахунок не проводиться. Перерахунку за курсом немає.
- Платіж від Safaricom не можна видалити й не можна змінити — крім коментаря.
Вимкнути M-Pesa
Закрийте обліковий запис (позначка «Закрито»). Сповіщення на його адресу більше не приймаються, а каса знову приймає суму третього способу з клавіатури, без звірки.
Чого поки немає
- Повернення через M-Pesa. Чек-повернення приймає суму третього способу з клавіатури, як раніше.
- Підбір клієнта за номером рахунку Paybill. Клієнта в документі «Платежі» вибирає бухгалтер.