سلام وقتتون بخیر ، دوستان لطف بفرمایید کمکم کنید
<form action="{{ route('wallet.store') }}" method="POST">
<input type="number" class="form-control" name="wallet">
<button> پرداخت </button>
</form>
ما این فرم رو میفرستیم به متد store
public function store(Request $request)
{
$wallet = $request->wallet;
return $this->request_zarinpal();
}
public function request_zarinpal()
{
return $this->wallet;
$MerchantID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
$Amount = $this->wallet;
$Description = "تراکنش زرین پال";
$Email = "";
$Mobile = "";
$CallbackURL = route('pay.callback_zarinpal');
$ZarinGate = false;
$SandBox = true;
$zp = new zarinpal();
$result = $zp->request($MerchantID, $Amount, $Description, $Email, $Mobile, $CallbackURL, $SandBox, $ZarinGate);
if (isset($result["Status"]) && $result["Status"] == 100) {
// Success and redirect to pay
$zp->redirect($result["StartPay"]);
} else {
// error
echo "خطا در ایجاد تراکنش";
}
}
حالا مورد اینجاست اگر من بخوام از اون $wallet در فانکشن request_zarinpal استفاده کنم چه شکلی میتونم این کارو بکنم یعنی از $wallet در فانکشن request_zarinpal استفاده کنم ؟ لطفا راهنمایی کنید
شما باید یه جدول تراکنش داشته باشید (transactions)
موقعی که شما میخواید کاربر رو به درگاه بفرستید، زرین پال یه توکن به عنوان توکن uniqe مخصوص اون تراکنش در اختیار شما قرار میده ($MerchantID)
$MerchantID رو به همراه مبلغ و سایر اطلاعات مربوط به تراکنش توی جدول تراکنش ها ذخیره کنید.
بعد از انجام تراکنش و برگشت به سایت، رکورد مورد نظر رو میتونید با همون $MerchantID فراخوانی کنید و مبلغ و سایر اطلاعات رو از اون بگیرید و تراکنش رو وریفای کنید
سلام
نمیدونم درست متوجه سوالت شدم یا خیر
شما میتونی به متدت متغییر پاس بدی !
public function store(Request $request)
{
return $this->request_zarinpal($request->wallet);
}
و توی متدت متغییر رو دریافت کن
public function request_zarinpal($wallet)
{
return $wallet;
$MerchantID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
$Amount = $this->wallet;
$Description = "تراکنش زرین پال";
$Email = "";
$Mobile = "";
$CallbackURL = route('pay.callback_zarinpal');
$ZarinGate = false;
$SandBox = true;
$zp = new zarinpal();
$result = $zp->request($MerchantID, $Amount, $Description, $Email, $Mobile, $CallbackURL, $SandBox, $ZarinGate);
if (isset($result["Status"]) && $result["Status"] == 100) {
// Success and redirect to pay
$zp->redirect($result["StartPay"]);
} else {
// error
echo "خطا در ایجاد تراکنش";
}
}
پیشنهاد میکنم متدت رو اینجوری استفاده نکنی و ببریش توی یک کلاس جداگانه ، کلاس زرین پال توی مستنداتش هست شما کافیه اونو نگاه کنی و توی کنترلرها اون رو use کنی و ازش استفاده کنید
سلام وقتتون بخیر ، ببخشید من مستندات دقیق زرین پال برای لاراول رو پیدانکردم میشه لینک کنید برام
یک پکیج لاراول فکر کنم به اسم شتابیت داره برای زرین پال و ..
فریمورک لاراول یک چارچوب برای php هستش، شما نمونه کد php که در اصل یک کلاس هست رو میبری توی یک پوشه به فرض http و اونجا بهش namespace میدی که کجا قرار داره، و توی کنترلر کافیه use کنی و از کلاس یک شی بسازی و از متدهاش استفاده کنی.
توی مستندات توسعه دهندگان زرین پال ، بخش نمونه کدها
دوستان مشکل اصلی اینجاست که من نمی دونم چطوری مبلغی که دارم از $request میگیرم رو هم در request زرین پال استفاده کنم و هم در verify اون چطوری میتونم کاری بکنم که $request من رو هردوشون بخونه ؟
شما باید یه جدول تراکنش داشته باشید (transactions)
موقعی که شما میخواید کاربر رو به درگاه بفرستید، زرین پال یه توکن به عنوان توکن uniqe مخصوص اون تراکنش در اختیار شما قرار میده ($MerchantID)
$MerchantID رو به همراه مبلغ و سایر اطلاعات مربوط به تراکنش توی جدول تراکنش ها ذخیره کنید.
بعد از انجام تراکنش و برگشت به سایت، رکورد مورد نظر رو میتونید با همون $MerchantID فراخوانی کنید و مبلغ و سایر اطلاعات رو از اون بگیرید و تراکنش رو وریفای کنید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