-
Notifications
You must be signed in to change notification settings - Fork 106
Open
Description
سلام در اول تشکر میکنم از پکیج خوبتون و خسته نباشید من با توضیحات ویدیو پیش رفتم و تنظیماتم رو در اینجا میزارم ولی کلا دارم این خطا رو میگیرم که 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
Labels
No labels