Skip to content

Commit 20874f5

Browse files
Merge pull request #2666 from appwrite/fix-retry-payment-model
Fix: retry payment model while adding new payment method
2 parents e977a00 + 4f386f6 commit 20874f5

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/routes/(console)/organization-[organization]/billing/retryPaymentModal.svelte

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
async function handleSubmit() {
5656
isButtonDisabled = true;
5757
try {
58-
if (paymentMethodId === null) {
58+
if (paymentMethodId === null || paymentMethodId === '$new') {
5959
try {
6060
if (showState && !state) {
6161
throw Error('Please select a state');
@@ -65,13 +65,17 @@
6565
method = await setPaymentMethod(paymentMethod.id, name, state);
6666
} else {
6767
const card = await submitStripeCard(name, $organization.$id);
68-
if (card && Object.hasOwn(card, 'id')) {
68+
// When Stripe returns an expanded PaymentMethod for US cards, we need state.
69+
if (Object.hasOwn(card, 'id') && (card as PaymentMethod)?.card) {
6970
if ((card as PaymentMethod).card?.country === 'US') {
7071
paymentMethod = card as PaymentMethod;
7172
showState = true;
7273
return;
7374
}
74-
} else if (card && Object.hasOwn(card, '$id')) {
75+
}
76+
77+
// Otherwise, we expect an Appwrite PaymentMethodData with `$id`.
78+
if (Object.hasOwn(card, '$id')) {
7579
method = card as PaymentMethodData;
7680
}
7781
}

0 commit comments

Comments
 (0)