【发布时间】:2018-08-08 04:15:18
【问题描述】:
我尝试升级我的一个 lambda,但无法使其工作... 所以我有一个 lambda 来管理我的条带付款,一切正常。
我想在付款正常时向 SQS 发送消息。
你可以在下面看到我的 lambda 函数:
const stripe = require('stripe')("sk_test_xXxXxXxXxX");
const ApiBuilder = require('claudia-api-builder');
const querystring = require('querystring');
var api = new ApiBuilder();
var AWS = require('aws-sdk');
var sqs = new AWS.SQS({region : 'eu-west-1'});
var queueUrl = 'https://sqs.eu-west-1.amazonaws.com/xXXxXXxXXx/xXxXxX-new-site.fifo';
api.post('/stripe',request => {
console.log(request);
let params = querystring.parse(request.body);
console.log(params);
return stripe.charges.create({
amount: params.package,
currency: 'eur',
description: `12 month charge`,
source: params.stripeToken,
receipt_email: params.email,
metadata: {domain_name: params.domain_name, email: params.email},
}).then(charge => {
var responseBody = {
message: ''
};
var responseCode = 200;
var message = {
MessageBody: "TEST",
QueueUrl: queueUrl
};
console.log(message);
sqs.sendMessage(message, function(err, data) {
console.log(err);
console.log(data);
if (err) {
console.log('error:', "failed to send message" + err);
var responseCode = 500;
} else {
console.log('data:', data.MessageId);
responseBody.message = 'Sent to ' + queueUrl;
responseBody.messageId = data.MessageId;
}
var response = {
statusCode: responseCode,
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(responseBody)
};
return response;
});
return charge;
}).catch((err) => {
return err;
});
});
module.exports = api;
我在第 25 行和第 59 行之间添加了代码。
在 cloudwatch 日志中,我可以看到第 36 行 (console.log(message);) 的控制台输出,但第 39 行没有。
感谢您的帮助:)
【问题讨论】:
标签: lambda stripe-payments amazon-sqs