sub scription prooductds

This commit is contained in:
CHIEFSOFT\ameye
2025-08-23 13:39:38 -04:00
parent e53abb288a
commit da1724c671
6 changed files with 86 additions and 11 deletions
+10 -5
View File
@@ -22,16 +22,20 @@ class StripeIntegration:
# payment_method="pm_card_visa", # Replace with a valid payment method ID or attach one later
return customer
def create_product(self, data):
# Example of creating a Product and Price
product = stripe.Product.create(name="Premium Plan")
@staticmethod
def create_product(display_name, monthly):
logger.info(f"Inside Stripe_Product ===== : {display_name}")
product_name = display_name
product = stripe.Product.create(name=product_name)
price = stripe.Price.create(
unit_amount=1000, # Amount in cents (e.g., $10.00)
unit_amount=monthly, # Amount in cents (e.g., $10.00)
currency="usd",
recurring={"interval": "month"},
product=product.id,
)
return {'product_id': product.id, 'price_id': price.id}
@staticmethod
def create_subscription(self, data):
subscription = stripe.Subscription.create(
customer='customer.id',
@@ -40,4 +44,5 @@ class StripeIntegration:
],
payment_behavior="default_incomplete", # Recommended for handling initial payment
expand=["latest_invoice.payment_intent"], # To get details for payment confirmation
)
)
+4
View File
@@ -1,4 +1,6 @@
from flask import session, jsonify
from app.api.integrations import StripeIntegration
from app.utils.logger import logger
from app.api.services.base_service import BaseService
from marshmallow import ValidationError
@@ -235,6 +237,8 @@ class LoginService(BaseService):
Config.JWT_SECRET_KEY,
algorithm="HS256"
)
# price_create_result = StripeIntegration.create_product('AmeyeTEST', 9999)
# logger.info(f"Inside Stripe_Product ===== : {price_create_result}")
# Simulate processing
response_data = {
+20 -5
View File
@@ -6,7 +6,7 @@ from app.api.helpers.response_helper import ResponseHelper
from app.api.schemas.user import UserSchema
from app.models import Members, MembersProducts, SubscriptionOptions, SubscriptionOptionsItems
from app.extensions import db
from app.api.integrations import StripeIntegration
class SubscriptionService(BaseService):
# def get_all_subscriptions(cls, product_id=None, member_id=None, page=1, limit=20):
@@ -64,8 +64,6 @@ class SubscriptionService(BaseService):
return response_data
except Exception as e:
logger.error(f"An error occurred while getting dashboard data: {str(e)}", exc_info=True)
return jsonify({"message": "Internal Server Error"}), 500
@@ -78,10 +76,28 @@ class SubscriptionService(BaseService):
token = validated_data.get('token')
uid = validated_data.get('uid')
member_data = Members.get_member_by_uid(uid)
if not member_data:
invalid_data = {
"error_message": "Member Data",
"message_key": "invalid_member",
}
return ResponseHelper.success(data=invalid_data)
# option_name
member_id = member_data.id
option_name = member_data.option_name
trial_name = "TRIAL-90"
res_options = []
sub_options = SubscriptionOptions.get_subscription_options(1)
for t in sub_options:
if t.stripe_product_id is None or t.stripe_product_id.strip() == "" or t.stripe_price_id is None or t.stripe_price_id.strip() == "":
price_create_result = StripeIntegration.create_product(t.display_name, t.monthly)
logger.info(f"Inside Stripe_Product ===== : {price_create_result}")
if price_create_result:
SubscriptionOptions.set_stripe_product_id(t.uid,price_create_result['product_id'])
SubscriptionOptions.set_stripe_price_id(t.uid,price_create_result['price_id'])
res_options.append({
'option_id': t.id,
'package_uid': t.uid,
@@ -95,7 +111,7 @@ class SubscriptionService(BaseService):
subscription_products_data = {
"current_product": {
"display_name": "TRIAL-90",
"display_name": trial_name if option_name is None else option_name,
"subs": [
'Post Jobs',
'advanced instructors search',
@@ -126,4 +142,3 @@ class SubscriptionService(BaseService):
# return ['Post Jobs 222', 'advanced instructors search', 'invite candidates', 'post events',
# 'Cancel anytime']
return res_options_items