feat(abonnement): client.get_payment_info_url pour le changement de carte Frisbii

This commit is contained in:
Colin Maudry
2026-07-05 16:46:38 +02:00
parent 7664fe368d
commit 1cfb3e91e2
2 changed files with 58 additions and 0 deletions
+16
View File
@@ -1,4 +1,5 @@
import os
from urllib.parse import parse_qsl, urlencode, urlsplit, urlunsplit
import httpx
@@ -137,5 +138,20 @@ def get_subscription(subscription_handle: str) -> dict:
return _call("GET", f"/v1/subscription/{subscription_handle}")
def get_payment_info_url(sub_handle: str, accept_url: str, cancel_url: str) -> str:
sub = get_subscription(sub_handle)
url = sub["hosted_page_links"]["payment_info"]
parts = urlsplit(url)
query = dict(parse_qsl(parts.query))
query["accept_url"] = accept_url
query["cancel_url"] = cancel_url
new_query = urlencode(query)
# If URL has a fragment (hash-based routing), append params to fragment
if parts.fragment:
return f"{urlunsplit((parts.scheme, parts.netloc, parts.path, '', ''))}#{parts.fragment}?{new_query}"
else:
return urlunsplit(parts._replace(query=new_query))
def get_plan(plan_handle: str) -> dict:
return _call("GET", f"/v1/plan/{plan_handle}")