Перейти к содержимому

Первый платёж за 5 минут

Нужен ключ песочницы (как получить) и одно из: curl, Node 18+, PHP 8.1+, Python 3.9+ или Go 1.24+.

  1. Задайте ключ (30 с).

    Окно терминала
    export MKA_KEY='mka_test_…' MKA_SECRET='…' MKA_BASE_URL='https://sandbox.processing.yolotech.cc'
  2. Скачайте примеры (30 с).

    Окно терминала
    curl -fsSL https://docs.processing.yolotech.cc/examples/curl.tar.gz | tar -xz && cd curl
  3. Создайте платёж на 2500.00 LKR (1 мин). В песочнице сумма, которая оканчивается на .00, оплачивается сама примерно через десять секунд после того, как плательщик получил реквизиты.

    examples/curl/payments/create.sh
    #!/usr/bin/env bash
    # Create a payment and send the payer to its checkout_url.
    set -euo pipefail
    . "$(dirname "$0")/../signed-request.sh"
    body=$(cat <<JSON
    {
    "merchant_order_id": "${ORDER_ID:-order-$(mka_new_key)}",
    "amount": "${AMOUNT:-2500.00}",
    "currency": "LKR",
    "return_url": "https://shop.example.lk/orders/return"
    }
    JSON
    )
    mka_request POST "/v1/payments" "$body" "$(mka_new_key)"

    Запустите пример — bash payments/create.sh, node payments/create.mjs, php payments/create.php, python -m payments.create или go run ./payments/create.go. Ответ — HTTP 201 с платежом:

    {
    "payment_id": "019fccd2-3eef-4a33-80b8-cd750e2db99f",
    "status": "pending",
    "checkout_url": "https://sandbox.processing.yolotech.cc/pay/AZ_M0j7v…",
    …
    }
  4. Откройте checkout_url (1 мин). На эту страницу вы отправляете плательщика. Она показывает реквизиты для перевода, а затем — как проходит платёж.

  5. Прочитайте платёж (1 мин). Задайте PAYMENT_ID из ответа и читайте платёж, пока он не станет succeeded:

    Окно терминала
    export PAYMENT_ID=019fccd2-3eef-4a33-80b8-cd750e2db99f
    examples/curl/payments/get.sh
    #!/usr/bin/env bash
    # Read a payment: the truth after a webhook, a timeout or a 503.
    set -euo pipefail
    . "$(dirname "$0")/../signed-request.sh"
    payment_id=$(mka_required PAYMENT_ID)
    mka_request GET "/v1/payments/$payment_id"

    Статусы идут так: pending → requires_action (реквизиты выданы) → processing (деньги пришли) → succeeded (деньги на вашем балансе).

  6. Примите вебхук (1 мин). Направьте события на свой публичный HTTPS-адрес — на ноутбуке его даст туннель, например cloudflared tunnel --url http://localhost:8080, — и запустите приёмник с секретом из первого ответа:

    Окно терминала
    WEBHOOK_URL=https://your-tunnel.example/ node webhooks/endpoint/set.mjs # once: answers the secret
    WEBHOOK_SECRET='whsec_…' node webhooks/receive.mjs

    Создайте ещё один платёж — приёмник печатает каждый статус по мере прихода, уже проверенный:

    verified payment.status_changed 019fccd2-… v3 requires_action
    verified payment.status_changed 019fccd2-… v5 processing
    verified payment.status_changed 019fccd2-… v6 succeeded

    Публичного адреса пока нет? В консоли в разделе Разработчикам → Вебхуки видна каждая доставка с телом.