Оплата
- Пользователь вводит необходимую информацию: сумму платежа, номер телефона, привязанный к учетной записи EasyPaisa.
- На телефон пользователя приходит пуш-уведомление с запросом на оплату.
- Пользователь переходит в приложение и подтверждает оплату.
- Paykassma отсылает постбек на сторону мерчанта.
- Средства начисляются на баланс пользователя на платформе мерчанта.
Интеграция через платежное окно (plugin)
Пример ссылки на открытие платежного окна EasyPaisa API:
https://plugin.{URL_сервера}/? label =label ¤cy_code =PKR &lang =lang &wallet_type =easypaisa_api &custom_transaction_id =custom_transaction_id &fixed_amount=fixed_amount &payment_url_fail_id=1 |
---|
wallet_type=easypaisa_api currency_code=PKR Доступные языки (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/easypaisa_api?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. | Сумма платежа. |
currency | string | yes | 3 | Код валюты. |
label | string | yes | 190 | Это уникальный идентификатор (ID) пользователя, осуществляющего платеж. |
custom_transaction_id | string | yes | 190 | Идентификатор транзакции в системе Клиента. |
phone_number | string | yes | 11 | Номер телефона пользователя. Данный номер телефона должен быть привязан к учетной записи пользователя в Easypaisa. Формат ввода: 03xxxxxxxxx, где x - цифра. Длина всей строки включая "03" → 11 цифр. |
{ "amount": 2000, "currency": "PKR", "label": "232323", "custom_transaction_id": "test_trx_01", "phone_number": "03123456789" }
{ "status": "success", "message": "", "code": 20000, "data": { "order_id": "4127afd69732325c" }, "paginate": { "offset": 0, "total": 1, "limit": 1 } }
{ "status": "fail", "message": "MESSAGE" }
Подсказка
После успешного запроса создания платежа пользователь должен подтвердить платеж в своем мобильном устройстве.
На подтверждение платежа пользователю дается 1 минута.
Чтобы избежать множественных запросов от одного пользователя или с разных учетных записей с одного и того же кошелька, Paykassma будет отказывать в создании ордера, если количество неудачных попыток пользователя за последние 24 часа достигло или превысило 2-х. В этом случае пользователь должен получить соответствующую ошибку ("Too many requests. Please try again later."), что поможет предотвратить злоупотребление системой и спам отдельных пользователей с множеством попыток платежей.
Проверка статуса платежа (необязательный запрос)
URL: http://api.{URL_сервера}/api/v1/payment/easypaisa_api/status?secret={pluginapi_secret}
Request method:
POST
Format:
JSON
Parameters:
Name | Type | Required | Description |
secret | string | yes | Ключ доступа. |
Body:
Name | Type | Required | Max Length | Description |
order_id | string | yes | не ограничен | Номер заказа, полученный в ответе на запрос создания платежа в параметре "order_id". |
{ "order_id": "4127afd69732325c" }
{ "status": "success", "message": "", "code": 20000, "data": { "status": "success" }, "paginate": { "offset": 0, "total": 1, "limit": 1 } }
{ "status": "success", "message": "", "code": 20000, "data": { "status": "wait" }, "paginate": { "offset": 0, "total": 1, "limit": 1 } }
{ "status": "success", "message": "", "code": 20000, "data": { "status": "fail" }, "paginate": { "offset": 0, "total": 1, "limit": 1 } }
{ "status": "fail", "message": { "order_id": [ "The selected order id is invalid." ] } }
Постбек депозита
Общую документацию по постбекам смотрите здесь.
Пример постбека на депозит EasyPaisa API
{ "signature": "23ceb452dc398b5f8b0e7ab9eb91236c7ee50911", "wallet_type": "easypaisa_api", "amount": 1000, "currency_code": "PKR", "label": "7848747947846", "converted_amount": {"USD":3.6,"INR":301,"EUR":3.33,"IDR":57829.78,"MYR":17.01,"VND":91505.66,"SGD":4.87,"THB":132.32,"NGN":5223.01,"TRY":115.82, "AED":13.2,"CAD":4.92,"AUD":5.44,"BDT":420.79,"AFN":259.66,"ALL":335.67,"AMD":1395.36,"AOA":2998.46,"ARS":3174.59,"AWG":6.47,"AZN":6.11,"BAM":6.53,"BBD":7.19, "BGN":6.52,"BHD":1.35,"BIF":10317.27,"BMD":3.6,"BND":4.87,"BOB":24.85,"BRL":18.54,"BSD":3.6,"BTC":5.701e-5,"BTN":300.31,"BWP":48.87,"BYN":11.77,"BZD":7.25,"CDF":10019.68, "CHF":3.26,"CLF":0.12,"CLP":3330.06,"CNH":26.03,"CNY":26.01,"COP":13980.3,"CRC":1843.17,"CUC":3.6,"CUP":92.57,"CVE":367.92,"CZK":82.68,"DJF":640.44,"DKK":24.87,"DOP":209.28, "DZD":482.95,"EGP":169.21,"ERN":53.93,"ETB":206.51,"FJD":8.16,"FKP":2.87,"GBP":2.87,"GEL":9.63,"GGP":2.87,"GHS":50.35,"GIP":2.87,"GMD":243.63,"GNF":30903.97,"GTQ":27.94,"GYD":752.45, "HKD":28.08,"HNL":88.89,"HRK":25.12,"HTG":476.81,"HUF":1290.65,"ILS":13.41,"IMP":2.87,"IQD":4711.35,"IRR":151889.3,"ISK":501.11,"JEP":2.87,"JMD":563.3,"JOD":2.55,"JPY":560.43,"KES":470.95, "KGS":317.65,"KHR":14654.55,"KMF":1640.15,"KPW":3235.51,"KRW":4916.01,"KWD":1.11,"KYD":3,"KZT":1582.11,"LAK":76745.02,"LBP":322026.14,"LKR":1075.2,"LRD":695.76,"LSL":66.15,"LYD":17.48,"MAD":36.05, "MDL":63.84,"MGA":15912.53,"MKD":205.2,"MMK":7552.55,"MNT":12402.79,"MOP":28.95,"MRO":0,"MRU":143.72,"MUR":165.71,"MVR":55.56,"MWK":6235.92,"MXN":60.2,"MZN":229.47,"NAD":66.15,"NIO":132.4,"NOK":39.04, "NPR":480.51,"NZD":5.98,"OMR":1.38,"PAB":3.6,"PEN":13.27,"PGK":13.96,"PHP":207.77,"PKR":1000,"PLN":14.29,"PYG":26957.1,"QAR":13.12,"RON":16.59,"RSD":390.52,"RUB":330.12,"RWF":4667.69,"SAR":13.48,"SBD":30.47, "SCR":49.36,"SDG":2160.6,"SEK":39.05,"SHP":2.87,"SLL":75385.63,"SOS":2055.4,"SRD":117.51,"SSP":468.29,"STD":80103.36,"STN":81.75,"SVC":31.47,"SYP":9032.58,"SZL":66.13,"TJS":39.27,"TMT":12.6,"TND":11.26,"TOP":8.52, "TTD":24.43,"TWD":116.54,"TZS":9314.98,"UAH":142.35,"UGX":13593.46,"UYU":138.43,"UZS":45656.26,"VEF":0,"VES":131.41,"VUV":426.81,"WST":10.07,"XAF":2186.96,"XAG":0.13,"XAU":0,"XCD":9.72,"XDR":2.73,"XOF":2186.96,"XPD":0, "XPF":397.85,"XPT":0,"YER":899.9,"ZAR":66.06,"ZMW":98.45,"ZWL":1157.59,"ETH":0.00120404,"LTC":0.04365557,"DOGE":24.83268071,"DASH":0.12651868,"BCH":0.00808227,"ZEC":0.16016491,"ETC":0.13474187,"XRP":7.11385738,"TRX":28.28853906, "XLM":34.02877828,"WAVES":1.55728144,"USDT":3.59692418,"USDTTRC20":0,"USDT20":0}, "direction": "ingoing", "created_datetime": "2023-08-01 13:37:42", "access_key": "uowkn0b3LfBxpcWYHi4_", "additional_data": [ { "activated_datetime": "2024-05-13 13:05:38", "exchanger_identifier": 03xxxxx0957, "comment": "", "amount": "1000", "currency_code": "PKR", "wallet_type": "easypaisa_api", "stockpiling_id": 2005, "transaction_id": "28064319767", "transaction_type": 1, "plugin_custom_order_id": "1234", "withdrawal_id": null, "withdrawal_status": null, "account_number": "", "account_name": "", "account_email": "", "bank_details": { "bank_code": "", "branch_code": "" } } ] }
На повторные постбеки необходимо также отвечать {"status":"ok"} с кодом ответа 200.
Выводы / выплаты пользователям
Выплаты пользователям осуществляются через метод EasyPaisa (подробнее про метод EasyPaisa смотрите здесь).