نحوه فرایند خرید با وب سرویس درگاه زرین پال
در مقاله قبل در مورد مقدمات وب سرویس درگاه پرداخت زرین پال و روش استفاده آن را توضیح دادیم در این مقاله در مورد فرایند خرید با 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 درگاه زرین پال صحبت کردیم در مقاله های بعدی بیشتر در مورد درگاه های پرداخت صحبت خواهیم کرد
