Javascript Reactjs条带支付无法与Node/Express一起使用
我在react项目中第一次使用stripe 我已经用测试api密钥设置了付款。我已经使用Javascript和React好几年了,但我对node.js/express的了解不多。因此,我使用了沙箱中的锅炉板作为后端,您可以在下面看到Javascript Reactjs条带支付无法与Node/Express一起使用,javascript,reactjs,stripe-payments,Javascript,Reactjs,Stripe Payments,我在react项目中第一次使用stripe 我已经用测试api密钥设置了付款。我已经使用Javascript和React好几年了,但我对node.js/express的了解不多。因此,我使用了沙箱中的锅炉板作为后端,您可以在下面看到 const cors = require("cors"); const express = require("express"); const stripe = require("stripe")(&quo
const cors = require("cors");
const express = require("express");
const stripe = require("stripe")("MY TEST KEY HAS BEEN INSERTED HERE");
const uuid = require("uuid/v4");
const app = express();
app.use(express.json());
app.use(cors());
app.get("/", (req, res) => {
res.send("Add your Stripe Secret Key to the .require('stripe') statement!");
});
app.post("/checkout", async (req, res) => {
console.log("Request:", req.body);
let error;
let status;
try {
const { product, token } = req.body;
const customer = await stripe.customers.create({
email: token.email,
source: token.id
});
const idempotency_key = uuid();
const charge = await stripe.charges.create(
{
amount: 8.00,
currency: "gbp",
customer: customer.id,
receipt_email: token.email,
description: `Purchased the ${product.name}`,
name: token.card.name,
},
{
idempotency_key
}
);
console.log("Charge:", { charge });
status = "success";
} catch (error) {
console.error("Error:", error);
status = "failure";
}
res.json({ error, status });
});
app.listen(8080);
这是react js中的函数,即使用户输入了卡号等,它也会处理此问题
async function handleToken(token){
let whichClass = {
name: "Bodytone",
price: 8.00
}
const response = await axios.post("https://s9mh5.sse.codesandbox.io/checkout", {token, whichClass});
const { status } = response.data;
if (status === "success") {
alert("Successful payment");
} else {
alert("failed payment");
}
}
我发现,当我在输入详细信息后单击发送付款时,我看到绿色的勾号表示一切顺利。但是在这个帐户的stripe仪表板中,没有显示测试付款的结果
在控制台中,我看到记录了两条不同的错误消息,详情如下:
StripeCheckout.open:必须选择“token”或“source”,但找不到这两个选项。
您可以在结帐文档中了解可用的配置选项:
0.chunk.js:108728:20
以及
**Uncaught TypeError: this.fn is not a function
trigger https://checkout.stripe.com/checkout.js:3
bind https://checkout.stripe.com/checkout.js:3
onToken https://checkout.stripe.com/checkout.js:3
closed https://checkout.stripe.com/checkout.js:3
bind https://checkout.stripe.com/checkout.js:3
processMessage https://checkout.stripe.com/checkout.js:2
bind https://checkout.stripe.com/checkout.js:2
message https://checkout.stripe.com/checkout.js:2
RPC https://checkout.stripe.com/checkout.js:2
checkout.js:3:24013**
有人能发现错误吗
非常感谢您的帮助和反馈 您应该考虑使用,而不是您现在正在使用的传统表单,或者可能使用元素来构建您自己的表单,您可以使用它
也就是说,您没有提供足够的客户端代码来诊断问题。Hi@floatingLomas,感谢您的反馈和建议!我一定会调查这一事件的。