簡體   English   中英

Stripe invalid_request_error:令牌不能作為 Source 傳入

[英]Stripe invalid_request_error: A token may not be passed in as a Source

我正在嘗試在我的電子商務網站上設置付款方式,但條紋出現此錯誤:令牌可能不會作為來源傳遞。 您可以使用帶有 card[token]=tok_1Lg9eWSEOA145r9TEaDbCDmr 的 /v1/sources 將您的令牌轉換為 Source。

API 側面:

const router = require("express").Router();
const stripe = require("stripe")(process.env.STRIPE_KEY);

router.post("/payment",(req,res)=> {
    stripe.paymentIntents.create({
        source:req.body.tokenId,
        amount:req.body.amount,
        currency: "usd",
    },(stripeErr,stripeRes)=>{
        if(stripeErr) {
            res.status(500).json(stripeErr);
        } else {
            res.status(200).json(stripeRes);
        }
    })
});


module.exports = router;

客戶端:

useEffect(()=>{
    const makeRequest = async ()=> {
      try {
        const res = await userRequest.post("/checkout/payment",{
          tokenId: stripeToken.id,
          amount: cart.total*100,
        });
        history.push("/success",{data: res.data});
      } catch{}
    };
    stripeToken && makeRequest();
  },[stripeToken, cart.total, history]);

使用 Stripe, Tokens 和 Sources 都是 legacy 並且 deprecated 您應該改用具有付款意圖的付款方式

您可以創建一個支付方式而不是一個令牌,然后使用payment_method屬性將該支付方式傳遞給支付意圖。

或者,更好的是,請遵循接受付款指南,這不需要您直接處理付款方式(Stripe.js 會在確認付款意圖客戶端時為您處理)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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