Corrections des bugs de la connexion à Frisbii #90
This commit is contained in:
+10
-13
@@ -5,7 +5,7 @@ import httpx
|
||||
# NB : base URL et schémas d'endpoints à confirmer dans la doc Frisbii lors de la
|
||||
# première intégration en environnement de test. Frisbii Billing/Pay s'appuie sur
|
||||
# l'API Reepay (api.reepay.com) ; ajuster FRISBII_API_BASE_URL si besoin.
|
||||
_DEFAULT_BASE_URL = "https://api.reepay.com"
|
||||
_DEFAULT_BASE_URL = "https://api.frisbii.com"
|
||||
_TIMEOUT = 15.0
|
||||
|
||||
|
||||
@@ -53,19 +53,16 @@ def create_subscription_session(
|
||||
cancel_url: str,
|
||||
no_trial: bool = False,
|
||||
) -> str:
|
||||
prepare = {"plan": plan_handle, "customer": customer_handle}
|
||||
body: dict = {
|
||||
"plan": plan_handle,
|
||||
"customer": customer_handle,
|
||||
"signup_method": "link",
|
||||
"generate_handle": True,
|
||||
}
|
||||
if no_trial:
|
||||
prepare["no_trial"] = True
|
||||
data = _call(
|
||||
"POST",
|
||||
"/v1/session/subscription",
|
||||
json={
|
||||
"accept_url": accept_url,
|
||||
"cancel_url": cancel_url,
|
||||
"prepare_subscription": prepare,
|
||||
},
|
||||
)
|
||||
return data["url"]
|
||||
body["no_trial"] = True
|
||||
data = _call("POST", "/v1/subscription", json=body)
|
||||
return data["hosted_page_links"]["payment_info"]
|
||||
|
||||
|
||||
def cancel_subscription(subscription_handle: str) -> dict:
|
||||
|
||||
@@ -17,11 +17,11 @@ PLANS = {
|
||||
"env": "FRISBII_PLAN_SIMPLE",
|
||||
"label": "Abonnement simple",
|
||||
"prix_ht": 20,
|
||||
"description": "Accès aux fonctionnalités premium de decp.info.",
|
||||
"description": "Accès à des fonctionnalités supplémentaires de decp.info.",
|
||||
},
|
||||
"soutien": {
|
||||
"env": "FRISBII_PLAN_SOUTIEN",
|
||||
"label": "Abonnement de soutien",
|
||||
"label": "Abonnement de soutien ✊",
|
||||
"prix_ht": 50,
|
||||
"description": "Mêmes fonctionnalités, contribution renforcée au projet.",
|
||||
},
|
||||
@@ -74,6 +74,9 @@ def trial_days(key: str) -> int | None:
|
||||
except client.FrisbiiError:
|
||||
logger.warning("Impossible de lire le plan Frisbii %s", handle)
|
||||
return cached[1] if cached else None
|
||||
# L'API Frisbii/Reepay renvoie une liste de versions ; on prend la dernière (la plus récente).
|
||||
if isinstance(plan, list):
|
||||
plan = plan[-1] if plan else {}
|
||||
days = _parse_trial_interval(plan.get("trial_interval"))
|
||||
_trial_cache[handle] = (now, days)
|
||||
return days
|
||||
|
||||
Reference in New Issue
Block a user