【发布时间】:2019-01-31 21:18:18
【问题描述】:
我使用 gatsby react 和 aws lambda 创建了条带支付页面。但此代码不会创建客户数据,例如(送货地址、电子邮件等)
Lamdba 代码
const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY);
module.exports.handler = (event, context, callback) => {
console.log("creating charge...");
// Pull out the amount and id for the charge from the POST
console.log(event);
const requestData = JSON.parse(event.body);
console.log(requestData);
const amount = requestData.amount;
const token = requestData.token.id;
// Headers to prevent CORS issues
const headers = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "Content-Type"
};
return stripe.charges
.create({
// Create Stripe charge with token
amount,
source: token,
currency: "usd",
description: "Tshirt"
})
.then(charge => {
// Success response
console.log(charge);
const response = {
headers,
statusCode: 200,
body: JSON.stringify({
message: `Charge processed!`,
charge
})
};
callback(null, response);
})
.catch(err => {
// Error response
console.log(err);
const response = {
headers,
statusCode: 500,
body: JSON.stringify({
error: err.message
})
};
callback(null, response);
});
};
盖茨比支付码
代码有效,付款有效。但运输细节不起作用。
openStripeCheckout(event) {
event.preventDefault();
this.setState({ disabled: true, buttonText: "WAITING..." });
this.stripeHandler.open({
name: "Demo Product",
amount: amount,
shippingAddress: true,
billingAddress: true,
description: "",
token: (token, args) => {
fetch(`AWS_LAMBDA_URL`, {
method: "POST",
body: JSON.stringify({
token,
args,
amount,
}),
headers: new Headers({
"Content-Type": "application/json",
}),
})
.then(res => {
console.log("Transaction processed successfully");
this.resetButton();
this.setState({ paymentMessage: "Payment Successful!" });
return res.json();
})
.catch(error => {
console.error("Error:", error);
this.setState({ paymentMessage: "Payment Failed" });
});
},
});
}
我想查看客户数据、送货地址等。
感谢您的帮助。
【问题讨论】:
-
在您的后端,您似乎提取了金额和令牌 ID,但没有提取运输数据。当您
console.log(requestData);时,您是否看到在您的前端输入的args(运输数据)的内容?你可以从requestData.token.emailstripe.com/docs/checkout#required拉邮件 -
@duck 感谢您的回答。但我不知道我该怎么做?你能写示例代码吗?
标签: javascript node.js reactjs aws-lambda stripe-payments