سلام دوستان من درگاه پرداخت ساامان رو پیاده کردم . به این مشکل بر میخورم . کسی میفهمه چی میگه این ؟
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"
بنده شبیه این مشکل رو داشتم ، شما قبل از هر چیز از تایپ داده ها و کلید های 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
--- نقل قول : ( روش تست شده )
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.
آخه من اینو توی try catch گذاشتم ولی بازم خطا میده .
شاید پاسخ شما همینجا باشد
بله . استاد بهترین روش کال کردن وب سرویسای سواپ چیه ؟ کد زیر رو ببیینید . درسته ؟
$soapClient = new SoapClient('https://acquirer.samanepay.com/payments/referencepayment.asmx?wsdl',
array('trace' => true));
$verifyResult1 = $soapClient->VerifyTransaction($RefNum, $MID);
یا اینکه باید با استفادهع از xml اینکارو کرد ؟
چک کنید حتما SoapClient روی سرورتون فعال باشه در غیر اینصورت میتونید از کلاس nusoap هم استفاده کنید ولی معمولا روی هاستها SoapClient رو فعال میکنن