نحوه فرایند خرید با وب سرویس درگاه زرین پال
در مقاله قبل در مورد مقدمات وب سرویس درگاه پرداخت زرین پال و روش استفاده آن را توضیح دادیم در این مقاله در مورد فرایند خرید با API درگاه زرین پال توضیح میدهیم.
نحوه دسترسی به سامانه
جهت استفاده از وب سرویس مزبور باید از آدرس های زیر در داخل کد وب سایت خود استفاده نمایید :
ردیف | توضیحات | آدرس |
1 | آدرس WSDL فراخوانی های پرداخت و تکمیل پرداخت | https://www.zarinpal.com/pg/services/WebGate/wsdl |
2 | آدرس ارجاع کاربران به وب گیت پس ساخت Authority | https://www.zarinpal.com/pg/StartPay/$Authority |
3 | آدرس ارجاع کاربران به زرین گیت پس ساخت Authority | https://www.zarinpal.com/pg/StartPay/$Authority/ZarinGate |
فرایند خرید
خریدار با مراجعه به وب سایت فروشنده و انتخاب کالا یا خدمات مورد نیاز، آماده پرداخت مبلغ فاکتور میشود؛ فروشنده مشخصات به زرین پال اعلام می دارد در این زمان پذیرنده این متد را از وب سرویس زرین پال PaymentRequest درخواست را با فراخوانی متد صدا میزند:
PaymentRequest(
‘MerchantID’ => $MerchantID,
‘Amount’ => $Amount,
‘Description’ => $Description,
‘Email’ => $Email,
‘Mobile’ => $Mobile,
‘CallbackURL’ => $CallbackURL
);
پارمترهای ورودی متد PaymentRequest به شرح زیر می باشند.
نام | نوع | اجباری | شرح |
MerchantID | String | بله | کد 36 کاراکتری اختصاصی پذیرنده |
Amount | Integer | بله | مبلغ تراکنش (به تومان) |
Description | String | بله | توضیحات مربوط تراکنش |
String | حیر | ایمیل خریدار | |
Mobile | String | خیر | شماره تماس خریدار |
CallbackURL | String | بله | صفحه بازگشت مشتری، پس از انجام عمل پرداخت |
مقادیریکه توسط متد PaymentRequest برگشت داده میشود به شرح زیر میباشد.
در جواب این درخواست زرین پال Authority را به همراه وضعیت درخواست (Status) را اعلام میکند. پذیرنده وظیفه دارد مشخصات را ذخیره و در صورت موفق بودن وضعیت (Status= 100) و صحیح بودن طول Authority ( 36 کاراکتر) کاربر را به سایت دروازه پرداخت redirect کند Authority بعنوان پارامتر اصلی باید در انتهای URL سایت دروازه پرداخت قرار گیرد، بعنوان مثال
توضیحات | آدرس |
نمونه لینک ارجاع برای وب گیت |
https://www.zarinpal.com/pg/StartPay/$Authority |
نمونه لینک ارجاع برای زرین گیت |
https://www.zarinpal.com/pg/StartPay/$Authority/ZarinGate |
نمونه لینک ارجاع برای موبایل گیت |
https://www.zarinpal.com/pg/StartPay/$Authority/MobileGate |
نمونه کد دستوری برای پرداخت همراه* |
*770*97*2*$Authority# |
*نکته: جهت کوتاه نمودن رشته وارد شده توسط کاربر در زمان پرداخت همراه میتوان، صفرهای ابتدای رشته را از طریق Cast نمودن Authority به نوع Integer Long حذف نمود.
از زمان ارسال کاربر به زرینپال، زمان محدودی (حدود 15 دقیقه) مشتری فرصت دارد که عملیات پرداخت خود را در سایت زرینپال، انجام دهد، در غیر اینصورت Authority منقضی میشود
بعد از پایان عملیات درسمت زرینپال، زرینپال وظیفه دارد کاربر را به سایت پذیرنده که از طریق CallbackURL مشخص شده است بازگرداند.
در صفحه CallbackURL پذیرنده وظیفه دارد درخواست معادل با Authority که از طـرف زریـن پـال و بـه صـورت QueryString بـر روی CallbackURL ارسال شده یافته و وضعیت تراکنش (Status (که از همین طریق ارسال شده است را با متـد PaymentVerification چـک نماید در صورت موفق بودن، پرداخت را ثبت و شماره تراکنش را به کاربر خریدار نمایش دهد ؛ در غیر اینصورت پذیرنده موظف اسـت کـه بـا توجه به کد خطایی که توسط متد PaymentVerification دریافت میکند کاربر را از خطای رخ داده مطلع سازد
PaymentVerification(
‘MerchantID’ => $MerchantID,
‘Authority’ => $Authority,
‘Amount’ => $Amount
);
نکته: توجه داشته باشید که به جز Status که در متد PaymentVerification قرار دارد یک Status نیز به صورت QueryString به سایت پذیرنده ارسال میگردد که دو مقدار ثابت دارد “OK “و“NOK “؛ در صورتی که این مقدار برابر “NOK “بود به این معنا بوده که تراکنش نا موفق بوده و یا توسط کاربر لغو شده است؛ پس در صورتی متد PaymentVerification استفاده شود که با QueryString مقدار Status برابر با “OK “باشد
نام | نوع | شرح |
MerchantID | String | کد 36 کاراکتری اختصاصی پذیرنده. |
Authority | String | کد یکتای شناسه مرجع درخواست. |
Amount | Integer | مبلغ تراکنش (به تومان). |
مقادیریکه توسط متد PaymentVerification برگشت داده میشود به شرح زیر میباشد
نام | نوع | شرح |
Status | Integer | عددی که نشان دهنده موفق بودن یا عدم موفق بودن پرداخت میباشد. |
RefID | Integer | در صورتی که پرداخت موفق باشد؛ شماره تراکنش پرداخت انجام شده را بر میگرداند |
برای دریافت فایل راهنمای کامل از این لینک اقدام به دانلود کنید
در این مقاله در مورد فرایند خرید با API درگاه زرین پال صحبت کردیم در مقاله های بعدی بیشتر در مورد درگاه های پرداخت صحبت خواهیم کرد