سلام به دوستان لاراولی
من میخوام که با استفاده از کدهای زیر به سایت 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 را جایگزین کنم؟
درود...
اول کد مرچینت از درگاه ای دی پی دریافت کنید...
دوم از افزونه زیر استفاده کنید...
پیوند زیر:
https://github.com/shetabit/payment
سلام در حال اظافه کردن تمامی درگاه های ایرانی به پکیج زیر هستم. تا یک هفته اینده روند کاری تکمیل میشه.
https://github.com/shetabit/payment
مرسی از دوستانی که حمایت میکنن و لینکشو به اشتراک میزارن.
سلام
@oxbir
این کد شما که برای زرین پال هست اصلا برای آیدی پی نیست
پیشنهاد میکنم از پکیج که دوستمون نوشتن برای درگاه پرداخت استفاده کنید
@khanzadimahdi
به نظرم کلیه درگاها : سامان ، ملت ، ملی ، پاسارگاد ، پارسیان و ...
حتی خود واسط ها مثل زرین ، آیدی پی ، پی پینگ
وب سرویس های اینا هم توی پکیج اضافه بشه ، پکیج خیلی خوب و کاربری از آب در میاد
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