Быстрый старт: проверьте интеграцию оплаты за пять минут

Team 2 мин. чтения 1 527 просмотров

Проверьте интеграцию за пять минут

Используйте общедоступную тестовую среду API с общими тестовыми ключами. Реальные деньги не списываются, а заказы не доходят до боевых платёжных провайдеров.

Шаг 1: получите тестовые ключи

Откройте /sandbox и скопируйте App ID, API Key (для подписи) и Query Key (для запроса статуса заказа).

Шаг 2: создайте тестовый заказ

Через форму в тестовой среде или подписанным POST-запросом на /api/createorder:

curl -X POST "https://your-domain.com/api/createorder" \
  -H "Content-Type: application/json" \
  -d '{
    "appid": "YOUR_SANDBOX_APPID",
    "action": "createorder",
    "clientip": "127.0.0.1",
    "amount": "9.99",
    "currency": "USD",
    "paymentMethod": "alipay",
    "description": "Test order",
    "notify_url": "https://your-domain.com/api/sandbox/webhook-receiver",
    "sign_type": "MD5",
    "sign": "CALCULATED_MD5_SIGN"
  }'

Тестовая среда посчитает подпись MD5 за вас. Алгоритм описан в документации API, раздел подписи.

Шаг 3: сымитируйте оплату

Откройте redirectUrl из ответа на создание заказа или нажмите Simulate pay в тестовой среде. Нажмите Simulate Success, и шлюз поставит уведомление в очередь на ваш notify_url.

Шаг 4: проверьте подпись уведомления

Уведомления приходят методом GET с параметрами в строке запроса, включая sign и sign_type=MD5. Проверяйте тем же алгоритмом, что и при создании заказа, своим ключом API.

// Node.js example (conceptual)
const crypto = require('crypto');
function verifyCallback(params, apiKey) {
  const copy = { ...params };
  delete copy.sign;
  delete copy.sign_type;
  const keys = Object.keys(copy).filter(k => copy[k] != null).sort();
  const str = keys.map(k => k + '=' + copy[k]).join('&') + apiKey;
  const expected = crypto.createHash('md5').update(str).digest('hex');
  return expected === params.sign;
}

Ваш сервер должен ответить обычным текстом success, регистр не важен.

Шаг 5: запросите статус заказа

GET /api/order?action=order&appid=APPID&key=QUERY_KEY&paymentId=ORDER_ID

Или опрашивайте публичную точку: GET /api/order/status/:orderId

Переход в боевой режим

Полный справочник: документация API · Проверка вживую: тестовая среда

Теги: api, sandbox, integration, webhook

← Все записи