habulaj commited on
Commit
9aebe5f
·
verified ·
1 Parent(s): e2e67b1

Update routes/subscription.py

Browse files
Files changed (1) hide show
  1. routes/subscription.py +8 -4
routes/subscription.py CHANGED
@@ -266,20 +266,24 @@ def create_checkout_session(
266
  if not user_stripe_id:
267
  raise HTTPException(status_code=400, detail="Client does not have a Stripe Customer ID")
268
 
269
- # 🔹 4. Criar Checkout Session no Stripe com os metadados atualizados
 
 
 
 
270
  session = stripe.checkout.Session.create(
271
  success_url="https://yourdomain.com/success",
272
  cancel_url="https://yourdomain.com/cancel",
273
  payment_method_types=["card"],
274
  mode="subscription",
275
- customer=user_stripe_id, # 🔹 Correção aqui
276
  line_items=[
277
  {
278
  "price": price_id,
279
  "quantity": 1
280
  }
281
  ],
282
- payment_intent_data={ # 🔹 Importante para o Brasil! Indica que parte do valor será transferida
283
  "application_fee_amount": int(stylist_price * 0.2), # 20% para a plataforma
284
  "transfer_data": {
285
  "destination": stylist_stripe_id, # Conta do estilista no Stripe
@@ -290,7 +294,7 @@ def create_checkout_session(
290
  "stylist_id": stylist_id,
291
  "stylist_stripe_id": stylist_stripe_id,
292
  "user_id": user_id,
293
- "user_stripe_id": user_stripe_id # 🔹 Correção aqui
294
  },
295
  subscription_data={
296
  "metadata": {
 
266
  if not user_stripe_id:
267
  raise HTTPException(status_code=400, detail="Client does not have a Stripe Customer ID")
268
 
269
+ # 🔹 Buscar detalhes do preço no Stripe
270
+ price_details = stripe.Price.retrieve(price_id)
271
+ stylist_price = price_details.unit_amount # Obtém o valor do preço em centavos
272
+
273
+ # 🔹 Criar Checkout Session no Stripe
274
  session = stripe.checkout.Session.create(
275
  success_url="https://yourdomain.com/success",
276
  cancel_url="https://yourdomain.com/cancel",
277
  payment_method_types=["card"],
278
  mode="subscription",
279
+ customer=user_stripe_id,
280
  line_items=[
281
  {
282
  "price": price_id,
283
  "quantity": 1
284
  }
285
  ],
286
+ payment_intent_data={ # 🔹 Necessário para transferências no Brasil
287
  "application_fee_amount": int(stylist_price * 0.2), # 20% para a plataforma
288
  "transfer_data": {
289
  "destination": stylist_stripe_id, # Conta do estilista no Stripe
 
294
  "stylist_id": stylist_id,
295
  "stylist_stripe_id": stylist_stripe_id,
296
  "user_id": user_id,
297
+ "user_stripe_id": user_stripe_id
298
  },
299
  subscription_data={
300
  "metadata": {