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

درگاه پرداحت زرین پال

سلام دوستان چرا درگاه زرین برای من خطای زیر رو میده
توضیح تصویر رو وارد کنید

اینم کدهای مربوط بهش

    public function payment()
    {
        $this->validate(request(), [
            'course_id' => 'required'
        ]);
        $course = Course::findOrFail(request('course_id'));

        if(auth()->user()->checkLearning($course)){
            Alert::error('دقت کنید', 'شما قبلا در این دوره ثبت نام کردید ')->showConfirmButton($btnText = 'بسیار خوب', $btnColor = '#c51162');
        }

        if ($course->price == 0 && $course->type == 'vip') {
            Alert::error('دقت کنید', 'شما قادر به خرید این دوره نیستید')->showConfirmButton($btnText = 'بسیار خوب', $btnColor = '#c51162');
            return back();
        }

        $price = $course->price;

        $Description = 'توضیحات تراکنش تستی'; // Required
        $Email = auth()->user()->email; // Optional
        $CallbackURL = 'http://localhost:8000/course/payment/check'; // Required

        $client = new SoapClient('https://www.zarinpal.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);

        $result = $client->PaymentRequest(
            [
                'MerchantID' => $this->MerchantID,
                'Amount' => $price,
                'Description' => $Description,
                'Email' => $Email,
                'CallbackURL' => $CallbackURL,
            ]
        );
        //Redirect to URL You can do it also by creating a form
        if ($result->Status == 100) {

            auth()->user()->payments()->create([
                'resnumber' => $result->Authority,
                'price' => $price,
                'course_id' => $course->id,
            ]);

            return redirect('https://www.zarinpal.com/pg/StartPay/' . $result->Authority);
        } else {
            echo 'ERR: ' . $result->Status;
        }
    }

    public function check()
    {
        $Authority = request('Authority');

        $payment = Payment::whereResNumber($Authority)->firstOrFail();

        $course = Course::findOrFail($payment->course_id);

        if (request('status') == 'ok') {
            $client = new SoapClient('https://www.zarinpal.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);

            $result = $client->PaymentVerification(
                [
                    'MerchantID' => $this->MerchantID,
                    'Authority' => $Authority,
                    'Amount' => $payment->price,
                ]
            );
            if ($result->Status == 100) {
                if($this->AddUserForLearning($payment , $course)){
                    Alert::success('با تشکر','پرداخت با موفقیت انجام شد شد')->showConfirmButton($btnText = 'بسیار خوب', $btnColor = '#c51162');
                    return redirect($course->path());
                }
            } else {
                echo 'Transaction failed. Status:' . $result->Status;
            }
        } else {
            echo 'Transaction canceled by user';
        }
    }

    protected function AddUserForLearning($payment , $course)
    {
        $payment->update([
            'payment'=>1
        ]);

        Learning::create([
            'user_id'=> auth()->user()->id,
            'course_id'=> $course->id,
        ]);

        return true;
    }

ثبت پرسش جدید
mahdi khanzadi
تخصص : backend developer at Snapp mar...
@khanzadimahdi 4 سال پیش مطرح شد
0

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

https://github.com/shetabit/payment

داکیومنت فارسی هم داره

https://github.com/shetabit/payment/blob/master/README-FA.md


Nima Aram
تخصص : a simple full stack
@aramnima50 4 سال پیش مطرح شد
0

@mehrdadroshanraee69
اون ترمینال مشکیه که دورش زرد و نارنجیه اسمش چیه؟


Taha
تخصص : طراح و توسعه دهنده وب
@itstaha 4 سال پیش مطرح شد
مهرداد
@mehrdadroshanraee69 4 سال پیش مطرح شد
0

@aramnima50
سلام جناب از این لینک میتونید دانلود کنید البته من شخصی سازیش کردم بصورت زیر شده

توضیح تصویر رو وارد کنید


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

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