0Pricing
Stripe Payments & SaaS Billing Systems · 课时

利用 Stripe Connect 构建平台

使用 Stripe Connect 构建促进多方之间支付的市场或平台,并处理打款和费用。

利用 Stripe Connect 构建平台 是 CoddyKit 上的免费 Stripe Payments & SaaS Billing Systems 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Stripe Payments & SaaS Billing Systems 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Stripe Payments & SaaS Billing Systems 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

What is Stripe Connect?

Stripe Connect is a powerful solution for platforms and marketplaces. It allows you to facilitate payments between buyers and sellers, manage payouts, and handle the financial complexity of multi-party transactions.

Think of platforms like Shopify, DoorDash, or Etsy. They all use Connect (or similar solutions) to manage payments for their merchants or service providers.

Powering Your Platform

Connect simplifies many challenges for platforms:

  • Onboarding: Easily register sellers/service providers.
  • Payment Processing: Collect payments from customers on behalf of others.
  • Payouts: Distribute funds to your connected accounts.
  • Compliance: Stripe handles many regulatory and PCI DSS requirements for you.

Connect Account Types

Stripe Connect offers three main account types to fit different platform needs:

  • Standard: For platforms needing minimal involvement in connected accounts.
  • Express: For platforms that want more control over the user experience.
  • Custom: For platforms that need full control and customization.

Each type offers a different balance of control and responsibility.

The Simple Standard Account

Standard accounts are the simplest. Your connected accounts have their own full Stripe accounts and dashboards.

The platform directs users to Stripe to complete their onboarding. Stripe handles their compliance, support, and direct communication.

You direct payments to them and can take an application fee.

Creating a Standard Account Link

To onboard a Standard account, you create an AccountLink. This generates a URL that your user visits to complete their Stripe account setup. Here's how you'd initiate that on your backend:

import com.stripe.Stripe;
import com.stripe.model.AccountLink;
import com.stripe.param.AccountLinkCreateParams;

public class Main {
  public static void main(String[] args) {
    // In a real application, set your secret key securely.
    // Stripe.apiKey = "sk_test_YOUR_SECRET_KEY";

    // Simulate creating a new account first (usually done via Account.create)
    String connectedAccountId = "acct_example_standard"; // Placeholder ID

    AccountLinkCreateParams params = AccountLinkCreateParams.builder()
      .setAccount(connectedAccountId)
      .setRefreshUrl("https://your-platform.com/reauth")
      .setReturnUrl("https://your-platform.com/return")
      .setType(AccountLinkCreateParams.Type.ACCOUNT_ONBOARDING)
      .build();

    // In a live environment, you'd call:
    // AccountLink accountLink = AccountLink.create(params);
    // System.out.println("Generated Account Link URL: " + accountLink.getUrl());

    System.out.println("Simulated Account Link Creation for ID: " + connectedAccountId);
    System.out.println("Users would be redirected to Stripe to complete setup.");
    System.out.println("A real link would look like: https://connect.stripe.com/setup/acct_... ");
  }
}

Payments to Connected Accounts

When a customer pays on your platform, you collect the payment and then transfer the appropriate amount to the connected account. Stripe Connect offers different charge types for this:

  • Direct Charges: The customer's payment goes directly to the connected account, and you take a fee.
  • Destination Charges: The payment is made to your platform account, and then a portion is transferred to the connected account.

We'll focus on Destination Charges as they give platforms more control over funds.

Processing a Destination Charge

With a destination charge, you create a PaymentIntent on your platform's account and specify the transfer_data to indicate which connected account receives the funds.

The amount in transfer_data is what the connected account receives.

import com.stripe.Stripe;
import com.stripe.model.PaymentIntent;
import com.stripe.param.PaymentIntentCreateParams;

