Closed 0xlimon closed 1 year ago
و
این خطا هم در درگاه ملت (لوکال)
SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl' : failed to load external entity "https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl"
در این مسیر
\parsisolution\gateway\src\Providers\Zarinpal
و
Zarinpal.php
در تابع
validateSettlementRequest
وضعیت پرداخت دریافت میشه و اگر پرداخت موفق بوده باشه
true
رو برمیگردونه
حالا اگه پرداخت ناموفق باشه از طریق
throw new InvalidRequestException();
پیغام
Request parameters are not valid
رو برمیگردونه
در صورتی که باید زمان پرداخت ناموفق با استفاده از
Status code
پیغام مربوطه رو نشون بده دقیقا مشابه درگاه پی.ای ار که به همین صورت نوشته شده
البته من از جزئیات این پکیج اطلاعات زیادی ندارم و تغریبا یک روزی بیشتر نیست که ازش استفاده میکنم...اگر این توضیحات بنده اشتباه است ممنون میشم در رابطه با این پیغام توضیحات بیشتری برای حل مشکل بدید
سلام
ببخشید بابت تاخیر در پاسخ گویی
تا جایی که یادم هست زرین پال در صورت ناموفق بودن تراکنش توضیحاتی ارائه نمیکرد (در صورتی که شبکه ی پرداخت پی توضیحات داره) و استفاده از کدهای خطا برای زرین پال در جای خودش در کد وجود داره اگر به این رسیدید که در جایی از کد میتونیم اطلاعات بیشتری نسبت به چیزی که در حالت فعلی وجود داره (از پاسخ هایی که از سمت
psp
ها یا واسط ها بر میگرده) به دست بیاریم، حالا چه برای زرین پال باشه چه برای بقیه خوشحال میشم که بفرمایید تا اضافه کنیم
حالا این که چرا برای زرین پال داریم
InvalidRequestException
برمیگردونیم هم به همون دلیلی هست که بالا اشاره کردم به این خاطر که زرین پال در صورت ناموفق بودن تراکنش اطلاعات زیادی به ما برنمیگردونه بنابرین ما حتی نمیتونیم کاملا اطمینان حاصل کنیم که این پاسخ (یا درخواست) از سمت زرین پال هست یا نه
سلام وقت بخیر منم دائما Request parameters are not valid را دریافت می کنم و واقعا نمی دونم این خطا را چطوری باید مدیریت کرد
@hamed-ehtesham @awminux
سلام آقای احتشام نمی خواهید بررسی کنید؟
@alighasemzadeh سلام من فعلا دو درگاه پی و زرین پال رو تست کردم و همینطور که اقای احتشام گفتند متاسفانه زرین پال در پرداخت ناموفق اطلاعات زیادی در اختیارمون نمیزاره (اگه برای سرویس دهنده دیگه ای هم این خطا وجود داره فکر میکنم مشکلشون همین باشه) پیغام Request parameters are not valid تنها در پرداخت ناموفق نمایش داده میشه و برای موارد دیگه طبق کدهای خطا پیغام مناسب رو نمایش میده به همین خاطر بنظرم بهتره بجای throw new InvalidRequestException(); یه پیغام ثابت در رابطه با پرداخت ناموفق قرار بدیم (چون برای تکمیل پروژه کمی عجله داشتم فعلا این کار رو انجام دادم تا به راه حل مناسب تری برسیم)
با این فرمت exception را مدیریت کنید
try {
$settledTransaction = Gateway::settle(true);
return redirect()->route('profile.wallet.index')->withSuccess(trans('business::wallet.payment.success'));
}
} catch (\Parsisolution\Gateway\Exceptions\RetryException $e) {
// user the page or retry
return redirect()->route('profile.wallet.index')->withSuccess($e->getMessage());
}catch (\Exception $e) {
return redirect()->route('profile.wallet.index')->withErrors($e->getMessage());
}
من با درگاه آسان پرداخت این مشکل رو دارم Request parameters are not valid. سه روزه دارم باهاش کار میکنم اما درست نمیشه مجبورم حذف کنم این پکیچ رو
سلام @miladkardgar خوشحال میشم برای debug به شما کمک کنم
سلام @miladkardgar خوشحال میشم برای debug به شما کمک کنم
جناب اقای احتشام در بازگشت از درگاه اسان پرداخت هیچ اطاعاتی POSTنمیشه من این مورد رو با خود آپ در میون گذاشتم اونا هم گفتن ما مشکلی ندارم مشکل از پکیچ شماست! اطلاعات ارسالی برای پرداخت مشکلی نداره اما در هنگام برگشت برای وریفای تراکنش با این خطا مواجه میشم!
نظر شما چیه ؟ مشکل از کجا میتونه باشه؟
حالت
stateless
این
package
رو امتحان کردید؟
نمونه کد:
// send
$gateway = Gateway::of('asanpardakht')->stateless();
// callback
$settledTransaction = Gateway::settle(true);
میتونید توی تلگرام با من در ارتباط باشید @H4M3D3
میتونید توی تلگرام با من در ارتباط باشید @H4M3D3
send:
$gateway = Gateway::of('asanpardakht');
$gateway->callbackUrl(config('gateways.asanpardakht.callback-url'));callback
$gateway->stateless();
callback
$settledTransaction = Gateway::settle(true);
$trackingCode = $settledTransaction->getTrackingCode();
$refId = $settledTransaction->getReferenceId();
$cardNumber = $settledTransaction->getCardNumber();
ارسال انجام میشه اما تو برگشت چیزی پست نمیشه !
لطفا در callback این کد رو قرار بدید
$all = $request->all();
return compact('all');
و خروجی رو اینجا بفرستید
شما باید غیر از
_token
و
transaction_id
یه متغییر دیگه به اسم
ReturningParams
هم دریافت کنید مگر این که آپ
api
ش رو تغییر داده باشه که بعید میدونم
سلام طبق کدهایی که قرار دادید درگاه زرین پال رو تست کردم اما بعد از پرداخت ناموق این خطا رو نمایش میده!