API 2.0 по интеграции с PrMoney.

1. Регистрируетесь на сайте.

2. Заходите в меню Кассы и создаете Кассу для своего домена, проходите модерацию.

3. После модерации для кассы генерируется client_id и client_secret

4. Для инициализации платежа необходимо отправить POST запрос на адрес:

https://new.prmoney.com/payments/createS2S

Запрос обязательно должен содержать переменные:

Также запрос может содержать следующие переменные:

5. После успешного запроса в ответ получите json строку с параметром redirect_url, в котором будет указан URL. На этот URL нужно перенаправить клиента для обработки платежа.

Примеры ответа. Набор полей зависит от платёжного метода.

Пример 1 — только ссылка на оплату:

{
    "redirect_url": "https://new.prmoney.com/payments/s2s_redirect/5f3c9a1e7b2d4c8f0a6e1d2b3c4a5f6e",
    "amount": 1500,
    "usdt": 17.11,
    "rate_out": 87.65
}

Пример 2 — вьетнамский метод с QR-кодом (qr_code — строка QR-кода, qr_img — ссылка на картинку QR-кода):

{
    "success": true,
    "redirect_url": "https://new.prmoney.com/payments/sbpform/3812457",
    "form_url": "https://new.prmoney.com/payments/sbpform/3812457",
    "id": 3812457,
    "qr_code": "00020101021238570010A000000727012700069704180113968866123450208QRIBFTTA53037045405500005802VN62110807381245763042F1B",
    "qr_img": "https://new.prmoney.com/images/qrcodes/3812457.png",
    "usdt": 17.11,
    "rate_out": 87.65
}

Пример 3 — оплата переводом на карту (bank_card — номер карты, bank — банк, full_name — получатель, amount — сумма к переводу):

{
    "success": true,
    "bank_card": "2200700123456789",
    "bank": "Т-Банк",
    "full_name": "Иван Петров",
    "amount": "1500",
    "redirect_url": "https://new.prmoney.com/payments/p2pform/3812458",
    "form_url": "https://new.prmoney.com/payments/p2pform/3812458",
    "id": 3812458,
    "usdt": 17.11,
    "rate_out": 87.65
}

Пример 4 — нет свободных реквизитов для оплаты (платёж не создан на стороне провайдера, клиента перенаправлять не нужно — повторите запрос позже или предложите другой способ оплаты):

{
    "success": false,
    "error": true,
    "message": "No Requisits"
}

6. После успешного или проваленного платежа на Callback Url (который Вы указывали в личном кабинете в настройках кассы) будет отправлен POST запрос содержащий данные о платеже в виде json объекта в параметре payment. В объекте будут присутствовать следующие свойства

Пример генерации signature:

    $signature = base64_encode(sha1($amount ."|". $client_id ."|". $client_secret));

Пример генерации signature2 (id — идентификатор платежа в нашей системе, поле id / prm_id):

    $signature2 = base64_encode(sha1($id ."|". $amount ."|". $client_id ."|". $client_secret));

Колбек отправляется POST-запросом с заголовком Content-Type: application/x-www-form-urlencoded (не multipart/form-data и не JSON в теле). В теле передаётся один параметр payment, его значение — JSON-строка, закодированная для URL.

Пример тела запроса (в формате query string, для наглядности без URL-кодирования — в реальном запросе значение payment URL-кодировано):

payment={"id":3812458,"prm_id":3812458,"order_id":"12345","description":"Order 12345","currency":"643","comment":"","status":"success","amount":"1500.00","amount_fee":"75.00","actual_amount":"1425.00","usdt":17.11,"client_id":"a1B2c3D4e5F6g7H8i9J0k1L2m3N4o5P6q7R8s9T0","signature":"NDU2YjgwMjAwNmU4NjFlMjU2MjBjODBjMTZmODZjYTc1MDhmZWFjNA==","signature2":"OTliNjUwM2E2YTU4MWJkZWY1YTdkNmI0NGE2NjY2YjExODg0ZGI4NQ==","requestId":"MzgxMjQ1OHwyMDI2LTEwLTA4IDEyOjAwOjAw"}

Пример объекта payment (после декодирования):

{
    "id": 3812458,
    "prm_id": 3812458,
    "order_id": "12345",
    "description": "Order 12345",
    "currency": "643",
    "comment": "",
    "status": "success",
    "amount": "1500.00",
    "amount_fee": "75.00",
    "actual_amount": "1425.00",
    "usdt": 17.11,
    "client_id": "a1B2c3D4e5F6g7H8i9J0k1L2m3N4o5P6q7R8s9T0",
    "signature": "NDU2YjgwMjAwNmU4NjFlMjU2MjBjODBjMTZmODZjYTc1MDhmZWFjNA==",
    "signature2": "OTliNjUwM2E2YTU4MWJkZWY1YTdkNmI0NGE2NjY2YjExODg0ZGI4NQ==",
    "requestId": "MzgxMjQ1OHwyMDI2LTEwLTA4IDEyOjAwOjAw"
}

Пример обработки параметра такого запроса:

    $post = json_decode($_POST["payment"]);
    $order_id = $post->order_id;