راهنمای استفاده از API یوپال




برای انجام تراکنش در سایت ابتدا می بایست در سایت ثبت نام کرده و یک درگاه ایجاد کنید ، با ایجاد درگاه و دریافت شماره API می توانید تراکنش خود را به صورت زیر انجام دهید.


گام اول :





برای انجام تراکنش می بایست مقادیر زیر را به آدرس <<<<<<< HEAD

https://upal.ir//transaction/create

=======

http://yopal.ir/transaction/create

>>>>>>> de48e47fbd1f82a027d1a5718628064c6bf36e45 به صورت POST ارسال کنید.

gateway_id

شماره id درگاه که پس از ثبت نام در سایت و ایجاد درگاه جدید دریافت میکنید

amount

مقدار مبلغ تراکنش به ریال

description

شرح تراکنش (اختیاری)

rand

یک رشته 16 کارکتری اتفاقی است که توسط خودتان ساخته می شود.

مثال php :

$rand = substr(md5(time() . microtime()), 0, 16);

redirect_url

آدرس URL برای بازگشت و تائید اعتبار که پس از پرداخت مبلغ توسط سیستم شتاب به این آدرس باز میگردد
نکته : لینک ارسالی می بایست encode شود که اینکار در زبان php به صورت زیر است:
<<<<<<< HEAD
urlencode('https://upal.ir');          
=======
urlencode('http://yopal.ir');          
>>>>>>> de48e47fbd1f82a027d1a5718628064c6bf36e45
            

در صورت ارسال صحیح اطلاعات شماره آی دی تراکنش ( غیر تکراری ) را دریافت خواهید کرد و در غیر اینصورت متن خطا را دریافت می کنید.




گام دوم :





آی دی تراکنش دریافت شده در گام 1 را به لینک زیر ارسال کنید
<<<<<<< HEAD
        https://upal.ir/transaction/submit?id=YOUR_ID
=======
        http://yopal.ir/transaction/submit?id=YOUR_ID
>>>>>>> de48e47fbd1f82a027d1a5718628064c6bf36e45
    

مثال PHP :
<<<<<<< HEAD
header("location:https://upal.ir/transaction/submit?id=12345");
=======
header("location:http://yopal.ir/transaction/submit?id=12345");
>>>>>>> de48e47fbd1f82a027d1a5718628064c6bf36e45
    
بعد از انتقال کاربر به صفحه پرداخت بانک منتقل خواهد شد.


گام سوم :



دریافت اطلاعات و چک امنیتی تراکنش در این مرحله انجام میشود.

گام 3 که مرحله پایانی می باشد به آدرسی که در گام 1 (redirect_url) وارد کردید منتقل می شود در این مرحله مقادیر زیر به آدرس (redirect_url) اضافه خواهد شد.


trans_id

شماره آی دی تراکنش ، که یک عدد یکتا و غیر تکراری است

valid

شامل یک رشته 32 کارکتری هش شده توسط الگوریتم md5 است که مخلوطی از مقادیر زیر می باشد :
مثال php :
md5($gateway_id . $amount . $gateway_api . $rand);


توضیحات مقادیر:

gateway_id


شماره id درگاه که پس از ثبت نام در سایت و ایجاد درگاه جدید دریافت میکنید .

amount


مقدار مبلغ تراکنش به ریال

gateway_api


API درگاه که پس از ایجاد درگاه در سایت دریافت خواهید کرد ، شامل رشته ای کد شده که طول آن 32 کارکتر می باشد
نکته : این رشته توسط سیستم به صورت خودکار ایجاد میشود

rand


یک رشته 16 کارکتری است که در گام 1 فرستاده بودید.
نکته:دقیقا می بایست همان رشته ای باشد که در گام 1 به سایت فرستاده بودید (به حروف کوچک و بزرگ نیز دقت کنید)
نکته : این رشته برای اعتبار سنجی از آدرس برگشتی می باشد که صحت داده ها را تعیین می کند.

مثال PHP :




به فرض اینکه شما آدرس بازگشت redirect_url را http://youdomain.com/callback.php در نظر گرفته بودید

پس از انجام موفقیت آمیز پرداخت به آدرس زیر منتقل خواهید شد
که در این گام برای اعتبار سنجی می بایست hash شده کد مخلوطی شما برابر با مقدار دریافتی در valid باشد
http://youdomain.com/callback.php?trans_id=123&valid=kivH309s38nks813945u39u12usofxh5
    

نمونه کد PHP :
ارسال به درگاه :
function curl_func($gateway_id ,$amount,$redirect_url,$rand,$description=null) {

    $params = http_build_query(array(
            'gateway_id' => $gateway_id,
            'amount' => $amount,
            'redirect_url' => $redirect_url,
            'rand' => $rand,
            'description' => $description
        ));

    $ch = curl_init();
<<<<<<< HEAD
    curl_setopt($ch, CURLOPT_URL, 'https://upal.ir/transaction/create');
=======
    curl_setopt($ch, CURLOPT_URL, 'http://yopal.ir/transaction/create');
>>>>>>> de48e47fbd1f82a027d1a5718628064c6bf36e45
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}

$gateway_id = 3234;
$amount = 10000; //RIAL
$redirect_url="http://domain.com/callback.php";
$rand = substr(md5(time() . microtime()), 0, 16);
$description = 'آزمایش پرداخت'; //optional

//Transaction id
$t_id = curl_func($gateway_id,$amount,$redirect_url,$rand,$description);
if ($t_id > 0) {
            //SAVE DATA TO DATABASE
<<<<<<< HEAD
            $url = 'https://upal.ir/transaction/submit?id=' . $t_id;
=======
            $url = 'http://yopal.ir/transaction/submit?id=' . $t_id;
>>>>>>> de48e47fbd1f82a027d1a5718628064c6bf36e45
            header("location: $url");
}else{
            //Show error
            echo $t_id;
}
    

دریافت از درگاه :
بازگشت از درگاه به لینک وارد شده در redirect_url به همراه مقدار valid
http://youdomain.com/callback.php?trans_id=3234&valid=kivH309s38nks813945u39u12usofxh5
$Valid=$_GET['valid'];
$My_valid = md5($gateway_id . $amount . $gateway_api . $rand);
if($Valid==$My_valid ) {
            //Payment Success     
}