代码之家  ›  专栏  ›  技术社区  ›  user_78361084

未经处理的拒绝(TypeError):stripe.rerectToCheckout不是函数

  •  0
  • user_78361084  · 技术社区  · 4 年前

    我正在尝试为一个网站实现Stripe结账。不幸的是,Stripe文档非常不完整。我有:

    import React from 'react';
    import { loadStripe } from '@stripe/stripe-js';
    
    const stripe = loadStripe('pk_test_key');
    
    const handleClick = async (event) => {
      stripe.redirectToCheckout({
        lineItems: [
          {price: 'price_something', quantity: 1},
        ],
        mode: 'subscription',
        successUrl: 'https://example.com/success?session_id={CHECKOUT_SESSION_ID}',
        cancelUrl: 'https://example.com/cancel',
      }).then(function(result){
        alert(result);
      });
    };
    
    export default function Stripe(){
      return (
        <button role="link" onClick={handleClick}>
          Checkout
        </button>
      );
    }
    

    我点击按钮,得到一个错误: Unhandled Rejection (TypeError): stripe.redirectToCheckout is not a function

    我的密钥是正确的,但我在他们的文档或其他任何地方都找不到任何信息来解决这个问题。谢谢!

    1 回复  |  直到 4 年前
        1
  •  3
  •   tmhao2005    4 年前

    据我了解 loadStripe 返回a Promise 因此,请尝试等待问题解决:

    const handleClick = async (event) => {
      const stripe = await loadStripe('pk_test_key');
    
      stripe.redirectToCheckout({
        // ...
      })
    };
    
        2
  •  -1
  •   Abhay Prajapati    3 年前

    它有助于检查您是否使用了正确的wait关键字,因为我错过了这个关键字,并想知道2个小时的错误在哪里