Перейти к содержимому
Документация OneGate
Панель управления
Руководства

Быстрый старт

Примите первый тестовый платёж за пять шагов.

1. Создайте API-ключ

В панели управления откройте Платёжные провайдеры → Песочница → Подключить, затем Разработчикам → API-ключи → Создать тестовый ключ. Скопируйте секрет sk_test_… — он показывается один раз.

2. Создайте платёж

bash
curl https://api.onegate.am/v1/payments \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: ORD-1001" \
  -d '{
    "amount": 12500,
    "currency": "AMD",
    "order_id": "ORD-1001",
    "return_url": "https://shop.am/orders/ORD-1001",
    "locale": "hy",
    "metadata": { "customer_id": "cus_100" }
  }'
ts
import { OneGate } from "@onegate/node";

const onegate = new OneGate(process.env.ONEGATE_SECRET_KEY!);
const payment = await onegate.payments.create(
  { amount: 12500, currency: "AMD", order_id: "ORD-1001", return_url: "https://shop.am/orders/ORD-1001", locale: "hy" },
  { idempotencyKey: "ORD-1001" },
);
// redirect the customer to payment.checkout_url
php
$onegate = new \OneGate\Client(getenv('ONEGATE_SECRET_KEY'));
$payment = $onegate->payments()->create([
    'amount' => 12500, 'currency' => 'AMD', 'order_id' => 'ORD-1001',
    'return_url' => 'https://shop.am/orders/ORD-1001', 'locale' => 'hy',
], idempotencyKey: 'ORD-1001');
header('Location: ' . $payment['checkout_url']);
json
{
  "id": "pay_06GCWGE55HZ397FHWNCZVHHC2R",
  "object": "payment",
  "status": "created",
  "amount": 12500,
  "currency": "AMD",
  "checkout_url": "https://pay.onegate.am/cs_06GCWGE56H..."
}
Суммы — целые числа в минимальных единицах валюты. Для AMD используются целые драмы: 12500 означает 12 500 AMD. Поле locale (hy, en или ru) необязательно; без него страница оплаты открывается на вашем языке по умолчанию, а клиент всегда может сменить язык.

3. Перенаправьте на страницу оплаты

Отправьте клиента по адресу checkout_url. В тестовом режиме выберите Банковская карта, затем выберите результат на странице тестового банка.

4. Получите вебхук

Добавьте адрес в разделе Разработчикам → Вебхуки и проверяйте каждый запрос (см. Вебхуки):

ts
import { verifyWebhook } from "@onegate/node";

app.post("/webhooks/onegate", express.raw({ type: "application/json" }), (req, res) => {
  const event = verifyWebhook(req.body, req.headers, process.env.ONEGATE_WEBHOOK_SECRET!);
  if (event.type === "payment.completed") fulfil(event.data.object.order_id);
  res.sendStatus(200);
});
php
$raw = file_get_contents('php://input');
$event = \OneGate\Webhook::verify($raw, $_SERVER['HTTP_ONEGATE_SIGNATURE'] ?? '',
    $_SERVER['HTTP_ONEGATE_TIMESTAMP'] ?? '', getenv('ONEGATE_WEBHOOK_SECRET'));
if ($event['type'] === 'payment.completed') {
    fulfil($event['data']['object']['order_id']);
}
http_response_code(200);

5. Проверьте статус платежа

Перед отправкой товара подтвердите статус на сервере. Возврат клиента на ваш return_url не является подтверждением оплаты.

bash
curl https://api.onegate.am/v1/payments/pay_06GC... -H "Authorization: Bearer sk_test_..."