webhook corrected 8-3-2024 15:40
This commit is contained in:
@@ -213,15 +213,16 @@ class PaymentProcessingService:
|
||||
print("self.charge_data: ", self.charge_data)
|
||||
print("self.metadata: ", self.charge_data["metadata"])
|
||||
# Extract transaction_id from webhook metadata
|
||||
transaction_id = int(self.charge_data["metadata"]["transaction_id"])
|
||||
transaction_id = self.charge_data["metadata"]["transaction_id"]
|
||||
# Fetch the Transaction instance using the transaction_id
|
||||
return Transaction.objects.get(id=transaction_id)
|
||||
return Transaction.objects.get(id=int(transaction_id))
|
||||
|
||||
def _get_subscription_by_id(self):
|
||||
# Extract transaction_id from webhook metadata
|
||||
subscription = int(self.charge_data["metadata"]["subscription_id"])
|
||||
subscription = self.charge_data["metadata"]["subscription_id"]
|
||||
print("subscription: ", subscription)
|
||||
# Fetch the Transaction instance using the transaction_id
|
||||
return Subscription.objects.get(id=subscription)
|
||||
return Subscription.objects.get(id=int(subscription))
|
||||
|
||||
def process_event(self):
|
||||
if self.event_type == "checkout.session.completed":
|
||||
@@ -264,7 +265,7 @@ class PaymentProcessingService:
|
||||
self._update_reward(
|
||||
referral_record=referral_record,
|
||||
active_subscription=active_subscription,
|
||||
create_subscription_method=self._create_principal_subscription,
|
||||
create_subscription_method=self._create_principal_subscription(),
|
||||
has_active_subscription=True,
|
||||
)
|
||||
else:
|
||||
@@ -320,7 +321,7 @@ class PaymentProcessingService:
|
||||
)
|
||||
|
||||
# Create a new subscription for the referred principal
|
||||
referred_subscription_id = create_subscription_method()
|
||||
referred_subscription_id = self._create_principal_subscription()
|
||||
|
||||
# Create or update the ReferralTracking record
|
||||
ReferralTracking.objects.create(
|
||||
|
||||
@@ -388,7 +388,16 @@ def create_checkout_session(request):
|
||||
if request.method == "GET":
|
||||
domain_url = "http://localhost:8000/"
|
||||
stripe.api_key = settings.STRIPE_SECRET_KEY
|
||||
subscription_id = 2
|
||||
|
||||
subscription_id = None # Assuming 3 is a default or fallback subscription ID
|
||||
|
||||
if request.user.is_authenticated:
|
||||
print("request.user: ", request.user)
|
||||
if request.user.principal_type.name == "event_user":
|
||||
subscription_id = 1
|
||||
elif request.user.principal_type.name == "event_manager":
|
||||
subscription_id = 2
|
||||
|
||||
try:
|
||||
subscription = Subscription.objects.get(id=subscription_id)
|
||||
except Subscription.DoesNotExist:
|
||||
@@ -401,17 +410,24 @@ def create_checkout_session(request):
|
||||
)
|
||||
print("order_id: ", order_id)
|
||||
|
||||
# Create a Transaction object with status INITIATE
|
||||
transaction = Transaction.objects.create(
|
||||
principal=request.user,
|
||||
principal_subscription=None, # Since the subscription is not created yet
|
||||
transaction_type=TransactionType.DEPOSIT, # or PAYMENT, as applicable
|
||||
payment_method=PaymentMethod.CARD, # Assuming CARD for this example
|
||||
transaction_status=TransactionStatus.INITIATE,
|
||||
amount=subscription.amount,
|
||||
order_id=order_id,
|
||||
comment="Principal Subscription Initiated",
|
||||
)
|
||||
try:
|
||||
# Create a Transaction object with status INITIATE
|
||||
transaction = Transaction.objects.create(
|
||||
principal=request.user,
|
||||
principal_subscription=None, # Since the subscription is not created yet
|
||||
transaction_type=TransactionType.DEPOSIT, # or PAYMENT, as applicable
|
||||
payment_method=PaymentMethod.CARD, # Assuming CARD for this example
|
||||
transaction_status=TransactionStatus.INITIATE,
|
||||
amount=subscription.amount, # Fetching amount from the Subscription object
|
||||
order_id=order_id,
|
||||
comment="Principal Subscription Initiated",
|
||||
)
|
||||
except Exception as e:
|
||||
return ApiResponse.error(
|
||||
status=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
message="Failed to create transaction",
|
||||
errors=str(e)
|
||||
)
|
||||
try:
|
||||
customer = stripe.Customer.create(
|
||||
email=request.user.email,
|
||||
@@ -435,7 +451,7 @@ def create_checkout_session(request):
|
||||
"price_data": {
|
||||
"currency": "gbp",
|
||||
"product_data": {
|
||||
"name": "Subscription", # Adjust with your subscription/product name
|
||||
"name": subscription.title, # Adjust with your subscription/product name
|
||||
},
|
||||
"unit_amount": int(
|
||||
subscription.amount * 100
|
||||
|
||||
Reference in New Issue
Block a user