You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Оплата

  1. Пользователь вводит необходимую информацию: сумму платежа, номер телефона, привязанный к учетной записи EasyPaisa.
  2. На телефон пользователя приходит пуш-уведомление с запросом на оплату.
  3. Пользователь переходит в приложение и подтверждает оплату.
  4. Paykassma отсылает постбек на сторону мерчанта.
  5. Средства начисляются на баланс пользователя на платформе мерчанта.

Интеграция через платежное окно (plugin)

Пример ссылки на открытие платежного окна EasyPaisa API:

https://plugin.{server_URL}/?
label=label
&currency_code=PKR
&lang=lang
&wallet_type=easypaisa_api
&custom_transaction_id=custom_transaction_id
&fixed_amount=fixed_amount
&payment_url_success_id=2
&payment_url_pending_id=3
&payment_url_fail_id=1
&success_url=hash
&fail_url=hash
&pending_url=hash


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_idpayment_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:

NameTypeRequiredDescription
secretstringyesКлюч доступа.


Body:

Name

Type

Required

Max Length

Description

amount

float 

yes

ограничена min и max.
депозитом

Сумма платежа.
currencystringyes3Код валюты. 
labelstring yes190Это уникальный идентификатор (ID) пользователя, осуществляющего платеж.
custom_transaction_idstringyes190Идентификатор транзакции в системе Клиента.
phone_numberstringyes11

Номер телефона пользователя. Данный номер телефона должен быть привязан к учетной записи пользователя в Easypaisa.

Формат ввода: 03xxxxxxxxx, где x - цифра. Длина всей строки включая "03" → 11 цифр.

Request
{
  "amount": 2000,
  "currency": "PKR",
  "label": "232323",
  "custom_transaction_id": "test_trx_01",
  "phone_number": "03123456789"
}
Response Success
{
    "status": "success",
    "message": "",
    "code": 20000,
    "data": {
       "order_id": "4127afd69732325c"
    },
    "paginate": {
        "offset": 0,
        "total": 1,
        "limit": 1
    }
}
Response Fail
{
    "status": "fail",
    "message": "MESSAGE"
}

Подсказка

После успешного запроса создания платежа пользователь должен подтвердить платеж в своем мобильном устройстве.

На подтверждение платежа пользователю дается 1 минута.

Чтобы избежать множественных запросов от одного пользователя или с разных учетных записей с одного и того же кошелька, Paykassma будет отказывать в создании ордера, если количество неудачных попыток пользователя за последние 24 часа достигло или превысило 2-х. В этом случае пользователь должен получить соответствующую ошибку ("Too many requests. Please try again later."), что поможет предотвратить злоупотребление системой и спам отдельных пользователей с множеством попыток платежей.

Проверка статуса платежа (необязательный запрос)

URL: http://api.{ URL сервера }/api/v1/payment/status?secret={pluginapi_secret}

Request method:
POST

Format:
JSON

Parameters:

NameTypeRequiredDescription
secretstringyesКлюч доступа.

Body:

Name

Type

Required

Max Length

Description

order_id

string

yes

не ограничен

Номер заказа, полученный в ответе на запрос создания платежа в параметре "order_id".
Request
{
  "order_id": "4127afd69732325c"
}
Response Success (платеж успешно выполнен)
{
    "status": "success",
    "message": "",
    "code": 20000,
    "data": {
        "status": "success"
    },
    "paginate": {
        "offset": 0,
        "total": 1,
        "limit": 1
    }
}
Response Success (платеж ожидает подтверждения)
{
    "status": "success",
    "message": "",
    "code": 20000,
    "data": {
        "status": "wait"
    },
    "paginate": {
        "offset": 0,
        "total": 1,
        "limit": 1
    }
} 
Response Success (платеж не выполнен)
{
    "status": "success",
    "message": "",
    "code": 20000,
    "data": {
        "status": "fail"
    },
    "paginate": {
        "offset": 0,
        "total": 1,
        "limit": 1
    }
}
Response Fail (ошибка запроса)
{
    "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": ""
        	}
        }
    ]
}
Сервер Paykassma ожидает ответ в json {"status":"ok"} код ответа 200, в противном случае, при получении отличающегося ответа, Paykassma будет пересылать постбек с определенной периодичностью.
На повторные постбеки необходимо также отвечать {"status":"ok"} код ответа 200.

Выводы / выплаты пользователям

Выплаты пользователям осуществляются через метод EasyPaisa (подробнее про метод EasyPaisa смотрите здесь).

Оглавление: