Ecommerce Vente نشر 22 أكتوبر 2022 أرسل تقرير نشر 22 أكتوبر 2022 أريد أن أدمج بوابة الدفع ثاوني في مشروعي المبني على جانغو 1 اقتباس
0 Ahmed Sadek Elamine Touahria نشر 22 أكتوبر 2022 أرسل تقرير نشر 22 أكتوبر 2022 إن بوابة الدفع "ثواني thwani" لا تختلف عن نضيراتها من بوابات الدفع الأخرى ، بحيث يتم إرسال إستعلام POST والتي تحتوي على الحمولة pyload وبعض headers مثل api-key وغيرها إنشاء حساب على ثواني لجلب public key & secret key ثم إنشاء دالة إنشاء customer def create_customer(payload,url,secret_key): payload = payload headers = { "Content-Type": "application/json", "thawani-api-key": secret_key } response = requests.request("POST", url, json=payload, headers=headers) response_to_dictionary = json.loads(response.text) # تحويل الاستجابة الى قاموس بايثون print(response_to_dictionary) if response_to_dictionary["success"]: return response_to_dictionary["data"]["id"] # إسترجاع معرف العميل لنستخدمه لاحقا في الدفع else: return None بعد ذلك دالة لإنشاء session خاص بالدفع def post(self,request,serial,slug): if "plan"in request.POST: THAWANI_PUBLISHABLE_KEY = settings.THAWANI_PUBLISHABLE_KEY THAWANI_SECRET_KEY = settings.THAWANI_SECRET_KEY URL = "https://checkout.thawani.om/api/v1/checkout/session" if request.user.is_authenticated: customer = create_customer(payload={"client_customer_id":str(request.user.email)},url="https://checkout.thawani.om/api/v1/customers",secret_key=THAWANI_SECRET_KEY) # استدعاء الدالة السابقة لإنشاء معرف العميل payload = { "client_reference_id": str(request.user.id),# معرف العميل من قاعدة بياناتك "mode": "payment", "products": [ { "name": "اسم المنتج", "quantity": 1, "unit_amount":100 } ], "success_url": "http://127.0.0.1:8000/payment_success",# لما يتم الدفع بنجاح يتم توجيهه الى "cancel_url": "http://127.0.0.1:8000/payment_cancel",# لما يتم الغاء الدفع يتم توجيهه الى "customer_id": str(customer) , # معرف العميل من قاعدة بيانات ثواني "metadata": { "Customer name": request.user.username, "order id": 0 # معرف الطلب يمكنك التلاعب به } } headers = { "Content-Type": "application/json", "thawani-api-key": THAWANI_SECRET_KEY } response = requests.request("POST", URL, json=payload, headers=headers) response_dict=json.loads(response.text) print(response_dict) try: if response_dict["success"]: try: session_id=response_dict["data"]["session_id"] except : session_id =None if session_id is not None: redirect_url = f"https://uatcheckout.thawani.om/pay/{session_id}?key={THAWANI_PUBLISHABLE_KEY}" print(redirect_url) return redirect(redirect_url) else: messages.error(request,_("sinvalid session id ")) else: messages.error(request,_("error invalid response ")) except: return redirect('مكان الصفحة التي تريد ان يذهب اليها لو ان هناك خطأ ') else: messages.error(request,_("plan invalid ")) else: print("user not authenticated") return redirect("login") 1 اقتباس
السؤال
Ecommerce Vente
أريد أن أدمج بوابة الدفع ثاوني في مشروعي المبني على جانغو
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.