public class Main {
  public static void main(String[] args) {
    // Stripe.apiKey = "sk_test_YOUR_SECRET_KEY"; // Your platform's secret key

    String customerId = "cus_example"; // A customer on your platform
    String connectedAccountId = "acct_example_standard"; // The seller's account

    PaymentIntentCreateParams params = PaymentIntentCreateParams.builder()
      .setCurrency("usd")
      .setAmount(2000L) // Total amount: $20.00
      .addPaymentMethodType("card")
      .setCustomer(customerId)
      .setTransferData(
        PaymentIntentCreateParams.TransferData.builder()
          .setDestination(connectedAccountId)
          .setAmount(1800L) // $18.00 goes to the connected account
          .build()
      )
      .build();

    // In a live environment, you'd call:
    // PaymentIntent paymentIntent = PaymentIntent.create(params);
    // System.out.println("PaymentIntent created: " + paymentIntent.getId());

    System.out.println("Simulated PaymentIntent for $20.00.");
    System.out.println("  $18.00 would be transferred to connected account: " + connectedAccountId);
    System.out.println("  Your platform retains $2.00 as an application fee.");
  }
}

Earning Your Platform Fee

In the previous example, your platform automatically retained the difference between the PaymentIntent amount ($20.00) and the transfer_data.amount ($18.00). This difference ($2.00) is your application fee.

Stripe handles the splitting of funds automatically. This simplifies your accounting and ensures your platform earns its share with each transaction.

Initiating Programmatic Payouts

While Standard accounts can manage their own payouts, you might need to initiate a payout programmatically (e.g., for specific platform rules or refunds). You can create a Transfer object to send funds from your platform to a connected account.

import com.stripe.Stripe;
import com.stripe.model.Transfer;
import com.stripe.param.TransferCreateParams;

public class Main {
  public static void main(String[] args) {
    // Stripe.apiKey = "sk_test_YOUR_SECRET_KEY"; // Your platform's secret key

    String connectedAccountId = "acct_example_standard"; // The recipient account

    TransferCreateParams params = TransferCreateParams.builder()
      .setAmount(5000L) // Amount to transfer: $50.00
      .setCurrency("usd")
      .setDestination(connectedAccountId)
      .build();

    // In a live environment, you'd call:
    // Transfer transfer = Transfer.create(params);
    // System.out.println("Transfer created: " + transfer.getId());

    System.out.println("Simulated Transfer for $50.00 to account: " + connectedAccountId);
    System.out.println("This moves funds from your platform to the connected account.");
  }
}

Choose the Connect Type

Which Stripe Connect account type offers the most direct control for the platform over the user's experience and onboarding flow, requiring the platform to manage more compliance?

Connect Powering Platforms

In this lesson, we explored Stripe Connect, a vital tool for building multi-party platforms and marketplaces.

You learned about the different Connect account types (Standard, Express, Custom), with a focus on Standard accounts. We covered how to onboard connected accounts using AccountLink, collect payments via destination charges, and manage your platform's application fees.

Connect handles much of the complexity, allowing you to focus on your platform's core features!

常见问题解答

「利用 Stripe Connect 构建平台」课时是免费的吗?

是的 — 「利用 Stripe Connect 构建平台」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Stripe Payments & SaaS Billing Systems 课程的其余内容,请升级到 CoddyKit PRO。 Stripe Payments & SaaS Billing Systems 课程共包含 4 节课。

「利用 Stripe Connect 构建平台」这节课中我会学到什么?

使用 Stripe Connect 构建促进多方之间支付的市场或平台,并处理打款和费用。 你通过在浏览器中直接运行的动手代码来练习 Stripe Payments & SaaS Billing Systems,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Stripe Payments & SaaS Billing Systems 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Stripe Payments & SaaS Billing Systems 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「利用 Stripe Connect 构建平台」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Stripe Payments & SaaS Billing Systems 课中编写并运行代码吗?

能。每节 Stripe Payments & SaaS Billing Systems 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 与 CRM 和 ERP 系统集成
  2. 利用 Stripe Connect 构建平台
  3. 探索第三方集成与插件
  4. 将 Stripe 数据同步到数据仓库
← 返回 Stripe Payments & SaaS Billing Systems