Загрузка...

Требуется помощь с express и **** api

Тема в разделе Node.js создана пользователем RichPerson 14 сен 2022. (поднята 14 сен 2022) 151 просмотр

  1. RichPerson
    RichPerson Автор темы 14 сен 2022 Разработка - https://zelenka.guru/threads/4480553/ 2160 23 сен 2019
    Суть в чем, я получаю POST запрос с данными из формы, после этого происходит создание **** invoce на ту сумму, которая была получена из формы. После идет переадресация на invoce. Проблема в том, что переадресация происходит быстрее, чем создается сам invoce и происходит переадресация на undifined.


    JavaScript
    server.post('/' + element, urlencodedParser, function(req, res){
    if(!req.body){
    return res.sendStatus(400)
    }
    else{

    let name = req.body.name
    let phone = req.body.tel
    let address = req.body.adress
    let payment = req.body.payment
    let summa = req.body.summaAll

    const fields = {
    amount: summa,
    currency: 'RUB',
    comment: 'Оплата товара',
    expirationDateTime: lifetime,
    email: 'example@mail.org',
    account : 'client4563',
    customFields : {themeCode: 'кодСтиля'},
    successUrl: '****.com',
    paySource: 'card'

    };

    const billId = qiwiApi.generateId();



    const invoce = CreateInvoice(billId, fields)
    console.log(invoce)

    const IdUrl = path.join(__dirname + '/users/' + users + '/Url/' + element + '.json')
    const UrlInfo = JSON.parse(fs.readFileSync(IdUrl))
    UrlInfo.NewForm = true
    fs.writeFileSync(path.join(__dirname + '/users/' + users + '/Url/' + element + '.json'), JSON.stringify(UrlInfo))
    NewForm(bot, users, name, phone, payment, address, summa)
    if(payment === "Карта"){
    res.redirect(invoce)
    }
     
  2. mulyar_trx
    mulyar_trx 14 сен 2022 Заблокирован(а) 3 13 июл 2022
    Тебе нужно подождать пока получишь ответ от ****, для этого функцию отвечающую за обработку ulr сделать асинхронной
    А на элементе где ты получаешь ответ от **** поставить await(подождать)
    Или же используй Promise, куча в инфы в инете как он работает

    Чтобы не происходило этих проблем, желательно во всех функция которые работают с запросами к url или бд, использовать await
    JavaScript
    server.post('/' + element, urlencodedParser, async function(req, res){
    if(!req.body){
    return res.sendStatus(400)
    }
    else{

    let name = req.body.name
    let phone = req.body.tel
    let address = req.body.adress
    let payment = req.body.payment
    let summa = req.body.summaAll

    const fields = {
    amount: summa,
    currency: 'RUB',
    comment: 'Оплата товара',
    expirationDateTime: lifetime,
    email: 'example@mail.org',
    account : 'client4563',
    customFields : {themeCode: 'кодСтиля'},
    successUrl: '****.com',
    paySource: 'card'

    };

    const billId = qiwiApi.generateId();



    const invoce = await CreateInvoice(billId, fields)
    console.log(invoce)

    const IdUrl = path.join(__dirname + '/users/' + users + '/Url/' + element + '.json')
    const UrlInfo = JSON.parse(fs.readFileSync(IdUrl))
    UrlInfo.NewForm = true
    fs.writeFileSync(path.join(__dirname + '/users/' + users + '/Url/' + element + '.json'), JSON.stringify(UrlInfo))
    NewForm(bot, users, name, phone, payment, address, summa)
    if(payment === "Карта"){
    res.redirect(invoce)
    }
     
    14 сен 2022 Изменено
    1. RichPerson Автор темы
      mulyar_trx, Спасибо, сейчас буду пробовать
Загрузка...
Top