gpt4 book ai didi

vue.js - TypeError : stripe. redirectToCheckout 不是 nuxt.js 中的函数

转载 作者:行者123 更新时间:2023-12-04 13:10:36 27 4
gpt4 key购买 nike

我正在尝试集成 strip 支付网关。我有一个用于前端的 nuxt.js 和用于后端的 adonis.js。

我从前端调用 api 到后端以创建 checkoutSession 并返回 sessionID。我能够创建 checkoutSession 并返回 sessionID 并且在 api 响应中我调用stripe.redirectToCheckout 但它不是重定向而是给出错误,因为 stripe.redirectToCheckout 不是一个函数。如何将用户重定向到结帐页面?

我也安装了 stripe-js 文件。

import { loadStripe } from '@stripe/stripe-js'
const stripe = loadStripe(process.env.STRIPE_PK)

<button class="btn btn-primary btn-block text-center rounded" @click="checkout()">Buy</button>

import { loadStripe } from '@stripe/stripe-js'
const stripe = loadStripe(process.env.STRIPE_PK)

export default {
methods: {
checkout() {
let params = {
payment_method_types: ['card'],
line_items: [
{
name: 'Buy Now',
images: ['image.jpg'],
amount: 100 + '00',
currency: 'usd',
quantity: 1,
},
],
mode: 'payment',
success_url: `${process.env.URL}/success`,
cancel_url: window.location.href,
}
axios
.post(`${process.env.API_BASE_URL}/stripe/session`, params, {
'Content-type': 'application/json',
Accept: 'application/json',
})
.then((response) => {
this.stripeSession = response.data.data
stripe.redirectToCheckout({sessionId: this.stripeSession})
})
.catch((e) => {
console.log(e)
})
}
},
}
</script>

最佳答案

根据 tyhe doc,loadStripe 是一个异步函数,尝试在 stripe 分配中添加 await:

const stripe = await loadStripe(process.env.STRIPE_PK)

编辑:要摆脱 Module parse failed: Cannot use keyword 'await' outside an async function 错误,您只需要在函数声明之前添加异步:

async function myAsyncFunction() {
const test = await myPromise();
}

因为我没有你的函数的完整定义,所以我不能在你的代码中向你展示它:-(

但是一个奇怪的解决方案(混合“等待”和“然后”)是:

import { loadStripe } from '@stripe/stripe-js';

axios
.post(`${process.env.API_BASE_URL}/stripe/session`, params, {
'Content-type': 'application/json',
Accept: 'application/json',
})
.then(async response => {
this.stripeSession = response.data.data;
const stripe = await loadStripe(process.env.STRIPE_PK);
stripe.redirectToCheckout({ sessionId: this.stripeSession });
})
.catch(e => {
console.log(e);
});

关于vue.js - TypeError : stripe. redirectToCheckout 不是 nuxt.js 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65774179/

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