مقدمه

اگر یـکـ فروشـگاه اینتــرنتی دارید و خدمات یا محـصولات رو در وب‌سـایت خودتون ارائه می‌کنـید، می‌تــونید از درگاه پرداخـت ونـدار استفاده کنید. اگر میزان فروشـتون در ماه بالا باشه، ما درگاه .پرداخـت اخـتصاصی هم بهتـون می‌دیم

فانکشن ارسال درخواست توسط Curl

    function curl_post($action, $params)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $action);
        curl_setopt($ch, CURLOPT_POSTFIELDS, 
            json_encode($params));
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
        ]);
        $res = curl_exec($ch);
        curl_close($ch);

        return $res;
    }

ارسال دیتا

در مرحله اول شما می بایست پارامترهای موجود در جدول زیر رو با متد POST به آدرسی که مشخص شده ارسال کنید. به نوع داده ها و نام فیلد توجه کنید.

در صورتی که برای فیلد شماره موبایل، شماره موبایل کاربر را به درگاه ارسال نمایید، بصورت اتوماتیک درگاه موبایلی نمایش داده می شود

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

https://vandar.io/api/ipg/send POST

آدرس تست در گاه

https://vandar.io/api/ipg/test/send POST

برای تست درگاه کافی است از آدرس تست و api_key را برابر test قرار دهید.

پارامترها
فیلد نوع توضیحات
api_key String API Key دریافتی از پنل کاربری شما که بعد از تایید درخواست درگاه صادر میشه
ای پی آی کی تست برابر است با : test
amount Integer مبلغ تراکنش به صورت ریالی و بزرگتر یا مساوی 1000
callback_url String باید با آدرس درگاه پرداخت تایید شده در وندار بر روی یک دامنه باشد
mobile_number String شماره موبایل (اختیاری ، جهت نمایش کارت های خریدار به ایشان و نمایش درگاه موبایلی )
factorNumber String شماره فاکتور شما (اختیاری)
description String توضیحات (اختیاری ، حداکثر 255 کاراکتر)
فانکشن ارسال دیتا

    function send($api, $amount, $redirect, 
        $mobile = null, $factorNumber = null
        , $description = null)
    {
        return curl_post(
            'https://vandar.io/api/ipg/send',
            [
                'api_key' => $api,
                'amount'  => $amount,
                'callback_url' => $redirect,
                'mobile_number' => $mobile,
                'factorNumber' => $factorNumber,
                'description' => $description,
            ]
        );
    }


    {
        "status": 1,
        "token": "Payment Token"
    }


    {
        "status": 0,
        "errors": [
            "Error Message",
            "Error Message",
        ]
    }


    "errors": [
        "وارد کردن api key الزامی است",
        "api_key معتبر نیست",
        "IP پذیرنده معتبر نیست",
        "وارد کردن callback_url الزامی است",
        "callback_url معتبر نیست",
        "وارد کردن amount الزامی است",
        "amount نباید کوچکتر از 1000 باشد",
        "amount باید عدد یا رشته‌ای از اعداد باشد",
    ]

انتقال کاربر به صفحه پرداخت

در صورتی که در مرحله ارسال دیتا ، اطلاعات ارسالی صحیح باشه و دو مقدار status و token رو دریافت کرده باشید باید کاربر رو به شیوه زیر به درگاه ریدایرکت کنید.

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

https://vandar.io/ipg/{TOKEN} GET

آدرس تست در گاه

https://vandar.io/ipg/test/{TOKEN} GET
کد انتقال کاربر به صفحه پرداخت

    <?php
    
    $api = 'fb1a319b28697e008d1l2d9adabcab4187474f73';
    $amount = 1000;
    $redirect = 'https://yourdomain.ir/verify.php';
    $mobile = '09123456789';
    $factorNumber = '00120';
    $description = 'Lorem ipsom .....'
    $result = send($api, $amount, $redirect, $mobile,
        $factorNumber, $description);
    $result = json_decode($result);
    
    if ($result->status == 1) {
        $go = "https://vandar.io/ipg/$result->token";
        header("Location: $go");
    } else {
        echo $result->status;
    }

بازگشت به سایت پذیرنده

مرحله سوم زمانی انجام میشه که کاربر از درگاه پرداخت بر میگرده. در این مرحله با توجه به نتیجه تراکنش و وضعیت اون ، ما کاربر رو به آدرس کالبک شما که در مرحله اول با پارامتر redirect ارسال کرده بودید هدایت میکنیم.

تایید تراکنش

    <?php
    
    $api = 'fb1a319b28697e008d1l2d9adabcab4187474f73';
    $token = $_GET['token'];
    $result = json_decode(verify($api,$token));
    if(isset($result->status)){
        if($result->status == 1){
            echo "SUCCESS";
        } else {
            echo "FAILED";
        }
    } else {
        if($_GET['status'] == 0){
            echo "FAILED";
        }
    }

فانکشن تایید تراکنش

مهم : درصورت موفقیت آمیز بودن تراکنش، با فراخوانی متد وریفای، هر بار پیام وریفای تراکنش اعلام می شود. برای پیشگیری از بروز تقلب پذیرنده باید قبل از ارائه محصول و خدمات با استفاده از شماره تراکنش شبکه پرداخت وندار ( همان transId ) از عدم وجود شماره تراکنش در بانک اطلاعاتی خود اطمینان حاصل کند سپس خدمات را به مشتری ارائه نماید.

https://vandar.io/api/ipg/verify POST

آدرس تست در گاه

https://vandar.io/api/ipg/test/verify POST

برای تست درگاه در این بخش کافیست که api_key را برابر با test قرار دهید و توکن دریافتی تستی در مرحله ارسال دیتا را به عنوان توکن ارسال کنید.

تایید تراکنش

    function verify($api, $token)
    {
        return curl_post(
            'https://vandar.io/api/ipg/verify',
            [
                'api_key' => $api,
                'token' => $token,
            ]
        );
    }


    {
        "status": 1,
        "amount": "10000",
        "transId": 155058785697,
        "factorNumber": null,
        "mobile": null,
        "description": "description",
        "cardNumber": "603799******6299",
        "paymentDate": "2019-02-19 18:21:50",
        "message": "ok"
    }


    {
        "status": 0,
        "errors": [
            "Error Message",
            "Error Message",
        ]
    }


    "errors": [
        "وارد کردن api key الزامی است",
        "api_key معتبر نیست",
        "IP پذیرنده معتبر نیست",
        "وارد کردن token الزامی است",
        "token معتبر نیست",
        "نتیجه تراکنش قبلا از طرف وندار اعلام گردیده",
        "تراکنش با خطا مواجه شده است",
    ]