shetabit/payment

مشکل کال بک درگاه پارسیان

ftf92 opened this issue · 2 comments

ftf92 commented

سلام وقت بخیر
میخوام از درگاه پارسیان استفاده کنم
مشکلی که دارم وقتی پرداخت موفق انجام میدم پرداخت انجام میشه ولی کاربر به صفحه 404 هدایت میشه ! و بانک هم پول اصلاحیه میزنه !
در صورتی که روت وجود داره!
همین مشکل زمانی که کاربر روی دکمه انصراف از خرید میزد وجود داشت که با یه شرط مشکل رفع شد ولی برای پرداخت موفق این مشکل همچنان هست!
با پشتیبانی درگاه هم کانکت میشم میگن مشکل از کدنویسی یا پکیج هست !
این کدهای من برای کال بک

`
public function callback(Request $request)
{
return $request->all();

    $status = $request->post('status',null);
    if(is_null($status) || $status < 0)
    {
        return $request->all();

        alert()->error('پرداخت شما موفق نبود');
        return redirect('/cart');
    }

        $payment = Payment::where('resnumber', $request->OrderId)->firstOrFail();

        // $payment->order->price

        $receipt = ShetabitPayment::amount(1000)->transactionId($request->OrderId)->verify();

        $payment->update([
            'status' => 1
        ]);

        $payment->order()->update([
            'status' => 'paid'
        ]);

        alert()->success('پرداخت شما موفق بود');
        return redirect('/home');
}

`

خروجی جیسون
وقتی روی پرداخت میزنم ، پرداخت موفق انجام میشه ولی موقع کال بک 404 نمایش میده و بعد چند ساعت پول برگشت میخوره

`
// 20230802162748
// https://adressite.ir/payment/callback

{
"Token": "245977667814170",
"OrderId": "1646869822",
"TerminalNo": "98778419",
"RRN": "739245965915",
"status": "0",
"HashCardNumber": "845C4C8A0B03537E99B32B95CE67D1838B7E891AC1A405F08A6A52468CBF2B20",
"Amount": "10,000",
"SwAmount": null,
"STraceNo": "104962",
"DiscoutedProduct": null
}
`

حالا تو مستندات پارسیان گفته که پرداخت موفق استاتوس 2 برگشت میده
ولی برای من 0 نمایش میده

دوست گرامی مشکل رو باید با درگاه حل کنید! این مشکل به پکیج مربوط نمیشه.

سلام وقت بخیر
یه مشکلی که توی درگاه پارسیان هست این قطعه کده که باعث میشه همیشه ارور نمایش بده وقتی این قطعه کد را کامنت میکنم درست میشه:
توی مسیر زیر:
vendor/shetabit/multipay/src/Drivers/Parsian

توی متد verify

$status = Request::input('status');
$token = Request::input('Token');
if ($status != 0 || empty($token)) {
    throw new InvalidPaymentException('تراکنش توسط کاربر کنسل شده است.');
}

توی مستندات جایی ذکر نشده که چجوری token و status را بفرستیم برای همین همیشه توی کال بک ارور کنسلی نمایش میده

Payment::via('parsian')->config('merchantId', $merchantId)->amount($amount)->transactionId($transaction_id)->verify();