From bcc5bf23f5edc01fae76044fec553295c2984bc7 Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Fri, 11 Apr 2025 20:57:33 +0330 Subject: [PATCH 01/16] add callback url --- backend/account/admin.py | 2 +- backend/order/urls.py | 3 ++- backend/order/views.py | 21 +++++++++++++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/backend/account/admin.py b/backend/account/admin.py index b223804..b27d4c9 100644 --- a/backend/account/admin.py +++ b/backend/account/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin from .models import * -from unfold.admin import ModelAdmin, TabularInline +from unfold.admin import TabularInline from django.contrib.auth.admin import UserAdmin as BaseUserAdmin from import_export.admin import ImportExportModelAdmin from unfold.contrib.import_export.forms import ExportForm, ImportForm, SelectableFieldsExportForm diff --git a/backend/order/urls.py b/backend/order/urls.py index 31d4db3..479a357 100644 --- a/backend/order/urls.py +++ b/backend/order/urls.py @@ -11,6 +11,7 @@ urlpatterns = [ path('cart/all', CartItemClear.as_view()), path('cart/item/', CartItemViews.as_view(), name='change-item-cart'), path('cart/payment', PaymentView.as_view(), name='payment'), - path('callback', callback_view, name='callback-gateway'), + # path('callback', callback_view, name='callback-gateway'), + path('transaction/', CallbackView.as_view(), name='callback-gateway'), path('', OrderGetView.as_view(), name='order-get'), ] diff --git a/backend/order/views.py b/backend/order/views.py index 335c647..901930c 100644 --- a/backend/order/views.py +++ b/backend/order/views.py @@ -222,8 +222,7 @@ class PaymentView(APIView): ) bank.set_request(request) bank.set_amount(amount) - bank.set_client_callback_url(reverse("callback-gateway")) - print(reverse('callback-gateway')) + bank.set_client_callback_url('https://heymlz.com/transaction') bank.set_mobile_number(user_mobile_number) bank_record = bank.ready() @@ -270,6 +269,24 @@ def callback_view(request): +class CallbackView(APIView): + def get(self, request, tracking_code): + if not tracking_code: + return Response({'detail': 'کد تریسکد درست نمیباشد.'}) + + try: + bank_record = bank_models.Bank.objects.get(tracking_code=tracking_code) + except bank_models.Bank.DoesNotExist: + return Response({'detail': 'کد تریسکد معتبر نمیباشد.'}, status=status.HTTP_400_BAD_REQUEST) + + if bank_record.is_success: + return Response({"detail" : "پرداخت با موفقیت انجام شد."}, status=status.HTTP_200_OK) + + return Response( + {"detail": "پرداخت با شکست مواجه شده است. اگر پول کم شده است ظرف مدت ۴۸ ساعت پول به حساب شما بازخواهد گشت."}, status=status.HTTP_404_NOT_FOUND + ) + + class SetAddressSerilizer(serializers.Serializer): address_id = serializers.IntegerField() From ce0253c0d8323b55455ae8b2ab004cda6933ee26 Mon Sep 17 00:00:00 2001 From: Mamalizz Date: Fri, 11 Apr 2025 21:39:12 +0330 Subject: [PATCH 02/16] changed some style --- frontend/components/cart/checkout/Gateway.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/components/cart/checkout/Gateway.vue b/frontend/components/cart/checkout/Gateway.vue index e38d385..177b3ed 100644 --- a/frontend/components/cart/checkout/Gateway.vue +++ b/frontend/components/cart/checkout/Gateway.vue @@ -24,7 +24,7 @@ const emit = defineEmits(); @click="emit('select', null)" :class=" isSelected - ? 'ring-2 ring-offset-2 ring-black border-black' + ? 'ring-2 ring-offset-2 ring-blue-500 border-blue-500' : 'border-slate-200' " class="w-full p-5 border rounded-xl flex flex-col gap-4 transition-all cursor-pointer relative overflow-hidden" @@ -41,7 +41,7 @@ const emit = defineEmits(); > From 50161aab19cebcadc54dbadbfa4623cf57f5d2a6 Mon Sep 17 00:00:00 2001 From: Mamalizz Date: Fri, 11 Apr 2025 21:39:19 +0330 Subject: [PATCH 03/16] changed some style --- frontend/components/cart/delivery/AddressItem.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/components/cart/delivery/AddressItem.vue b/frontend/components/cart/delivery/AddressItem.vue index 0b20b25..5295322 100644 --- a/frontend/components/cart/delivery/AddressItem.vue +++ b/frontend/components/cart/delivery/AddressItem.vue @@ -66,7 +66,7 @@ const handleDeleteAddress = (id: number) => { @click.prevent="!!address ? emit('select', address) : null" :class=" isSelected - ? 'border-slate-200 ring-2 ring-offset-2 ring-black' + ? 'border-transparent ring-2 ring-offset-2 ring-blue-500' : 'border-slate-200' " class="flex flex-col items-center transition-all relative cursor-pointer w-full group gap-2 lg:gap-4 p-4 border rounded-xl bg-slate-50 overflow-hidden" @@ -81,7 +81,7 @@ const handleDeleteAddress = (id: number) => { {{ !!address ? address.name : "آدرس" }} انتخاب شده From f37f400ca0c30635ec2036bf58a794d39b8a598d Mon Sep 17 00:00:00 2001 From: Mamalizz Date: Fri, 11 Apr 2025 21:39:26 +0330 Subject: [PATCH 04/16] changed some style --- frontend/components/cart/delivery/AddressModal.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/components/cart/delivery/AddressModal.vue b/frontend/components/cart/delivery/AddressModal.vue index f0c84cf..35c20f4 100644 --- a/frontend/components/cart/delivery/AddressModal.vue +++ b/frontend/components/cart/delivery/AddressModal.vue @@ -135,6 +135,8 @@ watch( :end-icon="!!address ? 'bi:pen' : 'ci:plus'" size="md" class="rounded-full" + :variant="!!address ? 'ghost' : 'solid'" + :class="!!address ? '!bg-transparent !underline' : ''" > {{ !!address ? "ویرایش" : "افزودن آدرس" }} From 65bc715c79ed11ee6b127557aa1c3e4380174b45 Mon Sep 17 00:00:00 2001 From: Mamalizz Date: Fri, 11 Apr 2025 21:39:39 +0330 Subject: [PATCH 05/16] changed some style and gif --- .../cart/checkout/PaymentPendingModal.vue | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/frontend/components/cart/checkout/PaymentPendingModal.vue b/frontend/components/cart/checkout/PaymentPendingModal.vue index 9446c24..b6ff9b6 100644 --- a/frontend/components/cart/checkout/PaymentPendingModal.vue +++ b/frontend/components/cart/checkout/PaymentPendingModal.vue @@ -43,21 +43,14 @@ const visible = computed({ class="bg-custom-conic size-[200%] absolute -top-1/2 -left-1/2 animate-spin [animation-duration:3s] z-[1]" >
-