API платёжного шлюза интернет-эквайринга Help

Callback

При изменении статуса заказа платежный шлюз автоматически инициирует процесс отправки уведомления. Это уведомление направляется на адрес, указанный в настройках ТСП на стороне платежного шлюза.

Пример получаемых данных:

ORDER_ID: 2000000005753 ORDER_RID: null ORDER_STATUS: Preparing

Описание статусов заказа

Примеры

if ($_SERVER['REQUEST_METHOD'] === 'POST' && parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) === '/bspb/callback') { $order_id = $_POST['ORDER_ID'] ?? null; $order_rid = $_POST['ORDER_RID'] ?? null; $order_status = $_POST['ORDER_STATUS'] ?? null; if ($order_id !== null && $order_rid !== null && $order_status !== null) { echo "ORDER_ID: $order_id\n"; echo "ORDER_RID: $order_rid\n"; echo "ORDER_STATUS: $order_status\n"; http_response_code(200); echo "POST запрос успешно получен\n"; } else { http_response_code(400); echo "Ошибка: не все необходимые поля предоставлены\n"; } } else { http_response_code(404); echo "Ресурс не найден\n"; }
from flask import Flask, request app = Flask(__name__) @app.route('/bspb/callback', methods=['POST']) def bspb_callback(): if request.method == 'POST': data = request.form order_id = data.get('ORDER_ID') order_rid = data.get('ORDER_RID') order_status = data.get('ORDER_STATUS') print('ORDER_ID:', order_id) print('ORDER_RID:', order_rid) print('ORDER_STATUS:', order_status) return 'POST запрос успешно получен\n' else: return 'Ресурс не найден\n', 404 if __name__ == '__main__': app.run(host='0.0.0.0', port=443, ssl_context=('server.pem', 'server.key'))
const https = require('https'); const fs = require('fs'); const querystring = require('querystring'); const options = { key: fs.readFileSync('server.key'), cert: fs.readFileSync('server.pem') }; const server = https.createServer(options, (req, res) => { if (req.method === 'POST' && req.url === '/bspb/callback') { let body = ''; req.on('data', (chunk) => { body += chunk.toString(); }); req.on('end', () => { const parsedBody = querystring.parse(body); console.log('ORDER_ID:', parsedBody.ORDER_ID); console.log('ORDER_RID:', parsedBody.ORDER_RID); console.log('ORDER_STATUS:', parsedBody.ORDER_STATUS); res.end('POST запрос успешно получен\n'); }); } else { res.writeHead(404, {'Content-Type': 'text/plain'}); res.end('Ресурс не найден\n'); } }); const port = 443; server.listen(port, () => { console.log(`Сервер запущен на порту ${port}`); });
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/bspb/callback", func(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { err := r.ParseForm() if err != nil { http.Error(w, "Ошибка при парсинге данных", http.StatusBadRequest) return } orderID := r.FormValue("ORDER_ID") orderRID := r.FormValue("ORDER_RID") orderStatus := r.FormValue("ORDER_STATUS") fmt.Println("ORDER_ID:", orderID) fmt.Println("ORDER_RID:", orderRID) fmt.Println("ORDER_STATUS:", orderStatus) w.WriteHeader(http.StatusOK) w.Write([]byte("POST запрос успешно получен\n")) } else { http.NotFound(w, r) } }) err := http.ListenAndServeTLS(":443", "server.pem", "server.key", nil) if err != nil { fmt.Println("Ошибка запуска сервера:", err) } }
Last modified: 15 марта 2024