0Pricing
Stripe Payments & SaaS Billing Systems · 강의

여러 통화와 가격 지원

상품과 구독에 다중 통화 지원을 구현하여 고객이 현지 통화로 결제할 수 있도록 합니다.

여러 통화와 가격 지원은(는) CoddyKit의 무료 Stripe Payments & SaaS Billing Systems 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Stripe Payments & SaaS Billing Systems 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Stripe Payments & SaaS Billing Systems 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

Go Global with Multi-Currency

Expanding your business globally often means supporting customers from different countries. A key part of this is offering prices in their local currency.

This makes purchasing more straightforward and builds trust, as customers see prices they understand without needing to calculate conversions.

Stripe's Multi-Currency Support

Stripe is built for global businesses and supports processing payments in over 135 currencies. You have two main ways to handle currencies:

  • Specific Currencies: Define prices directly in a particular currency (e.g., $10 USD or €9 EUR).
  • Dynamic Conversion: Let Stripe convert funds if a customer pays in a currency different from your product's defined currency.

Defining Prices in Specific Currencies

The most common approach is to create separate Price objects for each currency you want to support. This allows you to set precise amounts for each market, accounting for local pricing strategies or exchange rate fluctuations.

Each price will be linked to a product, but will have its own currency and unit_amount.

Creating a Price in EUR

Here's a simplified example of how you might create a Stripe Price object for a 'Basic Plan' specifically in Euros (€). In a real application, you'd use the Stripe API client library.

public class Main {
  public static void main(String[] args) {
    System.out.println("Simulating Stripe Price Creation...");
    String productName = "Basic Plan";
    long amount = 1000; // 10.00 EUR
    String currency = "eur";

    // In a real app, you'd use the Stripe Java client library:
    // PriceCreateParams params = PriceCreateParams.builder()
    //     .setUnitAmount(amount)
    //     .setCurrency(currency)
    //     .setProductData(PriceCreateParams.ProductData.builder()
    //         .setName(productName).build())
    //     .build();
    // Price price = Price.create(params);

    System.out.println("Created price for " + productName);
    System.out.println("Amount: " + (double)amount / 100 + " " + currency.toUpperCase());
    System.out.println("Simulated Price ID: price_123EUR");
  }
}

Understanding `currency_options`

For more advanced scenarios, Stripe allows you to define a single Price object with multiple currency options. This is useful when you want to manage a single 'logical' price but offer different exact amounts per currency.

For example, a 'Premium Plan' might cost $20 USD or €18 EUR, all managed under one price ID.

Price with Multiple Currency Options

This simulated example shows how you might set up a price where the default currency is USD, but you also provide a specific amount for EUR. Notice how currency_options is used.

import java.util.HashMap;
import java.util.Map;

public class Main {
  public static void main(String[] args) {
    System.out.println("Simulating Price with Currency Options...");
    String productName = "Premium Plan";

    // In a real app, use the Stripe Java client library:
    // Map<String, Object> usdOptions = new HashMap<>();
    // usdOptions.put("unit_amount", 2000L); // $20.00 USD

    // Map<String, Object> eurOptions = new HashMap<>();
    // eurOptions.put("unit_amount", 1800L); // €18.00 EUR

    // Map<String, Map<String, Object>> currencyOptions = new HashMap<>();
    // currencyOptions.put("usd", usdOptions);
    // currencyOptions.put("eur", eurOptions);

    // PriceCreateParams params = PriceCreateParams.builder()
    //     .setCurrency("usd") // This is the 'base' currency
    //     .setUnitAmount(2000L) // Base amount
    //     .setProductData(PriceCreateParams.ProductData.builder()
    //         .setName(productName).build())
    //     .putAllCurrencyOptions(currencyOptions)
    //     .build();
    // Price price = Price.create(params);

    System.out.println("Created price for " + productName);
    System.out.println("Default (USD): $20.00");
    System.out.println("Option (EUR): €18.00");
    System.out.println("Simulated Price ID: price_456MULTI");
  }
}

