راکت

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

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;
    }
ثبت پرسش جدید

پاسخ‌ها

4
mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

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

https://github.com/shetabit/payment

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

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

Nima Aram
Nima Aram
@aramnima50

تخصص: a simple full stack

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

شاید پاسخ شما همین‌جا باشد

Taha
Taha
@itstaha

تخصص: طراح و توسعه دهنده وب

مهرداد
مهرداد
@mehrdadroshanraee69

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

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

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

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