Skip to content

CRITICAL:root:callbackUrl is not valid #133

@Stink-Po

Description

@Stink-Po

سلام در اول تشکر میکنم از پکیج خوبتون و خسته نباشید من با توضیحات ویدیو پیش رفتم و تنظیماتم رو در اینجا میزارم ولی کلا دارم این خطا رو میگیرم که callbackUrl is not valid و زمانی که از sampelpayment هم افدام میکنم همین خطا رو میگیرم :
BankGatewayAutoConnectionFailed at /bankgateways/sample-payment/
callbackUrl is not valid

setting :

"GATEWAYS": {
"ZIBAL": {
           "MERCHANT_CODE": "zibal",
       },
},
   "IS_SAMPLE_FORM_ENABLE": True,  # اختیاری و پیش فرض غیر فعال است
   "DEFAULT": "ZIBAL",
   "CURRENCY": "IRR",  # اختیاری
   "TRACKING_CODE_QUERY_PARAM": "tc",  # اختیاری
   "TRACKING_CODE_LENGTH": 16,  # اختیاری
   "SETTING_VALUE_READER_CLASS": "azbankgateways.readers.DefaultReader",  # اختیاری
   "BANK_PRIORITIES": [

   ],  # اختیاری

   "IS_SAFE_GET_GATEWAY_PAYMENT": True,  # اختیاری، بهتر است True بزارید.
   "CUSTOM_APP": None,  # اختیاری
}

USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https'
```)
urls:

urlpatterns = [
path('admin/', admin.site.urls),
path("bankgateways/", az_bank_gateways_urls()),
path("go-to-gateway/", send_request),
path("callback-gateway/", verify, name="callback"),
]

views :

def send_request(request):
    # خواندن مبلغ از هر جایی که مد نظر است
    amount = 100000
    # تنظیم شماره موبایل کاربر از هر جایی که مد نظر است
    user_mobile_number = "+989112221234"  # اختیاری
    print(request.build_absolute_uri(reverse("callback")))
    factory = bankfactories.BankFactory()
    try:
        bank = (
            factory.auto_create()
        )  # or factory.create(bank_models.BankType.BMI) or set identifier
        bank.set_request(request)
        bank.set_amount(amount)
        # یو آر ال بازگشت به نرم افزار برای ادامه فرآیند
        callback_url = request.build_absolute_uri(reverse("callback"))
        print(callback_url)
        bank.set_client_callback_url(callback_url)
        bank.set_mobile_number(user_mobile_number)

        # در صورت تمایل اتصال این رکورد به رکورد فاکتور یا هر چیزی که بعدا بتوانید ارتباط بین محصول یا خدمات را با این
        # پرداخت برقرار کنید.
        bank_record = bank.ready()

        # هدایت کاربر به درگاه بانک
        context = bank.get_gateway()
        return render(request, "orders/redirect_to_bank.html", context=context)
    except AZBankGatewaysException as e:
        print(e.args)
        print(e)
        return render(request, "orders/redirect_to_bank.html")


def verify(request):
    print("calling call back")
    print(f"TRACKING_CODE_QUERY_PARAM: {settings.TRACKING_CODE_QUERY_PARAM}")
    tracking_code = request.GET.get(settings.TRACKING_CODE_QUERY_PARAM, None)
    print(tracking_code)
    if not tracking_code:
        logging.debug("این لینک معتبر نیست.")
        return HttpResponse("این لینک معتبر نیست.")

    try:
        bank_record = bank_models.Bank.objects.get(tracking_code=tracking_code)
    except bank_models.Bank.DoesNotExist:
        logging.debug("این لینک معتبر نیست.")
        raise HttpResponse("این لینک معتبر نیست.")

    # در این قسمت باید از طریق داده هایی که در بانک رکورد وجود دارد، رکورد متناظر یا هر اقدام مقتضی دیگر را انجام دهیم
    if bank_record.is_success:
        # پرداخت با موفقیت انجام پذیرفته است و بانک تایید کرده است.
        # می توانید کاربر را به صفحه نتیجه هدایت کنید یا نتیجه را نمایش دهید.
        return HttpResponse("پرداخت با موفقیت انجام شد.")

    # پرداخت موفق نبوده است. اگر پول کم شده است ظرف مدت ۴۸ ساعت پول به حساب شما بازخواهد گشت.
    return HttpResponse(
        "پرداخت با شکست مواجه شده است. اگر پول کم شده است ظرف مدت ۴۸ ساعت پول به حساب شما بازخواهد گشت."
    )

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions