description

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

- 5 ماه پیش
توسط Farshidpg آپدیت شد
علی ( 2406 تجربه )
6 ماه پیش

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

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"

بهترین پاسخ انتخاب شده توسط علی
Farshidpg
6 ماه پیش

بنده شبیه این مشکل رو داشتم ، شما قبل از هر چیز از تایپ داده ها و کلید های 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.

حسام موسوی ( 62306 تجربه )
6 ماه پیش

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

علی ( 2406 تجربه )
6 ماه پیش

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

حسام موسوی ( 62306 تجربه )
6 ماه پیش

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

علی ( 2406 تجربه )
6 ماه پیش

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

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

array('trace' => true));

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

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

saber ( 85 تجربه )
6 ماه پیش

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

Farshidpg ( 1062 تجربه )
6 ماه پیش

بنده شبیه این مشکل رو داشتم ، شما قبل از هر چیز از تایپ داده ها و کلید های 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.

برای ارسال پاسخ باید وارد سایت شوید