簡體   English   中英

如何從 stripe.redirectToCheckout() 檢索結果值?

[英]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 查詢參數來獲取結帳數據:

  1. 修改成功URL:
success_url: "http://yoursite.com/order/success?session_id={CHECKOUT_SESSION_ID}"

請注意, CHECKOUT_SESSION_ID是一個文字字符串,必須完全按照您在此處看到的那樣添加。

  1. 使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM