سلام اقای اردوخانی خسته نباشید
دستورات برای کانفیگ زرینپال عوض شده میشه توضیح بدید چیکار کنم؟
سورس جدید:
from django.conf import settings
import requests
import json
# ? sandbox merchant
if settings.SANDBOX:
sandbox = 'sandbox'
else:
sandbox = 'www'
ZP_API_REQUEST = f"https://{sandbox}.zarinpal.com/pg/rest/WebGate/PaymentRequest.json"
ZP_API_VERIFY = f"https://{sandbox}.zarinpal.com/pg/rest/WebGate/PaymentVerification.json"
ZP_API_STARTPAY = f"https://{sandbox}.zarinpal.com/pg/StartPay/"
amount = 1000 # Rial / Required
description = "توضیحات مربوط به تراکنش را در این قسمت وارد کنید" # Required
phone = 'YOUR_PHONE_NUMBER' # Optional
# Important: need to edit for realy server.
CallbackURL = 'http://127.0.0.1:8080/order/verify-payment/'
def send_request(request):
data = {
"MerchantID": settings.MERCHANT,
"Amount": amount,
"Description": description,
"Phone": phone,
"CallbackURL": CallbackURL,
}
data = json.dumps(data)
# set content length by data
headers = {'content-type': 'application/json', 'content-length': str(len(data))}
try:
response = requests.post(ZP_API_REQUEST, data=data, headers=headers, timeout=10)
if response.status_code == 200:
response = response.json()
if response['Status'] == 100:
return {'status': True, 'url': ZP_API_STARTPAY + str(response['Authority']),
'authority': response['Authority']}
else:
return {'status': False, 'code': str(response['Status'])}
return response
except requests.exceptions.Timeout:
return {'status': False, 'code': 'timeout'}
except requests.exceptions.ConnectionError:
return {'status': False, 'code': 'connection error'}
def verify(authority):
data = {
"MerchantID": settings.MERCHANT,
"Amount": amount,
"Authority": authority,
}
data = json.dumps(data)
# set content length by data
headers = {'content-type': 'application/json', 'content-length': str(len(data))}
response = requests.post(ZP_API_VERIFY, data=data, headers=headers)
if response.status_code == 200:
response = response.json()
if response['Status'] == 100:
return {'status': True, 'RefID': response['RefID']}
else:
return {'status': False, 'code': str(response['Status'])}
return response
سلام دوست من
تغییر خاصی نداشته دوست من
صرفا آدرس ها یه مقدار تنظیماتشون تغییر کرده
مواردی که مورد نیاز هستش :
amount = 1000 # Rial / Required
description = "توضیحات مربوط به تراکنش را در این قسمت وارد کنید" # Required
phone = 'YOUR_PHONE_NUMBER' # Optional
# Important: need to edit for realy server.
CallbackURL = 'http://127.0.0.1:8080/order/verify-payment/'اطلاعات مورد نظر رو پر کنین تا درخواست ارسال بشه
سلام
من هم مشکل دارم با تنظیمات جدید
SANDDBOX باید در setting آورده بشه که برنامه Error میده گویی که نمیشناسه این فرمت رو.
توضیح بیشتری بفرمایید ممنون میشم.
یک متغیر با نام SANDBOX داخل فایل settings.py تعریف کنین و بهش true یا false بدین
اگه true باشه ینی حالت تست و دمو هستش و اگه false بدین ینی قصد دارین از درگاه اصلی استفاده کنین
سلام
ممنون اقای اردوخانی
خواهش میکنم دوست من
موفق باشین :)
استاد سلام، وقتتون بخیر
منم باهاش مشکل دارم،در حالت تستی ارور
'dict' object has no attribute 'headers' رو میده.
لطفا منم راهنمایی کنید.
کدی که نوشتین رو دقیقا مطابق با کد اموزش پیاده سازی کنین دوست من
کد آموزش به درستی کار میکنه