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

چطور میشه به پرداخت آنلاین سایت دیگه ای وصل بشه

سلام به دوستان لاراولی

@hesammousavi

من میخوام که با استفاده از کدهای زیر به سایت https://idpay.ir/milad-b وصل بشم و خرید و مبلغ و شماره موبایل و تام شو وارد کنه و خرید شو انجام بده.

public function payment()
{
    $this->validate(request() , [
        'plan_id' => 'required'
    ]);

    $plan = Plan::findOrFail(request('plan_id'));

    $price = $plan->discount_price;

    $Description = 'توضیحات تراکنش تستی'; // Required
    $Email = auth()->user()->email; // Optional
    $Mobile = auth()->user()->mobile; // Optional
    $CallbackURL = 'http://localhost:8000/plan/payment/checker'; // 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,
            'Mobile' => $Mobile,
            '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,
            'plan_id' => $plan->id
        ]);

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

public function checker()
{
    $Authority = request('Authority');
    $payment = Payment::whereResnumber($Authority)->firstOrFail();
    $plan = Plan::findOrFail($payment->plan_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->AddUserForOrder($payment, $plan)) {
                alert()->success('عملیات مورد نظر با موفقیت انجام شد','با تشکر');
                return redirect(route('plans'));
            }
        } else {
            echo 'Transaction failed. وضعیت:'.$result->Status;
        }
    } else {
        echo 'Transaction canceled by user';
    }

}

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

    Order::create([
        'user_id' => auth()->user()->id,
        'plan_id' => $plan->id
    ]);

    return true;
}

هر چی من فکر کردم نمیدونم کجا لینک https://idpay.ir/milad-b را جایگزین کنم؟


ثبت پرسش جدید
رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش مطرح شد
0

درود...
اول کد مرچینت از درگاه ای دی پی دریافت کنید...
دوم از افزونه زیر استفاده کنید...
پیوند زیر:
https://github.com/shetabit/payment


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

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

https://github.com/shetabit/payment

مرسی از دوستانی که حمایت میکنن و لینکشو به اشتراک میزارن.


محمود خسروی
تخصص : طراح و برنامه نویس
@oxbir 5 سال پیش مطرح شد
0

@endworld

نه من میخوام این لینک را با کدی که گزاشتم جایزین کنم چون دیتابیس دارم.


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
0

سلام
@oxbir

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

@khanzadimahdi
به نظرم کلیه درگاها : سامان ، ملت ، ملی ، پاسارگاد ، پارسیان و ...
حتی خود واسط ها مثل زرین ، آیدی پی ، پی پینگ

وب سرویس های اینا هم توی پکیج اضافه بشه ، پکیج خیلی خوب و کاربری از آب در میاد


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

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