Я пытаюсь интегрировать софорт в качестве варианта оплаты в свое приложение node js, и пока все работает. Единственная проблема, которая у меня есть, это то, что я не знаю, как выполнить функцию после того, как я получил платеж. Прямо сейчас меня перенаправляют только на sofort, я перевожу свои деньги, а затем перенаправляюсь на URL-адрес успеха, но я не знаю, как дать серверу знак, что платеж был получен. Я думал, что могу использовать URL-адрес уведомления как способ связи с сервером, но он не отправляет запрос GET или POST, и поэтому я действительно не знаю, что он на самом деле делает.
Вот мой код:
router.get('/sofort', function(req, res, next) {
'use strict';
var util = require('util');
var Sofort = new (require('node-sofort'))({
configKey : '181556:493374:5c3627c5d50e1f77ee0f5824abb46084'
});
try {
Sofort.createPayment(101.00, 'EUR', ['Demo1'], {
user_variables: ['variable1','variable2','variable3'],
success_url: 'http://localhost:3000/',
success_link_redirect: true,
notification_urls: 'http://localhost:3000/testo'}, function (err,
data) {
console.info(data);
console.info(data.payment_url);
res.redirect(data.payment_url)
});
} catch (e) {
console.info(e);
}
)}
Если у вас есть что-то на уме, это может помочь, просто скажите это.
вам нужно создать правильный URL-адрес на вашем сервере узла, чтобы иметь возможность перенаправлять и получать данные.
измените Success_url на
success_url: 'http://localhost:3000/sofort/success/-TRANSACTION-'
а затем создать маршрут (опубликовать или получить, я не знаю)
router.post('/sofort/success/:transaction', function(req, res) {
var transactionId = req.body.transaction;
console.info('transaction succesful for id ' + transactionId);
res.end();
});
спасибо, это сработало :), хотя идентификатор транзакции был неопределенным:/
Я никогда не использовал эту библиотеку, просто работал на основе документов. Возможно, вам нужно проверить форматирование и/или размещение параметра TRANSACTION. Документ достаточно полный
просто проверьте вкладку отладчика/сети, если какой-либо идентификатор транзакции отправлен. если да, вы можете узнать имя параметра, который вам нужно указать в вашем маршруте. может быть как :TRANSACTION
или :transactionId
Хорошо, я только что выудил идентификатор транзакции из строки URL.
вам нужно правильно использовать URL-адрес успеха,
success_url - String (255) Success link, overwrites the default value from the project settings. Is called when your customer successfully executed SOFORT Banking and the transfer has been listed in the customer's online banking. If the transaction ID of SOFORT Banking should be used as part of the URL, the parameter '-TRANSACTION-' can be inserted in the URL String. If no success link is defined in the project settings this parameter becomes mandatory { success_url: 'https://www.example.com/sofort/success' }