• 1400/03/10

Soap Error :

سلام استاد 

استاد من وقتی دکمه پرداختو میزنم این ارورو میده در حالیکه چون پروژه آنلاین نیست و هنوز مرچنت ایدی و ... رو ندادم مثل ویدیو آموزش کد ارور  -1 رو بده

چیکار کنم!؟

  • 1400/03/11
  • ساعت 00:15

سلام دوست من

لطفا کدهای اصلی view که نوشتین رو وارد کنین

با تشکر


  • 1400/03/11
  • ساعت 18:29

بله بفرمایید

view


@login_required(login_url='/login')
def add_user_order(request):
    new_order_form = UserNewOrderForm(request.POST or None)

    if new_order_form.is_valid():
        order = Order.objects.filter(owner__id=request.user.id, is_paid=False).first()

        if order is None:
            order = Order.objects.create(owner_id=request.user.id, is_paid=False)

        product_id = new_order_form.cleaned_data.get('product_id')
        count = new_order_form.cleaned_data.get('count')
        if count < 0:
            count = 1
        product = Product.objects.get_by_id(product_id=product_id)
        order.orderdetail_set.create(product_id=product.id, count=count, price=product.price)
    return redirect('/open-order')


@login_required(login_url='/login')
def user_open_order(request):
    open_order: Order = Order.objects.filter(owner_id=request.user.id, is_paid=False).first()
    context = {
        'order': None,
        'details': None,
        'total': 0,
        'total_with_post': 0,
    }
    if open_order is not None:
        context['order'] = open_order
        context['details'] = open_order.orderdetail_set.all()
        context['id'] = id
        context['total'] = list(open_order.get_total_price())[0]
        context['total_with_post'] = list(open_order.get_total_price())[1]
    return render(request, 'order/user_open_order.html', context)


@login_required(login_url='/login')
def remove_order_detail(request, *args, **kwargs):
    detail_id = kwargs['detail_id']
    if detail_id is not None:
        order_detail = OrderDetail.objects.get_queryset().get(id=detail_id, order__owner_id=request.user.id)
        if order_detail is not None:
            order_detail.delete()
    return redirect('/open-order')


MERCHANT = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
amount = 1000  # Toman / Required
description = "توضیحات مربوط به تراکنش را در این قسمت وارد کنید"  # Required
email = 'x'  # Optional
mobile = 'x'  # Optional
client = Client('https://www.zarinpal.com/pg/services/WebGate/wsdl')
CallbackURL = 'http://localhost:8000/verify'  # Important: need to edit for realy server.


def send_request(request, *args, **kwargs):
    total_price = 0
    open_order: Order = Order.objects.filter(owner_id=request.user.id, is_paid=False).first()
    if open_order is not None:
        total_price = open_order.get_total_price()
        result = client.service.PaymentRequest(
            MERCHANT, total_price, description, email, mobile, f"{CallbackURL}/{open_order.id}"
        )
        if result.Status == 100:
            return redirect('https://www.zarinpal.com/pg/StartPay/' + str(result.Authority))
        else:
            return HttpResponse('Error code: ' + str(result.Status))


def verify(request, *args, **kwargs):
    order_id = kwargs.get('order_id')
    if request.GET.get('Status') == 'OK':
        result = client.service.PaymentVerification(MERCHANT, request.GET['Authority'], amount)
        if result.Status == 100:
            user_order = Order.objects.get_queryset().get(id=order_id)
            user_order.is_paid = True
            user_order.payment_date = time.time()
            user_order.ref_id = result.RefID
            user_order.save()
            return HttpResponse('Transaction success.\nRefID: ' + str(result.RefID))
        elif result.Status == 101:
            return HttpResponse('Transaction submitted : ' + str(result.Status))
        else:
            return HttpResponse('Transaction failed.\nStatus: ' + str(result.Status))
    else:
        return HttpResponse('Transaction failed or canceled by user')

 

urls

urlpatterns = [
    path('add-user-order', add_user_order),
    path('open-order', user_open_order, name="open-order"),
    path('remove-order-detail/<detail_id>', remove_order_detail),
    path('request', send_request, name='request'),
    path('verify/<order_id>', verify, name='verify'),
]


  • 1400/03/18
  • ساعت 23:52

استاد لینک بالارو کامل مطالعه کردم

کد های شمارو با بره خودم مقایسه کردم

پکیج zeep دوباره نصب کردم

باز همین ارورو میده

ولی پروژه ای که شما نوشتیدو اجرا میکنم error code :-10 میده

میشه مشکل از پکیج باشه؟

 چون من چند بار کد هارو چک کردم


  • 1400/03/19
  • ساعت 10:36

اگر مشکل soap error ادامه پیدا کنه به احتمال زیاد مشکل از package هستش

البته باید در نظر بگیرین که این package با چه نسخه ای از پایتون کار میکنه. ممکنه پروژه ی شما با پایتون 3.9 استارت خورده باشه اما این package اون رو پشتیبانی نکنه


  • 1400/03/19
  • ساعت 11:13

استاد توی pypi نگا کردم پایتون 3.8 ساپورت میکنه پروژه منم با 3.8 ران میشه


  • 1400/03/19
  • ساعت 11:15

استاد این مشکل حل بشو نیست😂😂

لطفا اگه پکیج جایگزینی هست بگید یا تو دوره جدید جنگو بررسی کنید

ممنون


  • 1400/03/19
  • ساعت 12:32

سورس اموزش بنده رو اجرا کنین ( کپی نکنید توی پروژه ی خودتون و همون رو اجرا کنین )

بنده سورس اموزش رو چک کردم و مشکلی نداره و باز هم همون ارور -10 رو برمیگردونه

تمامی قسمت ها رو با اموزش بنده مقایسه کنین تا مشکلش برطرف بشه

در جریان اموزش جدید هم این مورد رو بررسی خواهیم کرد

موفق باشین :)


  • 1400/03/19
  • ساعت 12:36

چشم استاد 

خیلی ممنون


logo-samandehi