![](/img/trans.png)
[英]Unhandled Rejection (TypeError): stripe.redirectToCheckout is not a function
[英]How can I retrieve the result value from stripe.redirectToCheckout()?
我正在嘗試從 stripe.redirectToCheckout() 獲取結果值。 據說返回 Promise https://stripe.com/docs/js/checkout/redirect_to_checkout 。 這是我認為可以工作的代碼,但它沒有
stripe.redirectToCheckout({
lineItems: [
{
price: stripePrice,
quantity: token,
},
],
mode: "payment",
successUrl: someurl
cancelUrl: someurl
}).then(result => {
if (result.error) {
alert(result.error.message);
}
})
不再推薦僅客戶端 Checkout 和redirectToCheckout
。
相反,您可以使用支付鏈接(如果您需要僅限客戶端的解決方案),或者您可以在您的服務器上創建結帳會話並將人們發送到結帳會話對象上的url
。
但是,關於您最初的問題,如果重定向失敗, redirectToCheckout
只會返回一個承諾。 如果重定向成功,則在您的頁面上運行的 JavaScript 將停止運行,因為瀏覽器將導航到另一個頁面(Stripe Checkout 頁面),因此沒有機會返回任何內容。
當您被重定向並且您的腳本不再存在時,您無法從此函數中獲取數據
Stripe 會在用戶結帳后將您重定向回來,然后您必須讀取數據。
您可以添加 session_id 查詢參數來獲取結帳數據:
success_url: "http://yoursite.com/order/success?session_id={CHECKOUT_SESSION_ID}"
請注意, CHECKOUT_SESSION_ID
是一個文字字符串,必須完全按照您在此處看到的那樣添加。
const session = await stripe.checkout.sessions.retrieve(req.query.session_id);
const customer = await stripe.customers.retrieve(session.customer);
資料來源: https://stripe.com/docs/payments/checkout/custom-success-page
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.