Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Оплата

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

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

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

https://plugin.{URL_сервера}/?
label=label
&
currency_code=BDT
&
lang=en
&
wallet_type=bkash_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


Code Block
wallet_type=bkash_api
currency_code=BDT
Доступные языки (lang): en, bn
Info

Обратите внимание на описание параметров 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

Создание платежа

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

Request method:
POST

Format:
JSON

ParamsParameters:

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

Body:

Name

Type

Required

Max Length

Description

amount

float 

yes

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

Сумма платежа.
account_numberstringyes11

Одиннадцатизначный номер счета пользователя Клиента в Bkash, в формате 01ХХХХХХХХХ.

Валидация:

  • Числа: 0-9
currencystringyes3Код
валюты 
валюты. 
labelstring yes190Это уникальный идентификатор (ID) пользователя, осуществляющего платеж.
custom_transaction_idstringyes190Идентификатор транзакции в системе Клиента. Должен быть уникальным.
success_urlstringyesне ограниченСсылка, на которую нужно перенаправить пользователя со страницы Bkash в случае успешной оплаты.
failure_urlstringyesне ограниченСсылка, на которую нужно перенаправить пользователя со страницы Bkash в случае ошибки оплаты.
cancel_urlstringyesне ограничен

Ссылка, на которую нужно перенаправить пользователя со страницы Bkash в случае отмены оплаты.


Code Block
themeDJango
titleRequest
{
    "amount": 1.00,
    "account_number": "01770618575",
    "currency": "BDT",
    "label": "test",
    "custom_transaction_id": "01abc0095689",
    "success_url": "https://static5.depositphotos.com/1029663/395/i/600/depositphotos_3955476-stock-photo-green-check-mark.jpg?status=success",
    "failure_url": "https://top-fon.com/uploads/posts/2021-07/1626870875_29-p-krasnii-krest-fon-32.png?status=failure",
    "cancel_url": "https://google.com/"
}
Code Block
themeDJango
titleResponse Success
{
    "status": "ok",
    "data": {
        "orderId": "1cb4627a420a6e69",
        "bkashUrl": "https://sandbox.payment.bkash.com/redirect/tokenized/?paymentID=TR00114E1661778153815&hash=dcRq9geuCtjkN6rFpaGxdLAMrmyxIxL*kEN-p41SLL2M!xXy9m2OTUTLwlAGMVWDKyE8xkOHj_N_AHaTxNGT*(V2LXyC5y4zpUsG1661778154005&mode=0011&apiVersion=v1.2.0-beta",
        "message": "Successful"
    }
}
Code Block
themeDJango
titleResponse Fail
{
    'status': 'fail',
    'message': 'MESSAGE'
}

В случае успешного запроса создания платежа пользователю Клиента необходимо отобразить страницу, полученную в параметре "bkashUrl". 

Шаги оплаты на странице Bkash

Шаг 1. Откроется форма для ввода номера счета пользователя в Bkash. Необходимо нажать на "Confirm" для перехода на следующий шаг оплаты.

Info

Данные на первой форме Bkash заполняются форме Bkash заполняются автоматически, так как номер счета пользователя Клиента в Bkash уже передали в запросе создания платежа.

Шаг 2. Если номер счета оказался валидным, то откроется следующая форма для ввода кода ОТП. Необходимо на форме ввести ОТП и нажать на "Confirm".

Шаг 3. Если код ОТП корректный, то откроется следующая форма для ввода PIN. Необходимо ввести данные и нажать на "Confirm".

Шаг 4. Если PIN верный, то Bkash перенаправит пользователя по url, который отправили в запросе платежа.

Info

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

После этого пользователю на какое-то время отобразится страница загрузки Paykassma (достаточно быстро, несколько секунд). Пример:

