Оплата
- Пользователь вводит сумму и номер своего кошелька Mpesa.
- На телефон пользователя приходит пуш-уведомление с запросом на оплату.
- Пользователь подтверждает оплату.
- Paykassma отправляет постбек на сторону мерчанта.
- Средства начисляются на баланс пользователя на платформе мерчанта.
Интеграция через платежное окно (plugin)
Пример ссылки на открытие платежного окна Mpesa:
https://plugin.{ URL сервера }/? label =label& currency_code =KES& lang =en& wallet_type =mpesa &custom_transaction_id=custom_transaction_id &payment_url_fail_id=1 |
---|
wallet_type=mpesa currency_code=KES Доступные языки (lang): en, ur (Урду)
Обратите внимание на описание параметров payment_url_success_id / payment_url_fail_id / payment_url_pending_id и success_url / fail_url / pending_url
Для использования payment_url_success_id / payment_url_fail_id / payment_url_pending_id необходимо передать URL'ы саппорту Paykassma, и использовать полученные ID в параметрах.
Для использования success_url / fail_url / pending_url необходимо использовать хеширование URL'ов (подробнее про хеширование см. здесь).
Описание всех параметров плагина смотрите здесь.
Интеграция через клиентский API
Создание платежа
URL: http://api.{ URL сервера }/api/v1/payment/create/mpesa?secret={ pluginapi_secret }
Request method:
POST
Format:
JSON
Parameters:
Name | Type | Required | Description |
secret | string | yes | Ключ доступа |
Body:
Name | Type | Required | Max Length | Description |
amount | float | yes | ограничена min и max. | Сумма платежа |
phone_number | string | yes | 12 | MSISDN (12-значный номер мобильного телефона), например 254XXXXXXXXX. |
currency | string | yes | 3 | Код валюты |
label | string | yes | 190 | Это уникальный идентификатор (ID) пользователя, осуществляющего платеж. |
custom_transaction_id | string | yes | 190 | Идентификатор транзакции в системе Клиента. Должен быть уникальным. |
{ "amount": 1000, "phone_number": "254712344321", "currency": "KES", "label": "test", "custom_transaction_id": "01abc0095689" }
{ "status": "ok", "data": { "order_id": "e5c0637c10d326f7", "message": "Success. Request accepted for processing" } }
{ 'status': 'fail' 'message': 'MESSAGE' }
Постбек депозита
Общую документацию по постбекам смотрите здесь.
Пример постбека на депозит Mpesa
{ "signature": "942c4322170f68bb7939050d892f2437d62d9e79", "wallet_type": "mpesa", "amount": 3000, "currency_code": "KES", "label": "1507315922", "converted_amount": { "USD": 20.34, "INR": 1694, "EUR": 19.24, "IDR": 315099.01, "MYR": 95.39, "VND": 495945.99, "SGD": 27.83, "THB": 739.92, "NGN": 15855.07, "TRY": 555.09, "AED": 74.7, "CAD": 27.49, "AUD": 31.79, "BDT": 2242.53, "AFN": 1587.43, "ALL": 2040.8, "AMD": 7883.01, "AOA": 16850.25, "ARS": 7118.43, "AWG": 36.66, "AZN": 34.58, "BAM": 37.54, "BBD": 40.68, "BGN": 37.64, "BHD": 7.67, "BIF": 57735.18, "BMD": 20.34, "BND": 27.82, "BOB": 140.54, "BRL": 101.45, "BSD": 20.34, "BTC": 0.00077816, "BTN": 1692.31, "BWP": 278.61, "BYN": 51.34, "BZD": 41, "CDF": 50602.47, "CHF": 18.62, "CLF": 0.67, "CLP": 18363.25, "CNH": 148.71, "CNY": 148.71, "COP": 82715.9, "CRC": 10952.3, "CUC": 20.34, "CUP": 523.72, "CVE": 2121.25, "CZK": 469.95, "DJF": 3621.57, "DKK": 143.48, "DOP": 1153.84, "DZD": 2794.36, "EGP": 628.85, "ERN": 305.08, "ETB": 1124.53, "FJD": 46.09, "FKP": 16.72, "GBP": 16.72, "GEL": 54.3, "GGP": 16.72, "GHS": 234.81, "GIP": 16.72, "GMD": 1323.04, "GNF": 175189.88, "GTQ": 159.85, "GYD": 4255.11, "HKD": 159.08, "HNL": 504.3, "HRK": 144.96, "HTG": 2735.62, "HUF": 7513.95, "ILS": 77.82, "IMP": 16.72, "IQD": 26639.37, "IRR": 859311.93, "ISK": 2791.7, "JEP": 16.72, "JMD": 3142.77, "JOD": 14.44, "JPY": 3031.35, "KES": 3000, "KGS": 1804.25, "KHR": 83754.5, "KMF": 9476.84, "KPW": 18304.87, "KRW": 27540.77, "KWD": 6.29, "KYD": 16.95, "KZT": 9753.57, "LAK": 409713.54, "LBP": 306020.24, "LKR": 6591.09, "LRD": 3793.18, "LSL": 386.85, "LYD": 99.2, "MAD": 208.75, "MDL": 369.46, "MGA": 92115.21, "MKD": 1183.98, "MMK": 42712.38, "MNT": 70168.67, "MOP": 163.84, "MRO": 0, "MRU": 775.52, "MUR": 909.25, "MVR": 314.44, "MWK": 22300.63, "MXN": 356.71, "MZN": 1298.63, "NAD": 387.25, "NIO": 743.69, "NOK": 220.08, "NPR": 2707.73, "NZD": 34.18, "OMR": 7.83, "PAB": 20.34, "PEN": 76.82, "PGK": 73.95, "PHP": 1163.56, "PKR": 5855.35, "PLN": 88.66, "PYG": 148239.26, "QAR": 74.05, "RON": 95.67, "RSD": 2256.75, "RUB": 1964.72, "RWF": 24654.31, "SAR": 76.29, "SBD": 170.51, "SCR": 273.52, "SDG": 12233.75, "SEK": 223.65, "SHP": 16.72, "SLL": 426493.29, "SOS": 11607.73, "SRD": 777.92, "SSP": 2649.32, "STD": 453183.83, "STN": 472.42, "SVC": 177.95, "SYP": 51101.7, "SZL": 385.95, "TJS": 223.42, "TMT": 71.19, "TND": 64.6, "TOP": 48.59, "TTD": 137.97, "TWD": 655.07, "TZS": 50950.12, "UAH": 751.2, "UGX": 76661.49, "UYU": 775.64, "UZS": 248276.03, "VEF": 0, "VES": 692.55, "VUV": 2414.66, "WST": 55.29, "XAF": 12622.91, "XAG": 0.89, "XAU": 0.01, "XCD": 54.97, "XDR": 15.46, "XOF": 12622.91, "XPD": 0.02, "XPF": 2296.36, "XPT": 0.02, "YER": 5091.81, "ZAR": 387.87, "ZMW": 427.62, "ZWL": 6549.08, "ETH": 0.0128193, "LTC": 0.32079446, "DOGE": 339.50676297, "DASH": 0.76821266, "BCH": 0.09552538, "ZEC": 0.78053001, "ETC": 1.35808119, "XRP": 40.73720295, "TRX": 241.33637078, "XLM": 182.51062761, "WAVES": 13.47218958, "USDT": 20.34363973, "USDTTRC20": 0, "USDT20": 0 }, "direction": "ingoing", "created_datetime": "2023-09-26 22:00:54", "access_key": "TA25Ea9sjPUFJvIG", "additional_data": [ { "activated_datetime": "2023-09-27 01:00:52", "exchanger_identifier": null, "comment": "", "amount": "3000", "currency_code": "KES", "wallet_type": "mpesa", "stockpiling_id": 4822019, "transaction_id": "RIR7U1Y6OH", "transaction_type": 0, "plugin_custom_order_id": "5593665234", "withdrawal_id": null, "withdrawal_status": null, "account_number": "", "account_name": "", "account_email": "", "bank_details": { "bank_code": "", "branch_code": "" } } ] }
На повторные постбеки необходимо также отвечать {"status":"ok"} код ответа 200.
Выводы / выплаты пользователям
Общую документацию по выводам смотрите здесь.