Kérj korai hozzáférést

Add meg a keresztnevedet, valamint egy e-mail-címet vagy telefonszámot. Hamarosan elküldjük a Tajo eléréséhez szükséges információkat.

Beágyazott Stripe Appok

A beágyazott Stripe Appok segítségével a Stripe Connectre épülő platformok a saját felületükön belül kínálhatják külső alkalmazások funkcióit. A Connect beágyazott komponenseivel a kapcsolt fiókjaid úgy érhetnek el olyan alkalmazásokat, mint a QuickBooks, a Xero vagy a Mailchimp, hogy közben nem kell felkeresniük a Stripe Dashboardot.

Áttekintés

A beágyazott alkalmazások két fontos Connect beágyazott komponenst használnak:

  • app-install: telepítés gombot jelenít meg egy Stripe Apphoz a saját platformod felületén
  • app-viewport: egy adott alkalmazásnézetet jelenít meg a saját platformod felületén

Így a platformüzemeltetők közvetlenül a termékükbe ágyazhatják a könyvelési, marketing- és üzemeltetési eszközöket.

Támogatott alkalmazások

A következő alkalmazások támogatják a Connect komponensekkel való beágyazást:

AlkalmazásKategóriaFelhasználási eset
QuickBooksKönyvelésFizetések és számlák szinkronizálása a QuickBooksba
XeroKönyvelésAutomatizált könyvelés és egyeztetés
MailchimpMarketingVásárlói adatok szinkronizálása e-mail kampányokhoz
Egyedi alkalmazásokBármiA platformodra épített saját Stripe Appjaid

Tip

A Tajo Brevo integráció beágyazható a Connect platformokba, így a kapcsolt fiókok a platform saját felületén keresztül szinkronizálhatják a Stripe adataikat a Brevóba.

Beállítás az Account Sessions API-val

Az alkalmazások beágyazásához Account Session objektumokat kell létrehoznod, a megfelelő komponensek engedélyezésével:

Szerveroldalon: Account Session létrehozása

const stripe = require('stripe')('sk_live_...');
// Create an Account Session for the connected account
const accountSession = await stripe.accountSessions.create({
account: 'acct_connected_account_id',
components: {
// Enable app install component
app_install: {
enabled: true,
features: {
allowed_apps: [
'com.tajo.brevo-integration',
'com.quickbooks.stripe-app'
],
},
},
// Enable app viewport component
app_viewport: {
enabled: true,
features: {
allowed_apps: [
'com.tajo.brevo-integration'
],
},
},
},
});
// Return the client secret to your frontend
res.json({ clientSecret: accountSession.client_secret });

Kliensoldalon: a Connect.js inicializálása

import { loadConnectAndInitialize } from '@stripe/connect-js';
// Initialize Connect.js with the account session
const stripeConnect = loadConnectAndInitialize({
publishableKey: 'pk_live_...',
fetchClientSecret: async () => {
const response = await fetch('/api/account-session', {
method: 'POST',
});
const { clientSecret } = await response.json();
return clientSecret;
},
});

App install komponens

Az app-install komponens olyan telepítés gombot jelenít meg, amellyel a kapcsolt fiókok telepíthetnek egy Stripe Appot:

JavaScript

// Create the app install element
const appInstall = stripeConnect.create('app-install');
// Set the app to install
appInstall.setApp('com.tajo.brevo-integration');
// Mount to a DOM element
const container = document.getElementById('app-install-container');
appInstall.mount(container);
// Listen for install events
appInstall.on('app_installed', (event) => {
console.log('App installed:', event.app_id);
// Show the app viewport after installation
showAppViewport();
});
appInstall.on('app_uninstalled', (event) => {
console.log('App uninstalled:', event.app_id);
});

React

import {
ConnectAppInstall,
ConnectComponentsProvider,
} from '@stripe/react-connect-js';
const AppInstallButton = () => {
return (
<ConnectComponentsProvider connectInstance={stripeConnect}>
<ConnectAppInstall
app="com.tajo.brevo-integration"
onAppInstalled={(event) => {
console.log('App installed:', event.app_id);
}}
onAppUninstalled={(event) => {
console.log('App uninstalled:', event.app_id);
}}
/>
</ConnectComponentsProvider>
);
};

App viewport komponens

Az app-viewport komponens egy adott alkalmazásnézetet jelenít meg a platformodon belül:

JavaScript

// Create the app viewport element
const appViewport = stripeConnect.create('app-viewport');
// Configure the viewport
appViewport.setApp('com.tajo.brevo-integration');
appViewport.setViewport('stripe.dashboard.customer.detail');
// Pass object context (e.g., customer ID)
appViewport.setObjectContext({
id: 'cus_xxxxx',
object: 'customer',
});
// Mount to a DOM element
const container = document.getElementById('app-viewport-container');
appViewport.mount(container);

React

import {
ConnectAppViewport,
ConnectComponentsProvider,
} from '@stripe/react-connect-js';
const BrevoCustomerView = ({ customerId }: { customerId: string }) => {
return (
<ConnectComponentsProvider connectInstance={stripeConnect}>
<ConnectAppViewport
app="com.tajo.brevo-integration"
viewport="stripe.dashboard.customer.detail"
objectContext={{
id: customerId,
object: 'customer',
}}
/>
</ConnectComponentsProvider>
);
};

A destination charge metaadat-sémája

