zen: add alipay for go sub

This commit is contained in:
Frank 2026-03-11 03:31:24 -04:00
parent 75cae81f75
commit 4a81df190c
20 changed files with 47 additions and 17 deletions

View File

@ -111,6 +111,15 @@ export function IconStripe(props: JSX.SvgSVGAttributes<SVGSVGElement>) {
)
}
export function IconAlipay(props: JSX.SvgSVGAttributes<SVGSVGElement>) {
return (
<svg {...props} viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path d="M2.541 0H13.5a2.55 2.55 0 0 1 2.54 2.563v8.297c-.006 0-.531-.046-2.978-.813-.412-.14-.916-.327-1.479-.536q-.456-.17-.957-.353a13 13 0 0 0 1.325-3.373H8.822V4.649h3.831v-.634h-3.83V2.121H7.26c-.274 0-.274.273-.274.273v1.621H3.11v.634h3.875v1.136h-3.2v.634H9.99c-.227.789-.532 1.53-.894 2.202-2.013-.67-4.161-1.212-5.51-.878-.864.214-1.42.597-1.746.998-1.499 1.84-.424 4.633 2.741 4.633 1.872 0 3.675-1.053 5.072-2.787 2.08 1.008 6.37 2.738 6.387 2.745v.105A2.55 2.55 0 0 1 13.5 16H2.541A2.55 2.55 0 0 1 0 13.437V2.563A2.55 2.55 0 0 1 2.541 0" />
<path d="M2.309 9.27c-1.22 1.073-.49 3.034 1.978 3.034 1.434 0 2.868-.925 3.994-2.406-1.602-.789-2.959-1.353-4.425-1.207-.397.04-1.14.217-1.547.58Z" />
</svg>
)
}
export function IconChevron(props: JSX.SvgSVGAttributes<SVGSVGElement>) {
return (
<svg {...props} width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg">

View File

@ -537,6 +537,7 @@ export const dict = {
"workspace.billing.loading": "جارٍ التحميل...",
"workspace.billing.addAction": "إضافة",
"workspace.billing.addBalance": "إضافة رصيد",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "مرتبط بـ Stripe",
"workspace.billing.manage": "إدارة",
"workspace.billing.enable": "تمكين الفوترة",
@ -629,7 +630,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'اختر "OpenCode Go" كمزود في إعدادات opencode الخاصة بك لاستخدام نماذج Go.',
"workspace.lite.black.message":
'أنت مشترك حاليًا في OpenCode Black أو في قائمة الانتظار. يرجى إلغاء الاشتراك أولاً إذا كنت ترغب في التبديل إلى Go.',
"أنت مشترك حاليًا في OpenCode Black أو في قائمة الانتظار. يرجى إلغاء الاشتراك أولاً إذا كنت ترغب في التبديل إلى Go.",
"workspace.lite.other.message":
"عضو آخر في مساحة العمل هذه مشترك بالفعل في OpenCode Go. يمكن لعضو واحد فقط لكل مساحة عمل الاشتراك.",
"workspace.lite.promo.description":

View File

@ -545,6 +545,7 @@ export const dict = {
"workspace.billing.loading": "Carregando...",
"workspace.billing.addAction": "Adicionar",
"workspace.billing.addBalance": "Adicionar Saldo",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Vinculado ao Stripe",
"workspace.billing.manage": "Gerenciar",
"workspace.billing.enable": "Ativar Faturamento",
@ -638,7 +639,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'Selecione "OpenCode Go" como provedor na sua configuração do opencode para usar os modelos Go.',
"workspace.lite.black.message":
'Você está atualmente inscrito no OpenCode Black ou na lista de espera. Por favor, cancele a assinatura primeiro se desejar mudar para o Go.',
"Você está atualmente inscrito no OpenCode Black ou na lista de espera. Por favor, cancele a assinatura primeiro se desejar mudar para o Go.",
"workspace.lite.other.message":
"Outro membro neste workspace já assina o OpenCode Go. Apenas um membro por workspace pode assinar.",
"workspace.lite.promo.description":

View File

@ -541,6 +541,7 @@ export const dict = {
"workspace.billing.loading": "Indlæser...",
"workspace.billing.addAction": "Tilføj",
"workspace.billing.addBalance": "Tilføj saldo",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Forbundet til Stripe",
"workspace.billing.manage": "Administrer",
"workspace.billing.enable": "Aktiver fakturering",
@ -634,7 +635,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'Vælg "OpenCode Go" som udbyder i din opencode-konfiguration for at bruge Go-modeller.',
"workspace.lite.black.message":
'Du abonnerer i øjeblikket på OpenCode Black eller er på venteliste. Afmeld venligst først, hvis du vil skifte til Go.',
"Du abonnerer i øjeblikket på OpenCode Black eller er på venteliste. Afmeld venligst først, hvis du vil skifte til Go.",
"workspace.lite.other.message":
"Et andet medlem i dette workspace abonnerer allerede på OpenCode Go. Kun ét medlem pr. workspace kan abonnere.",
"workspace.lite.promo.description":

View File

@ -544,6 +544,7 @@ export const dict = {
"workspace.billing.loading": "Lade...",
"workspace.billing.addAction": "Hinzufügen",
"workspace.billing.addBalance": "Guthaben aufladen",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Mit Stripe verbunden",
"workspace.billing.manage": "Verwalten",
"workspace.billing.enable": "Abrechnung aktivieren",
@ -637,7 +638,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'Wähle "OpenCode Go" als Anbieter in deiner opencode-Konfiguration, um Go-Modelle zu verwenden.',
"workspace.lite.black.message":
'Du hast derzeit OpenCode Black abonniert oder stehst auf der Warteliste. Bitte kündige zuerst, wenn du zu Go wechseln möchtest.',
"Du hast derzeit OpenCode Black abonniert oder stehst auf der Warteliste. Bitte kündige zuerst, wenn du zu Go wechseln möchtest.",
"workspace.lite.other.message":
"Ein anderes Mitglied in diesem Workspace hat OpenCode Go bereits abonniert. Nur ein Mitglied pro Workspace kann abonnieren.",
"workspace.lite.promo.description":

View File

@ -538,6 +538,7 @@ export const dict = {
"workspace.billing.loading": "Loading...",
"workspace.billing.addAction": "Add",
"workspace.billing.addBalance": "Add Balance",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Linked to Stripe",
"workspace.billing.manage": "Manage",
"workspace.billing.enable": "Enable Billing",

View File

@ -546,6 +546,7 @@ export const dict = {
"workspace.billing.loading": "Cargando...",
"workspace.billing.addAction": "Añadir",
"workspace.billing.addBalance": "Añadir Saldo",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Vinculado con Stripe",
"workspace.billing.manage": "Gestionar",
"workspace.billing.enable": "Habilitar Facturación",
@ -639,7 +640,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'Selecciona "OpenCode Go" como proveedor en tu configuración de opencode para usar los modelos Go.',
"workspace.lite.black.message":
'Actualmente estás suscrito a OpenCode Black o estás en la lista de espera. Por favor, cancela la suscripción primero si deseas cambiar a Go.',
"Actualmente estás suscrito a OpenCode Black o estás en la lista de espera. Por favor, cancela la suscripción primero si deseas cambiar a Go.",
"workspace.lite.other.message":
"Otro miembro de este espacio de trabajo ya está suscrito a OpenCode Go. Solo un miembro por espacio de trabajo puede suscribirse.",
"workspace.lite.promo.description":

View File

@ -547,6 +547,7 @@ export const dict = {
"workspace.billing.loading": "Chargement...",
"workspace.billing.addAction": "Ajouter",
"workspace.billing.addBalance": "Ajouter un solde",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Lié à Stripe",
"workspace.billing.manage": "Gérer",
"workspace.billing.enable": "Activer la facturation",

View File

@ -544,6 +544,7 @@ export const dict = {
"workspace.billing.loading": "Caricamento...",
"workspace.billing.addAction": "Aggiungi",
"workspace.billing.addBalance": "Aggiungi Saldo",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Collegato a Stripe",
"workspace.billing.manage": "Gestisci",
"workspace.billing.enable": "Abilita Fatturazione",

View File

@ -543,6 +543,7 @@ export const dict = {
"workspace.billing.loading": "読み込み中...",
"workspace.billing.addAction": "追加",
"workspace.billing.addBalance": "残高を追加",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Stripeと連携済み",
"workspace.billing.manage": "管理",
"workspace.billing.enable": "課金を有効にする",
@ -637,7 +638,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
"Go モデルを使用するには、opencode の設定で「OpenCode Go」をプロバイダーとして選択してください。",
"workspace.lite.black.message":
'現在 OpenCode Black を購読中、またはウェイティングリストに登録されています。Go に切り替える場合は、先に登録を解除してください。',
"現在 OpenCode Black を購読中、またはウェイティングリストに登録されています。Go に切り替える場合は、先に登録を解除してください。",
"workspace.lite.other.message":
"このワークスペースの別のメンバーが既に OpenCode Go を購読しています。ワークスペースにつき1人のメンバーのみが購読できます。",
"workspace.lite.promo.description":

View File

@ -537,6 +537,7 @@ export const dict = {
"workspace.billing.loading": "로드 중...",
"workspace.billing.addAction": "추가",
"workspace.billing.addBalance": "잔액 추가",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Stripe에 연결됨",
"workspace.billing.manage": "관리",
"workspace.billing.enable": "결제 활성화",
@ -629,7 +630,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'Go 모델을 사용하려면 opencode 설정에서 "OpenCode Go"를 공급자로 선택하세요.',
"workspace.lite.black.message":
'현재 OpenCode Black을 구독 중이거나 대기 명단에 등록되어 있습니다. Go로 전환하려면 먼저 구독을 취소해 주세요.',
"현재 OpenCode Black을 구독 중이거나 대기 명단에 등록되어 있습니다. Go로 전환하려면 먼저 구독을 취소해 주세요.",
"workspace.lite.other.message":
"이 워크스페이스의 다른 멤버가 이미 OpenCode Go를 구독 중입니다. 워크스페이스당 한 명의 멤버만 구독할 수 있습니다.",
"workspace.lite.promo.description":

View File

@ -542,6 +542,7 @@ export const dict = {
"workspace.billing.loading": "Laster...",
"workspace.billing.addAction": "Legg til",
"workspace.billing.addBalance": "Legg til saldo",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Koblet til Stripe",
"workspace.billing.manage": "Administrer",
"workspace.billing.enable": "Aktiver fakturering",
@ -635,7 +636,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'Velg "OpenCode Go" som leverandør i opencode-konfigurasjonen din for å bruke Go-modeller.',
"workspace.lite.black.message":
'Du abonnerer for øyeblikket på OpenCode Black eller står på venteliste. Vennligst avslutt abonnementet først hvis du vil bytte til Go.',
"Du abonnerer for øyeblikket på OpenCode Black eller står på venteliste. Vennligst avslutt abonnementet først hvis du vil bytte til Go.",
"workspace.lite.other.message":
"Et annet medlem i dette arbeidsområdet abonnerer allerede på OpenCode Go. Kun ett medlem per arbeidsområde kan abonnere.",
"workspace.lite.promo.description":

View File

@ -543,6 +543,7 @@ export const dict = {
"workspace.billing.loading": "Ładowanie...",
"workspace.billing.addAction": "Dodaj",
"workspace.billing.addBalance": "Doładuj saldo",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Połączono ze Stripe",
"workspace.billing.manage": "Zarządzaj",
"workspace.billing.enable": "Włącz rozliczenia",
@ -636,7 +637,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'Wybierz "OpenCode Go" jako dostawcę w konfiguracji opencode, aby używać modeli Go.',
"workspace.lite.black.message":
'Obecnie subskrybujesz OpenCode Black lub jesteś na liście oczekujących. Jeśli chcesz przejść na Go, najpierw anuluj subskrypcję.',
"Obecnie subskrybujesz OpenCode Black lub jesteś na liście oczekujących. Jeśli chcesz przejść na Go, najpierw anuluj subskrypcję.",
"workspace.lite.other.message":
"Inny członek tego obszaru roboczego już subskrybuje OpenCode Go. Tylko jeden członek na obszar roboczy może subskrybować.",
"workspace.lite.promo.description":

View File

@ -549,6 +549,7 @@ export const dict = {
"workspace.billing.loading": "Загрузка...",
"workspace.billing.addAction": "Пополнить",
"workspace.billing.addBalance": "Пополнить баланс",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Привязано к Stripe",
"workspace.billing.manage": "Управление",
"workspace.billing.enable": "Включить оплату",
@ -642,7 +643,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'Выберите "OpenCode Go" в качестве провайдера в настройках opencode для использования моделей Go.',
"workspace.lite.black.message":
'Вы подписаны на OpenCode Black или находитесь в списке ожидания. Пожалуйста, сначала отмените подписку, если хотите перейти на Go.',
"Вы подписаны на OpenCode Black или находитесь в списке ожидания. Пожалуйста, сначала отмените подписку, если хотите перейти на Go.",
"workspace.lite.other.message":
"Другой участник в этом рабочем пространстве уже подписан на OpenCode Go. Только один участник в рабочем пространстве может оформить подписку.",
"workspace.lite.promo.description":

View File

@ -540,6 +540,7 @@ export const dict = {
"workspace.billing.loading": "กำลังโหลด...",
"workspace.billing.addAction": "เพิ่ม",
"workspace.billing.addBalance": "เพิ่มยอดคงเหลือ",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "เชื่อมโยงกับ Stripe",
"workspace.billing.manage": "จัดการ",
"workspace.billing.enable": "เปิดใช้งานการเรียกเก็บเงิน",
@ -633,7 +634,7 @@ export const dict = {
"workspace.lite.subscription.selectProvider":
'เลือก "OpenCode Go" เป็นผู้ให้บริการในการตั้งค่า opencode ของคุณเพื่อใช้โมเดล Go',
"workspace.lite.black.message":
'ขณะนี้คุณสมัครสมาชิก OpenCode Black หรืออยู่ในรายการรอ โปรดยกเลิกการสมัครก่อนหากต้องการเปลี่ยนไปใช้ Go',
"ขณะนี้คุณสมัครสมาชิก OpenCode Black หรืออยู่ในรายการรอ โปรดยกเลิกการสมัครก่อนหากต้องการเปลี่ยนไปใช้ Go",
"workspace.lite.other.message":
"สมาชิกคนอื่นใน Workspace นี้ได้สมัคร OpenCode Go แล้ว สามารถสมัครได้เพียงหนึ่งคนต่อหนึ่ง Workspace เท่านั้น",
"workspace.lite.promo.description":

View File

@ -545,6 +545,7 @@ export const dict = {
"workspace.billing.loading": "Yükleniyor...",
"workspace.billing.addAction": "Ekle",
"workspace.billing.addBalance": "Bakiye Ekle",
"workspace.billing.alipay": "Alipay",
"workspace.billing.linkedToStripe": "Stripe'a bağlı",
"workspace.billing.manage": "Yönet",
"workspace.billing.enable": "Faturalandırmayı Etkinleştir",

View File

@ -521,6 +521,7 @@ export const dict = {
"workspace.billing.loading": "加载中...",
"workspace.billing.addAction": "充值",
"workspace.billing.addBalance": "充值余额",
"workspace.billing.alipay": "支付宝",
"workspace.billing.linkedToStripe": "已关联 Stripe",
"workspace.billing.manage": "管理",
"workspace.billing.enable": "启用计费",
@ -612,8 +613,7 @@ export const dict = {
"workspace.lite.subscription.useBalance": "达到使用限额后使用您的可用余额",
"workspace.lite.subscription.selectProvider":
"在你的 opencode 配置中选择「OpenCode Go」作为提供商即可使用 Go 模型。",
"workspace.lite.black.message":
'您当前已订阅 OpenCode Black 或在候补名单中。如需切换到 Go请先取消订阅。',
"workspace.lite.black.message": "您当前已订阅 OpenCode Black 或在候补名单中。如需切换到 Go请先取消订阅。",
"workspace.lite.other.message": "此工作区中的另一位成员已经订阅了 OpenCode Go。每个工作区只有一名成员可以订阅。",
"workspace.lite.promo.description":
"OpenCode Go 是一个每月 $10 的订阅计划,提供对主流开源编码模型的稳定访问,并配备充足的使用额度。",

View File

@ -522,6 +522,7 @@ export const dict = {
"workspace.billing.loading": "載入中...",
"workspace.billing.addAction": "儲值",
"workspace.billing.addBalance": "儲值餘額",
"workspace.billing.alipay": "支付寶",
"workspace.billing.linkedToStripe": "已連結 Stripe",
"workspace.billing.manage": "管理",
"workspace.billing.enable": "啟用帳務",
@ -613,8 +614,7 @@ export const dict = {
"workspace.lite.subscription.useBalance": "達到使用限制後使用您的可用餘額",
"workspace.lite.subscription.selectProvider":
"在您的 opencode 設定中選擇「OpenCode Go」作為提供商即可使用 Go 模型。",
"workspace.lite.black.message":
'您目前已訂閱 OpenCode Black 或在候補名單中。若要切換至 Go請先取消訂閱。',
"workspace.lite.black.message": "您目前已訂閱 OpenCode Black 或在候補名單中。若要切換至 Go請先取消訂閱。",
"workspace.lite.other.message": "此工作區中的另一位成員已訂閱 OpenCode Go。每個工作區只能有一位成員訂閱。",
"workspace.lite.promo.description":
"OpenCode Go 是一個每月 $10 的訂閱方案,提供對主流開放原始碼編碼模型的穩定存取,並配備充足的使用額度。",

View File

@ -3,7 +3,7 @@ import { createMemo, Match, Show, Switch, createEffect } from "solid-js"
import { createStore } from "solid-js/store"
import { Billing } from "@opencode-ai/console-core/billing.js"
import { withActor } from "~/context/auth.withActor"
import { IconCreditCard, IconStripe } from "~/component/icon"
import { IconAlipay, IconCreditCard, IconStripe } from "~/component/icon"
import styles from "./billing-section.module.css"
import { createCheckoutUrl, formatBalance, queryBillingInfo } from "../../common"
import { useI18n } from "~/context/i18n"
@ -205,6 +205,9 @@ export function BillingSection() {
<Match when={billingInfo()?.paymentMethodType === "link"}>
<IconStripe style={{ width: "24px", height: "24px" }} />
</Match>
<Match when={billingInfo()?.paymentMethodType === "alipay"}>
<IconAlipay style={{ width: "24px", height: "24px" }} />
</Match>
</Switch>
</div>
<div data-slot="card-details">
@ -218,6 +221,9 @@ export function BillingSection() {
<Match when={billingInfo()?.paymentMethodType === "link"}>
<span data-slot="type">{i18n.t("workspace.billing.linkedToStripe")}</span>
</Match>
<Match when={billingInfo()?.paymentMethodType === "alipay"}>
<span data-slot="type">{i18n.t("workspace.billing.alipay")}</span>
</Match>
</Switch>
</div>
<button

View File

@ -265,7 +265,7 @@ export namespace Billing {
customer_email: email!,
}),
currency: "usd",
payment_method_types: ["card"],
payment_method_types: ["card", "alipay"],
tax_id_collection: {
enabled: true,
},