Проверьте интеграцию за пять минут
Используйте общедоступную тестовую среду 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
Переход в боевой режим
- Зарегистрируйте счёт продавца и используйте боевые
appid,apikeyиkey. - Укажите настоящий
notify_urlв настройках счёта или для каждого заказа. - Никогда не раскрывайте ключ API в коде, который выполняется в браузере.
- Всегда проверяйте подпись уведомления на сервере.
Полный справочник: документация API · Проверка вживую: тестовая среда