Tham Chiếu Viewports

Viewports định nghĩa nơi các thành phần UI của Stripe App xuất hiện trong Stripe Dashboard. Mỗi viewport tương ứng với một trang Dashboard cụ thể hoặc vị trí nơi app của bạn có thể render một view.

Cách Viewports Hoạt Động

Khi bạn khai báo một view trong app manifest, bạn ánh xạ một React component đến một viewport:

{
"ui_extension": {
"views": [
{
"viewport": "stripe.dashboard.customer.detail",
"component": "CustomerDetailView"
}
]
}
}

Component render trong app drawer (panel bên) khi người dùng điều hướng đến trang Dashboard tương ứng và mở app của bạn.

Viewports Toàn Dashboard So Với Viewport Theo Trang

Viewports Toàn Dashboard

Các viewport này có sẵn trên mọi trang của Stripe Dashboard:

Viewport IDMô Tả
stripe.dashboard.drawer.defaultView drawer mặc định, có thể truy cập từ bất kỳ trang Dashboard nào qua icon app
stripe.dashboard.home.overviewTrang tổng quan, hiển thị trên trang landing Dashboard
stripe.dashboard.settingsTrang cài đặt app, có thể truy cập từ menu cài đặt của app
stripe.dashboard.onboardingLuồng onboarding, hiển thị sau khi cài đặt app

Tip

Viewport drawer.default hoạt động như một fallback. Nếu người dùng mở app của bạn trên một trang mà bạn chưa khai báo viewport cụ thể, view drawer.default sẽ render thay thế.

Viewports Theo Trang

Các viewport này chỉ render khi người dùng ở trang Dashboard tương ứng:

Thanh Toán

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.payment.listDanh sách thanh toán/payments,
stripe.dashboard.payment.detailChi tiết thanh toán/payments/:idPaymentIntent
stripe.dashboard.charge.detailChi tiết charge/payments/:id (legacy)Charge

Khách Hàng

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.customer.listDanh sách khách hàng/customers,
stripe.dashboard.customer.detailChi tiết khách hàng/customers/:idCustomer

Sản Phẩm & Giá

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.product.listDanh sách sản phẩm/products,
stripe.dashboard.product.detailChi tiết sản phẩm/products/:idProduct
stripe.dashboard.price.detailChi tiết giá/prices/:idPrice

Hóa Đơn

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.invoice.listDanh sách hóa đơn/invoices,
stripe.dashboard.invoice.detailChi tiết hóa đơn/invoices/:idInvoice

Đăng Ký

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.subscription.listDanh sách đăng ký/subscriptions,
stripe.dashboard.subscription.detailChi tiết đăng ký/subscriptions/:idSubscription

Checkout

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.checkout.session.listDanh sách Checkout Sessions/checkout/sessions,
stripe.dashboard.checkout.session.detailChi tiết Checkout Session/checkout/sessions/:idCheckoutSession
stripe.dashboard.payment-link.listDanh sách Payment Links/payment-links,
stripe.dashboard.payment-link.detailChi tiết Payment Link/payment-links/:idPaymentLink

Connect

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.connect.account.listDanh sách tài khoản connected/connect/accounts,
stripe.dashboard.connect.account.detailChi tiết tài khoản connected/connect/accounts/:idAccount
stripe.dashboard.transfer.listDanh sách transfers/connect/transfers,
stripe.dashboard.transfer.detailChi tiết transfer/connect/transfers/:idTransfer

Thanh Toán Định Kỳ

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.coupon.listDanh sách coupon/coupons,
stripe.dashboard.coupon.detailChi tiết coupon/coupons/:idCoupon
stripe.dashboard.quote.listDanh sách quotes/quotes,
stripe.dashboard.quote.detailChi tiết quote/quotes/:idQuote
stripe.dashboard.credit-note.detailChi tiết credit note/credit-notes/:idCreditNote

Payouts

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.payout.listDanh sách payouts/payouts,
stripe.dashboard.payout.detailChi tiết payout/payouts/:idPayout

Tranh Chấp

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.dispute.listDanh sách tranh chấp/disputes,
stripe.dashboard.dispute.detailChi tiết tranh chấp/disputes/:idDispute

Terminal

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.terminal.reader.listDanh sách readers/terminal/readers,
stripe.dashboard.terminal.reader.detailChi tiết reader/terminal/readers/:idTerminalReader
stripe.dashboard.terminal.location.listDanh sách locations/terminal/locations,
stripe.dashboard.terminal.location.detailChi tiết location/terminal/locations/:idTerminalLocation

