Ecommerce Vente نشر 22 أكتوبر 2022 أرسل تقرير مشاركة نشر 22 أكتوبر 2022 أريد أن أدمج بوابة الدفع ثاوني في مشروعي المبني على جانغو 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Ecommerce Vente
أريد أن أدمج بوابة الدفع ثاوني في مشروعي المبني على جانغو
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.