# card_pan

# پرداخت با کارت مشخص

برای این که کاربر با کارتی که قبلا توسط شما احراز شده است و مورد تایید شما هست پرداخت کند و در صورتی که با کارت دیگری پرداخت را انجام دهد ، پرداخت ناموفق باشد در قسمت metadata باید card_pan را اضافه کنید و به آن مقدار شماره کارت مورد نظر را دهید

اطلاعات ارسالی

نام نوع اجباری شرح
merchant_id String بله كد 36 كاراكتري اختصاصي پذيرنده
amount Integer بله مبلغ تراكنش به (ریال)
description String بله توضیحات مربوط به تراکنش
callback_url String بله صفحه بازگشت مشتري، پس از انجام عمل پرداخت
metadata Array دارای مقدار های mobile و email
mobile String خیر شماره تماس خریدار
email String خیر ایمیل خریدار
card_pan Integer خیر شماره کارت پرداخت کننده

مثال:

  • نمونه درخواست
  • درخواست
  • پاسخ
curl -X POST \
  https://api.zarinpal.com/pg/v4/payment/request.json \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -d '{
  "merchant_id": "1344b5d4-0048-11e8-94db-005056a205be",
  "amount": 10000,
  "callback_url": "http://yoursite.com/verify",
  "description": "افزایش اعتبار کاربر شماره ۱۱۳۴۶۲۹",
  "metadata": {"mobile": "09121234567","email": "info.test@gmail.com", "card_pan":"5022291083818920",}
}'


نکته

در صورتی که کاربر با شماره کارت ارسال شده پرداخت انجام دهد پرداخت موفق خواهد بود و در غیر این صورت ناموفق و مبلغ تا ۷۲ ساعت به کارتی که با آن پرداخت شده بازگشت داده می شود

نمونه کد وریفای

  • درخواست
  • پاسخ
curl -X POST \
  https://api.zarinpal.com/pg/v4/payment/verify.json \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -d '{
  "merchant_id": "1344b5d4-0048-11e8-94db-005056a205be",
  "amount": 10000,
  "authority": "A00000000000000000000000000217885159"
}'

مقاديري كه توسط متد verify برگشت داده ميشود به شرح زير ميباشد.

نام نوع شرح
code Integer عددي كه نشان دهنده موفق بودن يا عدم موفق بودن پرداخت ميباشد.
ref_id Integer در صورتي كه پرداخت موفق باشد؛ شماره تراكنش پرداخت انجام شده را بر ميگرداند.
card_pan String شماره کارت به صورت Mask
card_hash String هش کارت به صورت SHA256
fee_type String پرداخت کننده کارمزد که در پنل قابل انتخاب است کاربر و یا خود پذیرنده
fee Integer کارمزد

# ذخیره کارت در درگاه

در مرحله‌ای که کاربر قصد پرداخت اینترنتی برای یک محصول یا خدمت را دارد، هنگامی که به درگاه پرداخت متصل می‌شود، نیاز است تا اطلاعات کارت بانکی خود را وارد نماید که این اطلاعات شامل شماره‌ی ۱۶ رقمی، کد CVV2 و تاریخ انقضا (ماه / سال) درج شده روی کارت بانکی فرد است. پس از وارد کردن اطلاعات اصلی، نیاز است تا کد امنیتی که در همین صفحه به او نمایش داده می‌شود را نیز وارد نماید تا بتواند رمز پویا را از طریق پیامک بانکی دریافت کند و پرداخت خود را ثبتِ نهایی کند.

چنانچه پذیرنده، شخصا فرآیند ارسال پارامتر شماره همراه پرداخت کننده را هنگام کدنویسی پیاده‌سازی کند، در این مرحله پس از انتقال کاربر پرداخت‌کننده به درگاه پرداخت اینترنتی، شماره همراه کاربر، توسط زرین‌پال به بانک عامل فرستاده شده، سپس اطلاعات کارت بانکی مرتبط با آن شماره همراه ذخیره می‌گردد و در پرداخت‌های بعدی با همان شماره موبایل، تاریخچه‌ی اطلاعات درج شده روی کارت، جهت انتخاب مجدد به کاربر نمایش داده می‌شود. سپس فرد می‌تواند با انتخاب کارت موردنظر خود، بدون کوچک‌ترین خطا و در کوتاه‌ترین زمان ممکن، از تمام اطلاعات کارت بانکی خود، تنها کد CVV2 را وارد نماید، بدون این‌که نیاز باشد شماره‌ی کامل کارت بانکی، ماه و سال انقضای کارت‌اش را مجددا وارد کند.

