簡體   English   中英

Stripe Node - 在結賬時使用折扣券后計算申請費

[英]Stripe Node - Calculating application fee AFTER discount coupon is used in checkout

我有一個鏈接到已連接帳戶的 Stripe Checkout 會話。 連接的帳戶需要從我的平台收取 10% 的費用。 它目前運行良好,但是現在我添加了客戶在結帳窗口中使用優惠券的功能,申請費是根據折扣的總金額計算的。

例如,如果我收取 32 歐元,則申請費為 3.20 歐元。 如果折扣將費用降至 10 歐元,則費用為 1 歐元。 但它仍然收費 3.20 歐元。

我有一個計算申請費金額的函數,問題是這是在創建結帳會話時完成的 - 這發生在客戶輸入折扣之前。

我想不出解決這個問題的方法,因為會話總是在應用折扣之前創建。 任何幫助/建議表示贊賞!

const calculateApplicationFeeAmount = (total) => total * site.stripeFee;

const session = await stripe.checkout.sessions.create(
  {
    payment_method_types: ["card"],
    line_items: [
      {
        name: price.name,
        amount: price.amount,
        currency: site.currency,
        quantity: 1,
      },
    ],
    payment_intent_data: {
      application_fee_amount: calculateApplicationFeeAmount(price.amount),
      description: price.name,
    },
    mode: "payment",
    allow_promotion_codes: true,
    success_url: `${config.baseUrl.url}/unlock/session/{CHECKOUT_SESSION_ID}`,
    cancel_url: `${config.baseUrl.url}/unlock/${deviceID}`,
    metadata: {
      deviceID: deviceID,
    },
  },
  {
    stripeAccount: site.stripeAccount,
  }
);

return session;

這里最好的解決方案可能是:

  1. 在創建結帳會話時使用payment_intent_data.capture_method:manual

  2. event, update the application_fee_amount on the PaymentIntent接到事件后,更新application_fee_amount上PaymentIntent

  3. 捕獲 PaymentIntent

限制是並非所有支付方式都支持手動捕獲。

或者,您也可以稍后退還申請費: https : //stripe.com/docs/api/fee_refunds/create

暫無
暫無

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

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