Ecommerce Vente نشر 5 نوفمبر 2022 أرسل تقرير نشر 5 نوفمبر 2022 كيفية دمج بوابة الدفع بايبال مع جانغو 1 اقتباس
0 Ahmed Sadek Elamine Touahria نشر 5 نوفمبر 2022 أرسل تقرير نشر 5 نوفمبر 2022 1. تثبيت تطبيق DJANGO-PAYPAL pip install django-paypal 2. أدخل التطبيق في إعدادات DJANGO الخاصة بك INSTALLED_APPS = ( ... 'paypal.standard.ipn', ) 3. أدخل نموذج PayPal عند العرض from django.views.generic import FormView from django.urls import reverse from paypal.standard.forms import PayPalPaymentsForm class PaypalFormView(FormView): template_name = 'paypal_form.html' form_class = PayPalPaymentsForm def get_initial(self): return { "business": 'your-paypal-business-address@example.com', "amount": 20, "currency_code": "EUR", "item_name": 'Example item, "invoice": 1234, "notify_url": self.request.build_absolute_uri(reverse('paypal-ipn')), "return_url": self.request.build_absolute_uri(reverse('paypal-return')), "cancel_return": self.request.build_absolute_uri(reverse('paypal-cancel')), "lc": 'EN', "no_shipping": '1', } هذا FormView عادي والقالب paypal_form.html هو نموذج Django قياسي مثل هذا: <html> <body> {{ form.render }} </body> </html> 4. تقديم عنوان URL لـ PAYPAL IPN path('paypal/', include('paypal.standard.ipn.urls')), 5. إنشاء صفحات للنجاح وفشل الدفع باي بال #views.py from django.views.generic import TemplateView class PaypalReturnView(TemplateView): template_name = 'paypal_success.html' class PaypalCancelView(TemplateView): template_name = 'paypal_cancel.html' # URL.py from . import views urlpatterns = [ path('/paypal-return/', views.PaypalReturnView.as_view(), name='paypal-return'), path('/paypal-cancel/', views.PaypalCancelView.as_view(), name='paypal-cancel'), ... ] 6. قم بإعداد الدالة التالية لاستلام مدفوعات PAYPAL الناجحة from paypal.standard.models import ST_PP_COMPLETED from paypal.standard.ipn.signals import valid_ipn_received @receiver(valid_ipn_received) def paypal_payment_received(sender, **kwargs): ipn_obj = sender if ipn_obj.payment_status == ST_PP_COMPLETED: # تحذير ! # تأكد من أن البريد الإلكتروني للمستلم هو نفسه الذي قمنا بتعيينه مسبقًا في حقل "الأعمال". (يمكن للمستخدم العبث بـ # تلك الحقول في نموذج الدفع قبل أن ينتقل إلى PayPal) if ipn_obj.receiver_email != 'your-paypal-business-address@example.com': # دفع غير صالح return # أيضًا: لنفس السبب ، تحتاج إلى التحقق من المبلغ # تلقى ، "العرف" وما إلى ذلك هي كل ما تتوقعه أو ماذا # مسموح به. try: my_pk = ipn_obj.invoice mytransaction = MyTransaction.objects.get(pk=my_pk) assert ipn_obj.mc_gross == mytransaction.amount and ipn_obj.mc_currency == 'EUR' except Exception: logger.exception('Paypal ipn_obj data not valid!') else: mytransaction.paid = True mytransaction.save() else: logger.debug('Paypal payment status not completed: %s' % ipn_obj.payment_status) 1 اقتباس
السؤال
Ecommerce Vente
كيفية دمج بوابة الدفع بايبال مع جانغو
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.