Issuing

Viewport IDTrangMẫu URLLoại Đối Tượng
stripe.dashboard.issuing.card.listDanh sách thẻ/issuing/cards,
stripe.dashboard.issuing.card.detailChi tiết thẻ/issuing/cards/:idIssuingCard
stripe.dashboard.issuing.cardholder.listDanh sách chủ thẻ/issuing/cardholders,
stripe.dashboard.issuing.cardholder.detailChi tiết chủ thẻ/issuing/cardholders/:idIssuingCardholder
stripe.dashboard.issuing.transaction.listDanh sách giao dịch/issuing/transactions,
stripe.dashboard.issuing.authorization.listDanh sách ủy quyền/issuing/authorizations,

Truy Cập Object Context

Khi app của bạn render trong detail viewport, nó nhận đối tượng Stripe liên quan như context:

import type { ExtensionContextValue } from '@stripe/ui-extension-sdk/context';
const CustomerDetailView = ({ environment }: ExtensionContextValue) => {
const { objectContext } = environment;
// objectContext chứa Stripe object hiện tại
const customerId = objectContext?.id; // "cus_xxxxx"
const customerEmail = objectContext?.email;
return (
<Box>
<Inline>Customer: {customerEmail}</Inline>
<Inline>Brevo Sync Status: checking...</Inline>
</Box>
);
};

List So Với Detail Context

Loại ViewportObject ContextTrường Hợp Sử Dụng
List (vd. customer.list)Không có, không có đối tượng cụ thể được chọnHiển thị dữ liệu tổng hợp, view tóm tắt hoặc batch actions
Detail (vd. customer.detail)Đối tượng Stripe đầy đủ cho trang hiện tạiHiển thị dữ liệu, hành động và tích hợp cụ thể cho đối tượng

Viewports Được Khuyến Nghị Cho Tích Hợp Tajo Brevo

Đối với app tích hợp Tajo Brevo, các viewport này cung cấp giá trị cao nhất:

{
"ui_extension": {
"views": [
{
"viewport": "stripe.dashboard.customer.detail",
"component": "CustomerDetailView"
},
{
"viewport": "stripe.dashboard.customer.list",
"component": "CustomerListView"
},
{
"viewport": "stripe.dashboard.payment.detail",
"component": "PaymentDetailView"
},
{
"viewport": "stripe.dashboard.subscription.detail",
"component": "SubscriptionDetailView"
},
{
"viewport": "stripe.dashboard.home.overview",
"component": "OverviewView"
},
{
"viewport": "stripe.dashboard.drawer.default",
"component": "DrawerView"
},
{
"viewport": "stripe.dashboard.settings",
"component": "SettingsView"
},
{
"viewport": "stripe.dashboard.onboarding",
"component": "OnboardingView"
}
]
}
}
ComponentMục Đích
CustomerDetailViewHiển thị thông tin contact Brevo, trạng thái sync và dữ liệu tương tác cho khách hàng cụ thể
CustomerListViewHiển thị batch sync controls và số liệu thống kê Brevo sync tổng hợp
PaymentDetailViewHiển thị sự kiện Brevo nào được kích hoạt bởi thanh toán này
SubscriptionDetailViewHiển thị trạng thái automation Brevo cho đăng ký này
OverviewViewWidget trang chủ Dashboard với tình trạng sync và các số liệu Brevo chính
DrawerViewApp drawer chung với các quick actions và tổng quan trạng thái
SettingsViewCấu hình Brevo API key, tùy chọn sync và field mappings
OnboardingViewHướng dẫn người dùng mới kết nối tài khoản Brevo của họ

Tình Trạng Sẵn Có Của Viewport

Không phải tất cả viewports đều có sẵn trong tất cả các chế độ Stripe Dashboard:

Chế ĐộViewports Có Sẵn
Live modeTất cả viewports
Test modeTất cả viewports (sử dụng dữ liệu test)
SandboxTất cả viewports (nếu sandbox_install_compatible: true)

Caution

Nếu manifest của bạn khai báo một viewport không tồn tại, việc upload app sẽ không vượt qua validation. Luôn xác minh các viewport ID dựa trên tham chiếu này.

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

Trợ lý AI

Xin chào! Hãy hỏi tôi về tài liệu.

Bắt đầu miễn phí với Brevo