Страница загрузки закроется и пользователя перенаправит на нужную страницу в зависимости от статуса платежа:

  • В случае успешной оплаты → на success_url;
  • В случае ошибки платежа → на failure_url (при интеграции по API) или на fail_url (при интеграции через plugin).
  • В случае отмены платежа (если на шаге 1-3 пользователь нажал на кнопку "Close") → на cancel_url (доступно для интеграции по API). В случае интеграции через plugin - на fail_url.

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

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

Request method:
POST

Format:
JSON

ParamsParameters:

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

Body:

Name

Type

Required

Max Length

Description

order_id

string

yes

не ограничен

Номер заказа, полученный в ответе на запрос создания платежа.


Code Block
themeDJango
titleRequest
{
    "order_id": "fb6fd9d57a664f61"
}


Code Block
themeDJango
titleResponse Success
{
    "status": "ok",
    "data": {
        "status": "success" // доступны "wait" и "fail".
    }
}
Code Block
themeDJango
titleResponse Fail
{
    'status': 'fail',
    'message': 'MESSAGE'
}

Постбек депозита

Общую документацию по постбекам смотрите здесь.

Пример постбека на депозит bKash:

Code Block
themeDJango
collapsetrue
{
    "signature": "35e54262246adeafd4694e767557945827339a7f",
    "wallet_type": "bkash_api",
    "amount": 500,
    "currency_code": "BDT",
    "label": "7848747947846",
    "converted_amount": {"USD": 4.61, "INR": 380, "EUR": 4.2, "IDR": 69702.53, "MYR": 20.81, "VND": 109100.85, "SGD": 6.15, "THB": 158.07, "NGN": 3549.74, "TRY": 124.18, "AED": 16.92, "CAD": 6.11, "AUD": 6.96, "BDT": 500, "AFN": 392.19, "ALL": 427.25, "AMD": 1778.42, "AOA": 3803.37, "ARS": 1271.54, "AWG": 8.3, "AZN": 7.83, "BAM": 8.2, "BBD": 9.21, "BGN": 8.21, "BHD": 1.74, "BIF": 13046.47, "BMD": 4.61, "BND": 6.15, "BOB": 31.84, "BRL": 21.99, "BSD": 4.61, "BTC": 0.00015943, "BTN": 379, "BWP": 60.54, "BYN": 11.63, "BZD": 9.29, "CDF": 11425.29, "CHF": 4.04, "CLF": 0.14, "CLP": 3878.55, "CNH": 33.06, "CNY": 33.02, "COP": 18082.75, "CRC": 2498.95, "CUC": 4.61, "CUP": 118.58, "CVE": 462.56, "CZK": 100.38, "DJF": 820.28, "DKK": 31.27, "DOP": 259.16, "DZD": 624.77, "EGP": 142.3, "ERN": 69.08, "ETB": 253.82, "FJD": 10.22, "FKP": 3.6, "GBP": 3.6, "GEL": 11.9, "GGP": 3.6, "GHS": 52.22, "GIP": 3.6, "GMD": 276.31, "GNF": 39634.5, "GTQ": 36.22, "GYD": 963.87, "HKD": 35.89, "HNL": 113.34, "HRK": 31.62, "HTG": 628.87, "HUF": 1633.77, "ILS": 16.76, "IMP": 3.6, "IQD": 6035.32, "IRR": 194797.68, "ISK": 605.39, "JEP": 3.6, "JMD": 711.75, "JOD": 3.26, "JPY": 659.33, "KES": 657.15, "KGS": 404.25, "KHR": 19027.89, "KMF": 2061.95, "KPW": 4144.63, "KRW": 5933.82, "KWD": 1.42, "KYD": 3.84, "KZT": 2047.77, "LAK": 89252.61, "LBP": 69151.38, "LKR": 1469.64, "LRD": 858.4, "LSL": 81.95, "LYD": 22.02, "MAD": 45.38, "MDL": 82.35, "MGA": 20777.32, "MKD": 258.57, "MMK": 9674.75, "MNT": 15887.75, "MOP": 36.98, "MRO": 0, "MRU": 175.52, "MUR": 208.15, "MVR": 70.69, "MWK": 4853.1, "MXN": 77.35, "MZN": 293.46, "NAD": 82.25, "NIO": 168.55, "NOK": 47.01, "NPR": 606.4, "NZD": 7.49, "OMR": 1.77, "PAB": 4.61, "PEN": 16.61, "PGK": 16.59, "PHP": 252.72, "PKR": 1324.8, "PLN": 18.6, "PYG": 33513, "QAR": 16.79, "RON": 20.69, "RSD": 492.16, "RUB": 424.19, "RWF": 5413.13, "SAR": 17.28, "SBD": 38.44, "SCR": 61.28, "SDG": 2770, "SEK": 48.85, "SHP": 3.6, "SLL": 96567.61, "SOS": 2623.48, "SRD": 177.86, "SSP": 599.87, "STD": 102610.94, "STN": 102.67, "SVC": 40.31, "SYP": 11570.57, "SZL": 81.89, "TJS": 50.47, "TMT": 16.16, "TND": 14.19, "TOP": 10.82, "TTD": 31.29, "TWD": 145.48, "TZS": 11319.27, "UAH": 170.14, "UGX": 16716.57, "UYU": 173.55, "UZS": 53595.22, "VEF": 0, "VES": 135.74, "VUV": 546.73, "WST": 12.52, "XAF": 2752.15, "XAG": 0.19, "XAU": 0, "XCD": 12.45, "XDR": 3.43, "XOF": 2752.15, "XPD": 0, "XPF": 500.67, "XPT": 0, "YER": 1152.67, "ZAR": 83.54, "ZMW": 87.42, "ZWL": 1482.86, "ETH": 0.00251358, "LTC": 0.05065982, "DOGE": 59.80674641, "DASH": 0.14777208, "BCH": 0.01902045, "ZEC": 0.15475058, "ETC": 0.25289799, "XRP": 6.67674578, "TRX": 59.03020283, "XLM": 31.08030456, "WAVES": 2.42673726, "USDT": 4.60787289, "USDTTRC20": 0, "USDT20": 0},
    "direction": "ingoing",
    "created_datetime": "2023-08-01 13:37:42",
    "access_key": "FQ9jMwrNSkFbyMNqYFf6Ed4xeKmjHK",
    "additional_data": [
        {
            "activated_datetime": "2023-08-01 16:37:16",
            "exchanger_identifier": null,
            "comment": "",
            "amount": "100",
            "currency_code": "BDT",
            "wallet_type": "bkash_api",
            "stockpiling_id": 963,
            "transaction_id": "CD0C06E08D",
            "transaction_type": 1,
            "plugin_custom_order_id": null,
            "withdrawal_id": null,
            "withdrawal_status": null,
            "account_number": "",
            "account_name": "",
            "account_email": "",
            "bank_details": {
                "bank_code": "",
                "branch_code": ""
            }
        },
        {
            "activated_datetime": "2023-08-01 16:37:40",
            "exchanger_identifier": null,
            "comment": "",
            "amount": "400",
            "currency_code": "BDT",
            "wallet_type": "bkash_api",
            "stockpiling_id": 963,
            "transaction_id": "5750E9FBB3",
            "transaction_type": 1,
            "plugin_custom_order_id": null,
            "withdrawal_id": null,
            "withdrawal_status": null,
            "account_number": "",
            "account_name": "",
            "account_email": "",
            "bank_details": {
                "bank_code": "",
                "branch_code": ""
            }
        }
    ]
}
Warning

Сервер Paykassma Сервер Paykassma ожидает ответ в в json {"status":"ok"} код ответа 200, в противном случае, при получении отличающегося ответа, Paykassma Paykassma будет пересылать постбек с определенной периодичностью.
На повторные постбеки необходимо также отвечать {"status":"ok"} код ответа 200.

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

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

Оглавление:

Table of Contents
excludeОглавление: