Полосовой платеж, отправленный в SQS, не отправлен прямо сейчас ... с помощью лямбды - PullRequest
0 голосов
/ 03 октября 2018

Что я представляю

На моем сайте есть форма для покупки товара.Необходимая информация: электронная почта и доменное имя.Платеж управляется по полосе, и я использую Lambda и API-шлюз для проверки платежной информации.Если оплата прошла успешно, я отправляю SQS электронное письмо и имя домена.

Что у меня есть

Данные не отправляются в SQS сразу после проверки.Я не знаю почему, но при первом использовании формы ничего не устанавливается в SQS;во второй раз, когда форма используется, данные из первой формы отправляются в SQS;при третьем использовании формы данные второй формы отправляются в SQS и т. д. ...

Не могу найти проблему по лямбда-коду

const stripe = require('stripe')("sk_test_xxxxxxxxxxxxxxxxxxxxxxxx");
const ApiBuilder = require('claudia-api-builder');
const querystring = require('querystring');
var api = new ApiBuilder();
var aws  = require('aws-sdk');
var sqs = new aws.SQS();

api.post('/stripe',request => {
    let params = querystring.parse(request.body);

    return stripe.charges.create({
        amount: params.package,
        currency: 'eur',
        description: `foo 12 month charge`,
        source: params.stripeToken,
        receipt_email: params.email,
        metadata: {domain_name: params.domain_name, email: params.email},
    }).then(charge => {
        console.log("Data to send in SQS :" + {domain_name:     params.domain_name, email: params.email});
        var sqsMsg = {domain_name: params.domain_name, email: params.email};
        console.log("Data in variable : sqsMsg");
        console.log(JSON.stringify(sqsMsg));
        sendToSQS(JSON.stringify(sqsMsg));

        return charge;
    }).catch((err) => {
        return err;
    }, { success: { contentType: 'text/html'}});
});

function sendToSQS(data) {
    var params = {
        MessageBody: JSON.stringify(data),
        QueueUrl: 'https://sqs.eu-west-1.amazonaws.com/98XXXXXXXXXXX/foo-new-order',
        DelaySeconds: 0
    };
    sqs.sendMessage(params, function(err, data) {
        if(err) {
            console.log(err);
        }
        else {
            console.log('Sending Data to SQS Queue Successful ', data);
        }
    });
}

module.exports = api;

Если кто-то, можете объяснить мне, что не так.Спасибо:)

...