Ответы пользователя по тегу JavaScript
  • IPN listener для PayPal в Meteor app, как реализовать?

    sarkis-tlt
    @sarkis-tlt Автор вопроса
    Full Stack Web Developer (ReactJS/MeteorJS/NodeJS)
    решение для meteor:

    ставим следующие пакеты (поддержка node пакетов и роутинг на серверной стороне).
    meteor add meteorhacks:npm
    meteor add meteorhacks:picker


    в корне проекта появится файл packages.json, дописываем в него следующие модули.
    {
      "paypal-ipn" : "3.0.0",
      "body-parser": "1.14.1"
    }


    на серверной стороне проекта создаем файл в котором конфигурируем роутинг.
    const bodyParser = Meteor.npmRequire('body-parser');
    Picker.middleware(bodyParser.urlencoded({ extended: false }));
    Picker.middleware(bodyParser.json());


    можно в этом же или в новом файле на серверной стороне, определяем пути и настраиваем сам listener.
    Picker.route('/ipn', function(params, req, res, next) {
      res.writeHead(200);
      const ipn = Meteor.npmRequire("paypal-ipn");
      // создаем обертку функции верификации
      // можно так же верифицировать синхронно
      const wrappedVerify = Async.wrap(ipn,"verify");
    
      let verified = false;
    
      //обрабатывать только пост запросы
        if (req.method === "POST") {
    
        // PayPal ждет от нас пересылки IPN сообщения
        // делаем это первым:
            try {
    
                //второй аргумент в продакшене не нужен и по умалчанию false
                verified = wrappedVerify(req.body, {"allow_sandbox" : true});
    
            } catch (err) {
                // код при ошибке
            }
            if (verified === 'VERIFIED') {
                let payment = req.body;
                // код если все успешно
            }
        }
      res.end();
    });
    Ответ написан
    Комментировать
  • LESS Кешируется?

    sarkis-tlt
    @sarkis-tlt
    Full Stack Web Developer (ReactJS/MeteorJS/NodeJS)
    это потому что браузер кеширует сами стили, в не зависимости откуда он их получил, из готового CSS или на лету с LESS которые переделывается в CSS
    Ответ написан
  • JavaScript code style. Стоит ли использовать объявления переменных внутри цикла?

    sarkis-tlt
    @sarkis-tlt
    Full Stack Web Developer (ReactJS/MeteorJS/NodeJS)
    в es6 есть крутая штука let, вот ее стоит использовать для обьявления переменных в цикле, это лучше чем var и не нужно заморачиваться с замыканием.

    если же говорить про es5 то да, для цикла переменную лучше обьявлять внутри цикла, а не до или вне функции. Ну и к тому же это наиболее распростроненный и удобный стиль.
    Ответ написан
    Комментировать