Как выполнить функцию, после получения оплаты (Sofort)? - PullRequest
1 голос
/ 15 апреля 2019

Я пытаюсь интегрировать sofort как способ оплаты в мое приложение js для узла, и пока все работает. Единственная проблема, с которой я столкнулся, заключается в том, что я не знаю, как выполнить функцию после получения оплаты. Прямо сейчас меня перенаправляют только для того, чтобы смягчить, перевести мои деньги, а затем перенаправить на успешный 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.log(data);
        console.log(data.payment_url);
        res.redirect(data.payment_url)
    });
} catch (e) {
    console.log(e);
}
)}

Если вы имеете в виду что-нибудь, это может помочь просто сказать это

1 Ответ

0 голосов
/ 15 апреля 2019

изменить success_url на

success_url: 'http://localhost:3000/sofort/success/-TRANSACTION-'

, а затем создать маршрут (опубликовать или получить, я не знаю)

router.post('/sofort/success/:transaction', function(req, res) {
    var transactionId = req.body.transaction;

    console.log('transaction succesful for id ' + transactionId);    

    res.end();
});
...