# card_pan
# پرداخت با کارت مشخص
برای این که کاربر با کارتی که قبلا توسط شما احراز شده است و مورد تایید شما هست پرداخت کند و در صورتی که با کارت دیگری پرداخت را انجام دهد ، پرداخت ناموفق باشد در قسمت metadata
باید card_pan
را اضافه کنید و به آن مقدار شماره کارت مورد نظر را دهید
اطلاعات ارسالی
نام | نوع | اجباری | شرح |
---|---|---|---|
merchant_id | String | بله | كد 36 كاراكتري اختصاصي پذيرنده |
amount | Integer | بله | مبلغ تراكنش به (ریال) |
description | String | بله | توضیحات مربوط به تراکنش |
callback_url | String | بله | صفحه بازگشت مشتري، پس از انجام عمل پرداخت |
metadata | Array | دارای مقدار های mobile و email | |
mobile | String | خیر | شماره تماس خریدار |
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
می باشد
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 | خیر | شماره تماس خریدار |
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
می باشد
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 | خیر | شماره تماس خریدار |
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 که ۱۰۰۰۰ هست تومان می باشد و ۱۰۰۰۰ تومان جهت پرداخت به درگاه ارسال می شود
تمام مراحل دیگر مانند بخش راهنمای اتصال می باشد .