重定向到ReactJS中的结帐

时间:2019-06-11 21:23:10

标签: javascript reactjs stripe-payments

我正在尝试在ReactJS中实现Stripe函数“重定向到结帐”。 我一直在四处张望,似乎没有任何包裹可以帮到您。

const stripe = 
Stripe('key');

stripe.redirectToCheckout({
  items: [
    // Replace with the ID of your SKU
    {sku: 'sku_123', quantity: 1}
  ],
  successUrl: 'https://your-website.com/success',
  cancelUrl: 'https://your-website.com/canceled',
}).then(({error}) => {
  // If `redirectToCheckout` fails due to a browser or 
network
  // error, display the localized error message to your 
customer
  // using `error.message`.
});

这是我获得此源代码的地方:https://stripe.com/docs/stripe-js/reference#stripe-redirect-to-checkout

StripeJS似乎仅支持不将产品SKU作为参数的标准结帐

2 个答案:

答案 0 :(得分:3)

阅读新的stripe-js文档https://stripe.com/docs/stripe-js/react之后 我发现这可能对您有用

安装stripe代替使用@stripe/stripe-js 然后可以通过

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

...

const stripePromise = loadStripe(
    "pk_.........."
  );

const stripe = await stripePromise;

stripe.redirectToCheckout({
      ...
    })

答案 1 :(得分:1)

我发现ti是如何工作的。

基本上根据文档,有必要将Stripe脚本导入public / index.html

stripe.redirectToCheckout(...)

可以简单地放在按钮的onClick中。 在文档中确实不清楚的事情可能会误导像我这样的新手,在于设置公钥:

const stripe = Stripe('key');

不起作用,因为在编译时找不到该脚本。
可以使用以下方法解决:

const stripe = window.Stripe('key');

这对我有用。