راکت
حل شده

درگاه پرداخت سامان

7 پاسخ

سلام دوستان من درگاه پرداخت ساامان رو پیاده کردم . به این مشکل بر میخورم . کسی میفهمه چی میگه این ؟

SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://acquirer.samanepay.com/payments/referencepayment.asmx?wsdl' : failed to load external entity "https://acquirer.samanepay.com/payments/referencepayment.asmx?wsdl"

ثبت پرسش جدید

پاسخ‌ها

7
Farshidpg
Farshidpg
@Farshidrezaiyan
بهترین پاسخ

بنده شبیه این مشکل رو داشتم ، شما قبل از هر چیز از تایپ داده ها و کلید های api مطمئن باشید

مرحله بعدی مربوط میشه به SSL ! که روی لوکال یا بعضی سرور ها مشکل داره توی لوکال حتما چک کنین که OpenSSL فعال باشه و اگر نبود اضافه کنین ( آموزشش هم توی نت سرچ کنی زیاده )

موارد زیر رو چک کنین

'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true

ماژول های زیر فعال باشند :

SOAP
php_openssl
openssl
curl

در فایل php.ini مورد زیر رو از کامنت خارج کنین

;extension=php_openssl.dll

لینک مرتبط :

https://stackoverflow.com/questions/25142227/unable-to-connect-to-wsdl

https://stackoverflow.com/questions/5065281/how-to-enable-ssl-in-wamp-server

https://stackoverflow.com/questions/12690722/fatal-error-uncaught-soapfault-exception-wsdl-soap-error-parsing-wsdl-coul

--- نقل قول : ( روش تست شده )

The easy way for local host SSL / HTTPS communication:

Go download: cacert.pem file
https://codeload.github.com/VersatilityWerks/5719158/zip/master

In php.ini * un-comment and change:
curl.cainfo = "c:/wamp/bin/php/php5.5.12/cacert.pem"

You can find where your php.ini file is on your machine by running php --ini in your CLI
I placed my cacert.pem in the same directory as php.ini for ease.

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

مشکل یا از روش فراخونی یا از بانک سامان هستش چون نمیتونه اطلاعاتی رو از ادرس مورد نظر لود کنه مستندات api سامان رو چک کنید

علی
علی
@alif

تخصص: Laravel

آخه من اینو توی try catch گذاشتم ولی بازم خطا میده .

شاید پاسخ شما همین‌جا باشد

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

اصلا داخل try catch بزارید مگه هر چی تو try catch میره نباس خطا بده ؟
یه مشکلی در لود wsdl سامان داره

علی
علی
@alif

تخصص: Laravel

بله . استاد بهترین روش کال کردن وب سرویسای سواپ چیه ؟ کد زیر رو ببیینید . درسته ؟

              $soapClient = new SoapClient('https://acquirer.samanepay.com/payments/referencepayment.asmx?wsdl',  

array('trace' => true));

    $verifyResult1 = $soapClient->VerifyTransaction($RefNum, $MID);

یا اینکه باید با استفادهع از xml اینکارو کرد ؟

Matin
Matin
@miti

چک کنید حتما SoapClient روی سرورتون فعال باشه در غیر اینصورت میتونید از کلاس nusoap هم استفاده کنید ولی معمولا روی هاستها SoapClient رو فعال میکنن

mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

برای لاراول میتونید از پکیج زیر استفاده کنید (بانک سامان نیز ساپورت میشه)

https://packagist.org/packages/shetabit/payment

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام