سلام دوستان من یک فروشگاه اینترنتی ساختم و الان به درگاه پرداخت زرین پال متصل شدم بعد از پرداخت که باید متد verify اجرا بشه کاربر logout شده و میره صفحه login مشکل چی هست؟کسی تا حالا واسش اتفاق افتاده؟
حل شد مشکل باید آدرس callbackurl با آدرسی که وارد سایت می شود یکی باشد تا مشکلی پیش نیاد.
@login_required(login_url="login")
def payment(request,order_id,price):
global amount , o_id
amount = price
o_id = order_id
result = client.service.PaymentRequest(MERCHANT, amount, description,email,mobile,CallbackURL)
if result.Status == 100:
return redirect('https://sandbox.zarinpal.com/pg/StartPay/' + str(result.Authority))
else:
return HttpResponse('Error code: ' + str(result.Status))
def verify(request):
if request.GET.get('Status') == 'OK':
result=client.service.PaymentVerification(MERCHANT,request.GET['Authority'],amount)
if result.Status == 100:
order=Order.objects.get(id=o_id)
order.paid=True
order.save()
messages.success(request,'پرداخت با موفقیت انجام شد','success')
return redirect('home')
elif result.Status == 101:
return HttpResponse('Transaction submitted')
else:
return HttpResponse('Transaction failed.')
else:
return HttpResponse('Transaction failed or canceled by us
سلام احتمال زیاد وقتی دارید از این متغیر ها استفاده میکنید هنوز فانکشن invoke نشده
بیرون از بدنه فانکشن قرار بدید مشکل حل میشه
من بیرون تابع متغیر ها رو تعریف کردم وقتی متد verify اجرا میشه مقداری که بیرون تابع بهش دادم برمیگردونه نه مبلغ سفارش رو .انگار اصلا متد payment اجرا نشده .
مشکل چی میتونه باشه ؟اگر کسی میدونه ممنون میشم راهنمایی کنین.
حل شد مشکل باید آدرس callbackurl با آدرسی که وارد سایت می شود یکی باشد تا مشکلی پیش نیاد.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