Displaying Multi-Currency Prices

On your website or application, you'll need to present the correct currency option to your users. This often involves:

  • Geolocation: Detecting the user's IP address to infer their country and preferred currency.
  • User Choice: Providing a currency selector dropdown.
  • Browser Settings: Checking the user's browser language or locale settings.

Once selected, you'll use the corresponding Stripe Price ID (or the correct currency option within a Price ID) for the transaction.

Checkout Session in Local Currency

When a customer is ready to pay, you create a Stripe Checkout Session. It's crucial that you use the Price ID that corresponds to the currency the customer has selected or that you've determined for them.

This ensures they are charged the correct amount in their local currency.

public class Main {
  public static void main(String[] args) {
    System.out.println("Simulating Stripe Checkout Session...");
    String selectedPriceId = "price_123EUR"; // From Scene 4
    String successUrl = "https://example.com/success";
    String cancelUrl = "https://example.com/cancel";
    String customerEmail = "customer@example.com";

    // In a real app, use the Stripe Java client library:
    // SessionCreateParams params = SessionCreateParams.builder()
    //     .setMode(SessionCreateParams.Mode.PAYMENT)
    //     .addLineItem(
    //         SessionCreateParams.LineItem.builder()
    //             .setPrice(selectedPriceId)
    //             .setQuantity(1L)
    //             .build())
    //     .setSuccessUrl(successUrl)
    //     .setCancelUrl(cancelUrl)
    //     .setCustomerEmail(customerEmail)
    //     .build();
    // Session session = Session.create(params);

    System.out.println("Creating Checkout Session for Price ID: " + selectedPriceId);
    System.out.println("Customer Email: " + customerEmail);
    System.out.println("Simulated Checkout URL: https://checkout.stripe.com/pay/cs_live_123_abc");
  }
}

Currency Conversion Considerations

Even with multi-currency pricing, you might encounter currency conversions if your payout currency (the currency Stripe sends money to your bank account in) differs from the customer's payment currency.

  • Implicit Conversion: Stripe automatically converts funds at a market rate if needed.
  • Explicit Pricing: Defining prices in local currencies minimizes implicit conversions and offers better control over your revenue.

Be aware of any fees associated with conversions.

Multi-Currency Benefits

Why is it beneficial to offer multi-currency pricing for your products and subscriptions?

Recap: Global Pricing Power

You've learned how to implement multi-currency support in Stripe!

  • We explored creating specific prices per currency.
  • We saw how to use currency_options for flexible pricing.
  • You understand how to integrate these into Checkout Sessions.
  • We touched on currency conversion considerations.

By offering local currency options, you make your service more appealing and accessible to a global audience, paving the way for international growth.

자주 묻는 질문

“여러 통화와 가격 지원” 강의는 무료인가요?

네 — “여러 통화와 가격 지원” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Stripe Payments & SaaS Billing Systems 강의 전체를 잠금 해제할 수 있습니다. Stripe Payments & SaaS Billing Systems 강의에는 총 4개의 강의가 포함되어 있습니다.

“여러 통화와 가격 지원”에서 뭘 배우나요?

상품과 구독에 다중 통화 지원을 구현하여 고객이 현지 통화로 결제할 수 있도록 합니다. 브라우저에서 직접 실행하는 실습 코드로 Stripe Payments & SaaS Billing Systems을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Stripe Payments & SaaS Billing Systems을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Stripe Payments & SaaS Billing Systems은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“여러 통화와 가격 지원” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Stripe Payments & SaaS Billing Systems 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Stripe Payments & SaaS Billing Systems 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 여러 통화와 가격 지원
  2. 국제 결제 수단 통합
  3. 글로벌 규정 준수와 현지화된 규정
  4. 통화 변환, FX 위험 및 결제 정산
← Stripe Payments & SaaS Billing Systems(으)로 돌아가기