Ha a beágyazott alkalmazásokat destination charge terhelésekkel használod (ez gyakori a Connect platformokon), a terhelés metaadatai strukturált adatot hordoznak, amit a könyvelési és marketingintegrációk fel tudnak dolgozni.

Könyvelési integrációk

A QuickBookshoz és a Xeróhoz hasonló alkalmazásoknál a destination charge metaadatai ezt a sémát követik:

{
"metadata": {
"customer_id": "cus_platform_customer_id",
"customer_email": "[email protected]",
"product_name": "Premium Subscription",
"product_id": "prod_xxxxx",
"quantity": "1",
"unit_amount": "4999",
"currency": "usd",
"platform_fee": "500",
"platform_fee_currency": "usd",
"tax_amount": "450",
"tax_rate_id": "txr_xxxxx",
"invoice_id": "inv_xxxxx",
"order_id": "order_12345"
}
}
MezőTípusLeírás
customer_idstringA platform vásárlóazonosítója
customer_emailstringA vásárló e-mail címe a számla és a nyugta párosításához
product_namestringA termék megjelenítendő neve a tételsorokhoz
product_idstringStripe termékazonosító
quantitystringA tétel mennyisége
unit_amountstringEgységár a pénznem legkisebb egységében (fillérben)
currencystringHárombetűs ISO pénznemkód
platform_feestringAz alkalmazásdíj a pénznem legkisebb egységében
platform_fee_currencystringAz alkalmazásdíj pénzneme
tax_amountstringAz adó összege a pénznem legkisebb egységében
tax_rate_idstringAz alkalmazott Stripe adókulcs azonosítója
invoice_idstringA kapcsolódó számla azonosítója
order_idstringA platform belső rendelésazonosítója

Marketingintegrációk

A Mailchimphez és a Tajo Brevo integrációhoz hasonló alkalmazásoknál a metaadatok teszik lehetővé a vásárlói szegmentálást és a kampánycélzást:

{
"metadata": {
"customer_id": "cus_xxxxx",
"customer_email": "[email protected]",
"customer_name": "Jane Smith",
"product_category": "subscription",
"product_name": "Pro Plan",
"purchase_value": "4999",
"currency": "usd",
"is_first_purchase": "true",
"referral_source": "partner_campaign",
"subscription_interval": "monthly",
"lifetime_value": "29994"
}
}

Ezekkel a metaadatokkal például ilyen Brevo automatizálásokat építhetsz:

  • Üdvözlő sorozat az első vásárlóknak (is_first_purchase: "true")
  • Upsell kampányok a product_category és a purchase_value alapján
  • Megtartási folyamatok az előfizetőknek a subscription_interval alapján
  • Visszaszerző kampányok a magas lifetime_value értékű, elpártoló vásárlóknak

Példa platformintegrációra

Egy teljes platformintegráció, amely beágyazza a Tajo Brevo alkalmazást:

import { useState, useEffect } from 'react';
import {
ConnectAppInstall,
ConnectAppViewport,
ConnectComponentsProvider,
} from '@stripe/react-connect-js';
import { loadConnectAndInitialize } from '@stripe/connect-js';
const TajoBrevoPlatformIntegration = ({ connectedAccountId, customerId }) => {
const [stripeConnect, setStripeConnect] = useState(null);
const [isInstalled, setIsInstalled] = useState(false);
useEffect(() => {
const instance = loadConnectAndInitialize({
publishableKey: 'pk_live_...',
fetchClientSecret: async () => {
const res = await fetch('/api/account-session', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ accountId: connectedAccountId }),
});
const { clientSecret } = await res.json();
return clientSecret;
},
});
setStripeConnect(instance);
}, [connectedAccountId]);
if (!stripeConnect) return <div>Loading...</div>;
return (
<ConnectComponentsProvider connectInstance={stripeConnect}>
{!isInstalled ? (
<div>
<h3>Connect Brevo via Tajo</h3>
<p>Install the Tajo integration to sync customer data with Brevo.</p>
<ConnectAppInstall
app="com.tajo.brevo-integration"
onAppInstalled={() => setIsInstalled(true)}
/>
</div>
) : (
<div>
<h3>Brevo Customer Profile</h3>
<ConnectAppViewport
app="com.tajo.brevo-integration"
viewport="stripe.dashboard.customer.detail"
objectContext={{
id: customerId,
object: 'customer',
}}
/>
</div>
)}
</ConnectComponentsProvider>
);
};

Biztonsági szempontok

Amikor alkalmazásokat ágyazol be a platformodba:

  • Az Account Session lejár: hozz létre új munkamenetet, amikor kell, és ne gyorsítótárazd a client secret értékeket
  • Hatókör szabályozása: az allowed_apps mezővel korlátozd, mely alkalmazások telepíthetők
  • Adatok elkülönítése: minden kapcsolt fiók adata elkülönül, a platform nem fér hozzá az alkalmazás adataihoz
  • CSP fejlécek: gondoskodj róla, hogy a platformod Content Security Policy szabálya engedje a https://connect-js.stripe.com felé irányuló kapcsolatot

Caution

A beágyazott alkalmazáskomponensekhez olyan Connect integráció kell, amely hozzáfér az Account Sessions API-hoz. A hagyományos Stripe fiókok nem használhatnak beágyazott komponenseket.

Kérj korai hozzáférést

Add meg a keresztnevedet, valamint egy e-mail-címet vagy telefonszámot. Hamarosan elküldjük a Tajo eléréséhez szükséges információkat.

automatikus felismerés
AI asszisztens

Szia! Kérdezz bármit a dokumentációról.