امین چاوه پور
1 سال پیش توسط امین چاوه پور مطرح شد
4 پاسخ

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

سلام
دموی اسکرپیت
اگه میخواید تست کنید با اطلاعات زیر وارد شید
ایمیل: buyer@email.com
پسورد: demo
تو api زرین پال یه اشکالی هست وقتی که خدمت رو میخری خرید تایید میشه ولی به سایت برنمیگرده و داخل سفارشات هم هیچ سفارشی ثبت نمیشه
کد:

// Set settings
        $this->settings = $settings;
        // Get payment gateway keys
        $merchantid     = $this->settings?->settings['merchantid'];
        $env           = $this->settings?->settings['env'];

        //            $Authority = $_GET['Authority'];
        $data = array(
            "merchant_id" => $merchantid,
            "authority" => $id,
            "amount" => $price_cart_final
        );
        $jsonData = json_encode($data);
        $ch = curl_init('https://api.zarinpal.com/pg/v4/payment/verify.json');
        curl_setopt($ch, CURLOPT_USERAGENT, 'ZarinPal Rest Api v4');
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
            'Content-Length: ' . strlen($jsonData)
        ));

        $result = curl_exec($ch);
        curl_close($ch);
        $result = json_decode($result, true);

        if ($result['data']['code'] == 100) {
            return [
                'RefID' => $result['data']['ref_id'],
                'success'  => true
            ];
        }
    } catch (\Throwable $th) {

        // Error
        return [
            'success' => false,
            'message' => __('messages.t_toast_something_went_wrong')
        ];
    }
}

ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 1 سال پیش مطرح شد
0

کد رو براتون قرار دادم که همون callBack
شما باید در مرحله ی اول وقتی ثبت سفارش صورت میگیره سفارش رو خودتون ثبت کنید
من توی پروفایلتون دیدم نوشتید فرانت کار هستید سعی میکنم خیلی کلی توضیح بدم خدمتتون چون اصلا از کد و پروژه شما اطلاعی ندارم که دقیق بگم چی بنویسید
ببینید شما یه دیتابیس دارید که جدول سفارشاتی داره و قطعا اون هم یک جدول رابط محصولات هر سفارش و روابط دیگر خودش
شما باید خودتون این اطلاعات رو ذخیره کنید و زرین پال فقط و فقط از شما مبلغ میگیره و پرداخت رو انجام میده و بهت داده ی پرداخت شده یا نشده رو میده empty($result['errors'] این بخش که چک کرده خطایی در پرداخت نباشه و $result['data']['code'] == 100 این بخش که چک کرده پرداخت موفق باشه

حالا موضوع اینه که بعد این که پرداخت موفق هست یا نه شما یه مسیری و روتی باید توی پروژت ایجاد کنی که زرین پال این داده ها رو بفرسته بهت
یه جور انگار تو یه api درست میکنی که داده بده بهت زرین پال و اگر پرداخت درست بود تایید کنی توی دیتابیست پرداخت رو

و خب این ادرس همون callback_url هست که بهت کدش رو دادم که توی data باید قرار بگیره
و لینک مستندات خود زرین پال هم خدمتت دادم
کلا همه چیز بر اساس پروژته و کسی که پروژه دستشه و کد ها و دیتابس و روت ها رو ببینه و بلد باشه کار پروژتو میتونه بهت راهنمایی کنه
در حال حاضر تنها چیزی که من میبینم درخواست به زرین پال هست که اون هم کدش خدمتت دادم


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 1 سال پیش مطرح شد
0

داداش گلم
شما باید مستندات زرین پال مطالعه کنید
توی این لینک که سایت خود زرین پال هست شما باید callback url رو همراه دیتا ارسال کنی براش که نکردی

$data = array("merchant_id" => "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "amount" => 1000,
    "callback_url" => "http://www.yoursite.com/verify.php",
    "description" => "خرید تست",
    "metadata" => [ "email" => "info@email.com","mobile"=>"09121234567"],
    );

مورد دوم ثبت سفارش هیج ربطی به زرین پال نداره و وظیفه ی شماست
یعنی شما بعد درخواست خرید اول خودت توی بکندت که لاراول هست میایی سفارشت رو ذخیره میکنی و بعد به درگاه پرداخت هدایت میکنی مشتری رو

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


امین چاوه پور
تخصص : طراح سایت فرانت اند
@chaveamin 1 سال پیش مطرح شد
0

حقیقتش خودم کد رو ننوشتم
میتونید بگید که دقیقا چیکار کنم و چ کدی قرار بدم؟
@salar.mohammad2013


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 1 سال پیش مطرح شد
0

کد رو براتون قرار دادم که همون callBack
شما باید در مرحله ی اول وقتی ثبت سفارش صورت میگیره سفارش رو خودتون ثبت کنید
من توی پروفایلتون دیدم نوشتید فرانت کار هستید سعی میکنم خیلی کلی توضیح بدم خدمتتون چون اصلا از کد و پروژه شما اطلاعی ندارم که دقیق بگم چی بنویسید
ببینید شما یه دیتابیس دارید که جدول سفارشاتی داره و قطعا اون هم یک جدول رابط محصولات هر سفارش و روابط دیگر خودش
شما باید خودتون این اطلاعات رو ذخیره کنید و زرین پال فقط و فقط از شما مبلغ میگیره و پرداخت رو انجام میده و بهت داده ی پرداخت شده یا نشده رو میده empty($result['errors'] این بخش که چک کرده خطایی در پرداخت نباشه و $result['data']['code'] == 100 این بخش که چک کرده پرداخت موفق باشه

حالا موضوع اینه که بعد این که پرداخت موفق هست یا نه شما یه مسیری و روتی باید توی پروژت ایجاد کنی که زرین پال این داده ها رو بفرسته بهت
یه جور انگار تو یه api درست میکنی که داده بده بهت زرین پال و اگر پرداخت درست بود تایید کنی توی دیتابیست پرداخت رو

و خب این ادرس همون callback_url هست که بهت کدش رو دادم که توی data باید قرار بگیره
و لینک مستندات خود زرین پال هم خدمتت دادم
کلا همه چیز بر اساس پروژته و کسی که پروژه دستشه و کد ها و دیتابس و روت ها رو ببینه و بلد باشه کار پروژتو میتونه بهت راهنمایی کنه
در حال حاضر تنها چیزی که من میبینم درخواست به زرین پال هست که اون هم کدش خدمتت دادم


امین چاوه پور
تخصص : طراح سایت فرانت اند
@chaveamin 1 سال پیش مطرح شد
1

خیلی ممنون درست شد


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام