Stripe Payments & SaaS Billing Systems · درس

دعم العملات والتسعير المتعدد

نفّذوا دعمًا لتعدد العملات لمنتجاتكم واشتراكاتكم، لتمكين العملاء من الدفع بعملتهم المحلية.

الدرس 1 من 411 خطوة

دعم العملات والتسعير المتعدد درس مجاني في Stripe Payments & SaaS Billing Systems على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في 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.

البدء مجانًا

تعلم Stripe Payments & SaaS Billing Systems مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
12
الدروس
48

الأسئلة الشائعة

هل درس «دعم العملات والتسعير المتعدد» مجاني؟

نعم — نص درس «دعم العملات والتسعير المتعدد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Stripe Payments & SaaS Billing Systems، انتقل إلى CoddyKit PRO. تتضمن دورة Stripe Payments & SaaS Billing Systems 4 دروس في المجموع.

ماذا ستتعلم في «دعم العملات والتسعير المتعدد»؟

نفّذوا دعمًا لتعدد العملات لمنتجاتكم واشتراكاتكم، لتمكين العملاء من الدفع بعملتهم المحلية. تتمرن على Stripe Payments & SaaS Billing Systems مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Stripe Payments & SaaS Billing Systems؟

لا تُشترط خبرة سابقة. Stripe Payments & SaaS Billing Systems على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «دعم العملات والتسعير المتعدد»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Stripe Payments & SaaS Billing Systems هذا؟

نعم. كل درس في Stripe Payments & SaaS Billing Systems يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. دعم العملات والتسعير المتعدد
  2. دمج وسائل الدفع الدولية
  3. الامتثال العالمي واللوائح المحلية
  4. تحويل العملات ومخاطر الصرف والتسوية
← العودة إلى Stripe Payments & SaaS Billing Systems