سلام دوستان چرا درگاه زرین برای من خطای زیر رو میده
اینم کدهای مربوط بهش
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;
}
سلام از پکیج زیر استفاده کنید تمام درگاه های بانکی رو ساپورت میکنه
https://github.com/shetabit/payment
داکیومنت فارسی هم داره
https://github.com/shetabit/payment/blob/master/README-FA.md
@aramnima50
سلام جناب از این لینک میتونید دانلود کنید البته من شخصی سازیش کردم بصورت زیر شده
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