amazon-web-services - 发送到 SQS 的条带付款现在不发送......使用 lambda
问题描述
我想象的
在我的网站上,我有一个购买产品的表格。需要的信息是电子邮件和域名。付款由条带管理,我使用 Lambda 和 API 网关来验证付款信息。如果付款成功,我将向 SQS 发送电子邮件和域名。
我有什么
数据不会在验证后立即发送到 SQS。我不知道为什么,但第一次使用表单时,没有设置为 SQS ;第二次使用表单时,将第一个表单的数据发送到 SQS ;第三次使用表单时,将第二次表单的数据发送到 SQS,等等......
无法在 lambda 代码上找到问题
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;
如果有人,可以解释我出了什么问题。谢谢 :)
解决方案
推荐阅读
- yii2 - 在 Yii2 中的 DetailView::widget 上打开图片
- python - 如何使用 xlwings 在 Excel 中复制和粘贴筛选表
- java - mockMvc,从 SpringBoot 中的 json 文件中获取内容
- python-3.x - 如何在python中将我的sql结果转换为以下字典格式?
- c# - WPF Material Design ComboBox Flyout问题
- laravel - 在 laravel 5.1 中全局注册自定义构建器
- azure - Azure 媒体服务 - 客户端上设置的自定义转换丢失?
- php - 将其转换为使用 Guzzle 不起作用
- c# - 自动缩放 RichTextBox
- sqlite - 查找大型 SQLite 数据库中每个表的行数