از مهم‌ترین ویژگی‌های این روش، افزایش سرعت پرداخت به واسطه‌ی هوشمندسازی مسیر پرداخت است ضمن این‌که کاربر تجربه‌ی خوشایندی از نحوه‌ی پرداخت آسان و سریع خواهد داشت که همین مساله فرد را به خرید مجدد نیز ترغیب خواهد کرد. به صورت کلی به کمک فرآیند هوشمندِ پیاده‌سازی شده در درگاه پرداخت اینترنتی زرین‌پال، بروز خطا هنگام وارد کردن شماره کارت یا سایر اطلاعات بانکی توسط فرد پرداخت‌کننده، کاهش یافته و ضریب پرداخت موفق به مقصد نهایی افزایش می‌یابد.

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

به نوع داده ها و نام فیلد توجه کنید.

نکته : تمامی داده های برگشتی از زرین‌پال به صورت json می باشد

POST
https://api.zarinpal.com/pg/v4/payment/request.json
نام نوع اجباری شرح
merchant_id String بله كد 36 كاراكتري اختصاصي پذيرنده
amount Integer بله مبلغ تراكنش به (ریال)
description String بله توضیحات مربوط به تراکنش
callback_url String بله صفحه بازگشت مشتري، پس از انجام عمل پرداخت
metadata Array دارای مقدار های mobile و email
mobile String خیر شماره تماس خریدار
email String خیر ایمیل خریدار
  • نمونه درخواست
  • درخواست
  • پاسخ
curl -X POST \
  https://api.zarinpal.com/pg/v4/payment/request.json \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -d '{
  "merchant_id": "1344b5d4-0048-11e8-94db-005056a205be",
  "amount": 10000,
  "callback_url": "http://yoursite.com/verify",
  "description": "افزایش اعتبار کاربر شماره ۱۱۳۴۶۲۹",
  "metadata": {"mobile": "09121234567","email": "info.test@gmail.com"}
}'


تمام مراحل دیگر مانند بخش راهنمای اتصال می باشد .

# واحد پول

امکان دیگری که در اختیار توسعه دهنده ها قرار گرفته است انتخاب واحد پولی هست در این مورد توسعه دهنده می تواند به راحتی واحد پولی ارسالی را مشخص کند و از ایجاد مشکلات احتمالی در ریال یا تومان بودن مبلغ بکاهد

برای این مورد نیاز هست که در اطلاعات ارسالی پارامتر currency با یکی از مقدار های IRR یا IRT اقدام شود

نوع IRR به معنای مقدار واحد پول ریال است نوع IRT به معنای مقدار واحد پولی تومان است

نکته : تمامی داده های برگشتی از زرین‌پال به صورت json می باشد

POST
https://api.zarinpal.com/pg/v4/payment/request.json
نام نوع اجباری شرح
merchant_id String بله كد 36 كاراكتري اختصاصي پذيرنده
currency String خیر تعیین واحد پولی
amount Integer بله مبلغ تراكنش به (ریال)
description String بله توضیحات مربوط به تراکنش
callback_url String بله صفحه بازگشت مشتري، پس از انجام عمل پرداخت
metadata Array دارای مقدار های mobile و email
mobile String خیر شماره تماس خریدار
email String خیر ایمیل خریدار
  • نمونه درخواست
  • درخواست
  • پاسخ
curl -X POST \
  https://api.zarinpal.com/pg/v4/payment/request.json \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -d '{
  "merchant_id": "1344b5d4-0048-11e8-94db-005056a205be",
  "currency": "IRT",
  "amount": 10000,
  "callback_url": "http://yoursite.com/verify",
  "description": "افزایش اعتبار کاربر شماره ۱۱۳۴۶۲۹",
  "metadata": {"mobile": "09121234567","email": "info.test@gmail.com"}
}'


در نمونه درخواست بالا مقدار واحد پولی IRT (تومان) در نظر گرفته شده است پس مقدار amount که ۱۰۰۰۰ هست تومان می باشد و ۱۰۰۰۰ تومان جهت پرداخت به درگاه ارسال می شود

تمام مراحل دیگر مانند بخش راهنمای اتصال می باشد .