gpt4 book ai didi

javascript - Koa 和 Stripe,等待渲染页面

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:40 24 4
gpt4 key购买 nike

我正在使用 koa 和 stripe 来处理一次性付款。它按应有的方式工作,但是它会在分配 data 之前呈现页面。我希望能够在分配数据后渲染页面,以便 id 将显示在页面 View 中而不是未定义。

我尝试在回调函数中渲染页面,但收到404 not found。我尝试在 stripe.charges.create 函数之后使用 .then ,因为 stripe 与 Promise 兼容,但它给出了相同的结果。我当前的代码如下。

    module.exports.payment = function* payment()
{
const params = this.request.body;
let data;

if (!params.stripeToken) {
this.throw(400, "Sorry, something has gone awry.");
}
if (!params.amount) {
this.throw(400, "A purchase amount must be supplied.");
}
const chargeAmount = params.amount * 100;

const charge = stripe.charges.create({
amount: chargeAmount,
currency: "USD",
source: params.stripeToken,
description: `${config.site.name} order#: ${this.session.id}`
}, (err, charge) => {
data = charge.id;
}

);

yield this.render("payment/payment_success", {
id: data
});
};

最佳答案

如果 stripe 库支持 Promise,那么最好的选择可能是生成 stripe.charges.create

module.exports.payment = function* payment()
{
const params = this.request.body;

if (!params.stripeToken) {
this.throw(400, "Sorry, something has gone awry.");
}
if (!params.amount) {
this.throw(400, "A purchase amount must be supplied.");
}
const chargeAmount = params.amount * 100;

const charge = yield stripe.charges.create({
amount: chargeAmount,
currency: "USD",
source: params.stripeToken,
description: `${config.site.name} order#: ${this.session.id}`
};

yield this.render("payment/payment_success", {
id: charge.id
});
};

现在,当您渲染 View 时,费用将使用您的 strip 调用的结果填充。

关于javascript - Koa 和 Stripe,等待渲染页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40369230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com