Оплата

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

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

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

https://plugin.{URL_сервера}/?
label=label
&currency_code=INR
&lang=en
&wallet_type=phone_pe
&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=phone_pe
currency_code=INR
Доступные языки (lang): en, hi (Хинди)

Обратите внимание на описание параметров 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: https://api.{URL_сервера}/api/v1/transaction/create/phone_pe?secret={pluginapi_secret}

В данном случае сначала мы принимаем запрос на ввод по платежной системе. Далее в ответе мы предоставим реквизиты кошелька, на который пользователь должен перевести платеж. После оплаты Вам необходимо отправить запрос на активацию транзакции.

Request method:

POST

Format:
JSON

Parameters:

Name

Type

Required

Max Length

Description

currencystringyes3Код валюты.

label

string

yes

190

Это уникальный идентификатор (ID) пользователя, осуществляющего платеж.


Request
{
  "currency": "INR", 
  "label": "eligendi"
}
Response Success
{ 
    "status": "ok", 
    "params":  { 
        "identifier": "6234234234"
    } 
}
Response Fail
{
    "status": "fail",
    "message": "MESSAGE"
}

Запрос активации

URL: http://api.{URL_сервера}/api/v1/transaction/activate?secret={pluginapi_secret}

Request method:
POST

Format:
JSON

Parameters:

Name

Type

Required

Max Length

Description

currency_codestringyes3Код валюты.

wallet_type

string

yes

190

Значение из списка доступных ПС.

Например: phone_pe.

labelstringyes190Это уникальный идентификатор (ID) пользователя, осуществляющего платеж.
key1stringyes190

Transaction_ID, полученный от пользователя.

Длина: 12 цифр.

amountfloatyes256Сумма платежа.
custom_transaction_id

string

yes190

Идентификатор транзакции в системе Клиента.

Должен быть уникальным.


Request
{
    "currency_code": "INR",
    "wallet_type": "phone_pe",
    "label": "55",
    "key1": "321302038123",
	"amount": 500,
    "custom_transaction_id": "123465477897"
}
Response Success
{
    "status": "ok",
    "deposit": true,
    "deposit_amount": 500,
    "currency": {
        "code": "INR",
        "symbol": "INR"
    }
}
Response Pending (при активации подозрительной транзакции)
{
    "status": "pending",
    "message": "The deposit status check has been started. The operation may take longer than expected. Upon completion of the verification, the funds will be credited to your account"
}
Response Possible Transaction Created (если включен функционал "Возможные транзакции")
{
    "status": "possible_transaction_created",
    "message": "Transaction not found. Possible transaction created"
}
Response Fail
{
    "status": "fail",
    "message": "MESSAGE"
}

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

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

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

{
    "signature": "36311443ceb305fcdff1e9f82be6605dedff5e50",
    "wallet_type": "phone_pe",
    "amount": 700,
    "currency_code": "INR",
    "label": "1230142",
    "direction": "ingoing",
    "created_datetime": "2023-08-25 15:12:49",
    "access_key": "FQ9jMwrNSkFbyMNqYFf6Ed4xeKmjHK",
    "additional_data": [
        {
            "activated_datetime": "2023-08-25 18:12:46",
            "exchanger_identifier": "81230207429",
            "comment": "",
            "amount": "700",
            "currency_code": "INR",
            "wallet_type": "phone_pe",
            "stockpiling_id": 1431219,
            "transaction_id": "323748622123",
            "transaction_type": 0,
            "plugin_custom_order_id": "ikDhBnLY123tx3G6H",
            "withdrawal_id": null,
            "withdrawal_status": null,
            "account_number": "",
            "account_name": "",
            "account_email": "",
            "bank_details": {
                "bank_code": "",
                "branch_code": ""
        }
    ]
}


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

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

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

Оглавление: