如何根据节点中条带中的送货地址使运费可变

问题描述 投票:0回答:1

我正在使用 Stripe 的 Checkout API。我想提供国际运输,具有不同的运输选项和基于结账条纹页面上动态选择的国家/地区的运输成本。有没有办法使用 Checkout 使运费选项以用户在 Checkout 表单中输入的送货地址国家/地区为条件?这是我的代码的摘录:

const session = await stripe.checkout.sessions.create({
    success_url: "http://localhost:4242/success.html?id={CHECKOUT_SESSION_ID}",
    cancel_url: "http://localhost:4242/cancel.html",
    payment_method_types: ["card"],
    mode: "payment",
    line_items: [
      {
        price: "price_1Nxx6ZDsK4pxN0rvXLjRy7bJ",
        quantity: req.body.quantity,
      },
    ],
    customer: "cus_Ol9Y0V0GCXTmSF",
    billing_address_collection: "required",
    shipping_address_collection: {
      allowed_countries: [
        "AT",
        "BE",
        "BG",
        "HR",
        "CY",
        "CZ",
        "DK",
        "EE",
        "FI",
        "FR",
        "DE",
        "GR",
        "HU",
        "IE",
        "IT",
        "LV",
        "LT",
        "LU",
        "MT",
        "NL",
        "PL",
        "PT",
        "RO",
        "SK",
        "SI",
        "ES",
        "SE",
      ],
    },
shipping_options: [
    {
      shipping_rate_data: {
        type: 'fixed_amount',
        fixed_amount: {
          amount: 0,
          currency: 'eur',
        },
        display_name: 'Free shipping',
        delivery_estimate: {
          minimum: {
            unit: 'business_day',
            value: 5,
          },
          maximum: {
            unit: 'business_day',
            value: 7,
          },
        },
      },
    },
    {
      shipping_rate_data: {
        type: 'fixed_amount',
        fixed_amount: {
          amount: 1000,
          currency: 'usd',
        },
        display_name: 'Express',
        delivery_estimate: {
          minimum: {
            unit: 'business_day',
            value: 1,
          },
          maximum: {
            unit: 'business_day',
            value: 5,
          },
        },
      },
    },
  ],
    customer_update: { shipping: "auto" },
    automatic_tax: {
      enabled: true,
    },
    allow_promotion_codes: true,

  
  });

想象一下这种情况,预售产品在意大利,如果用户输入意大利送货地址就可以了,否则我想更改运费,例如对于法国,我将享受 10 欧元的低服务和 20 欧元的快速服务。 我怎样才能在条纹中实现这个?

javascript node.js stripe-payments payment payment-processing
1个回答
0
投票

这是个好主意...但不可能。

唯一的这样的东西是 Stripe Tax,其中税率是根据在会话中输入的地址计算的 - 但仅出于税收目的,您甚至不能将其用作运费的黑客,因为它根据您的注册。

您唯一的选择是在会话之前收集地址,而不是在会话中收集地址,并传递适合您收集的地址的 Shipping_rate。

© www.soinside.com 2019 - 2024. All rights reserved.