Что я представляю
На моем сайте есть форма для покупки товара.Необходимая информация: электронная почта и доменное имя.Платеж управляется по полосе, и я использую 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;
Если кто-то, можете объяснить мне, что не так.Спасибо:)