modified: make_post_sell/models/stripe_user_shop.py

modified:   make_post_sell/views/billing.py
	modified:   make_post_sell/views/user_crypto_settings.py
This commit is contained in:
Russell Ballestrini 2025-09-30 07:36:38 -04:00
parent 49eb1eac9c
commit e04e91075b
3 changed files with 22 additions and 1 deletions

View file

@ -48,6 +48,10 @@ class StripeUserShop(RBase, Base):
@property
def stripe_cards(self):
# Check if Stripe is configured for this shop
if self.shop.stripe is None:
return []
return self.shop.stripe.Customer.list_payment_methods(
self.stripe_customer, type="card"
)["data"]

View file

@ -5,6 +5,7 @@ from pyramid.httpexceptions import HTTPFound, HTTPBadRequest
from . import (
user_required,
shop_is_ready_required,
get_referer_or_home,
)
@ -16,6 +17,11 @@ from . import (
)
@shop_is_ready_required()
def billing(request):
# Check if shop exists and has Stripe configured
if request.shop is None or request.shop.stripe is None:
request.session.flash(("This shop doesn't accept credit cards yet.", "info"))
return HTTPFound(get_referer_or_home(request))
stripe_user_shop = request.shop.stripe_user_shop(request.user)
if stripe_user_shop is None:
@ -45,6 +51,11 @@ def billing(request):
@user_required()
@shop_is_ready_required()
def add_card(request):
# Check if shop has Stripe configured
if request.shop.stripe is None:
request.session.flash(("This shop doesn't accept credit cards yet.", "info"))
return HTTPFound(get_referer_or_home(request))
stripe_setup_intent = request.params.get("setup_intent")
stripe_setup_intent_client_secret = request.params.get("setup_intent_client_secret")
@ -89,6 +100,11 @@ def confirm_update_card(request):
@user_required()
@shop_is_ready_required()
def update_card(request):
# Check if shop has Stripe configured
if request.shop.stripe is None:
request.session.flash(("This shop doesn't accept credit cards yet.", "info"))
return HTTPFound(get_referer_or_home(request))
action = request.params.get("action", None)
card_id = request.params.get("card_id")
stripe_user_shop = request.shop.stripe_user_shop(request.user)

View file

@ -5,6 +5,7 @@ from ..models.user_crypto_refund_address import (
UserCryptoRefundAddress,
get_user_crypto_refund_address,
)
from ..models.meta import now_timestamp
from . import user_required
@ -92,7 +93,7 @@ def user_crypto_settings_update(request):
# Update existing
addr_obj.address = address
addr_obj.label = label if label else None
addr_obj.updated_timestamp = request.now_timestamp()
addr_obj.updated_timestamp = now_timestamp()
request.session.flash((f"{coin_type} refund address updated", "success"))
else:
# Create new