PDA

View Full Version : کار نکردن nusoap در لاراول 5.1



soheilyou
پنج شنبه 13 اسفند 1394, 10:09 صبح
سلام دوستان من یه مشکل با وب سرویس شرکت eset دارم منتها در لاراول فقط !

این کد رو وقتی تو یه فایل php ساده اجرا میکنم به درستی کار میکنه و خروجی ایده آل رو بهم میده :


<?php
require_once "./lib/nusoap.php";
//Parameters
//

$param = array(
'user_id' => 'MY_USERNAME',
'password' => 'MY_PASSWORD',
'lic_username' => '.......',
'lic_password' => '.......',
'debug' =>1);


//Create object that referer a web services


$client = new nusoap_client('https://store.esetme.com/remote/v2/webshop.php?wsdl' ,true);



//Call a function at server and send parameters too
$response = $client->call("GetLicenseVerification", $param);
//Process result
//


if ($client->fault) {
echo "FAULT: <p>Code: (" . $client->faultcode . "</p>";
echo "String: " . $client->faultstring;
} else {

if ($response['error'] == '') {
//Request is Successful
//Handle Response Data
echo $response['licensekey'];
echo '<br />';
echo $response['username'];
echo '<br />';
echo $response['password'];

echo '<br />';
echo $response['expiration_date'];
}
else {
//An error occurred
//Handle Error
echo $response['error'];
}


} ?>


همونطور که میبینید از nusop درش استفاده شده ،حالا میخوام از این وب سرویس در لاراول 5.1 استفاده کنم ، برای اینکار ، در پروژه لاراولم یه پوشه به اسم Libraries در به این شکل ساختم : App\Libraries و فایل nusoap.php که در مسیر lib/nusoap.php هستش رو بر داشتم و داخل Libraries کپی کردم و اسمش رو به nusoap_client.php تغییر دادم . و همینطور این خط هم به اول این فایل اضافه کردم :
namespace App\Libraries;


بعد داخل کنترلرم رو به این شکل نوشتم :



namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Libraries\nusoap_client;
class NusoapController extends Controller
{

public function getIndex()
{
$param = array(
'user_id' => 'MY_USERNAME',
'password' => 'MY_PASSWORD',
'lic_username' => '.......',
'lic_password' => '.......',
'debug' =>1);

//Create object that referer a web services


$client = new nusoap_client('https://store.esetme.com/remote/v2/webshop.php?wsdl' ,true);



//Call a function at server and send parameters too
$response = $client->call("GetLicenseVerification", $param);
//Process result
//


if ($client->fault) {
echo "FAULT: <p>Code: (" . $client->faultcode . "</p>";
echo "String: " . $client->faultstring;
} else {

if ($response['error'] == '') {
//Request is Successful
//Handle Response Data
echo $response['licensekey'];
echo '<br />';
echo $response['username'];
echo '<br />';
echo $response['password'];

echo '<br />';
echo $response['expiration_date'];
}
else {
//An error occurred
//Handle Error
echo $response['error'];
}


}
}
}
ولی متاسفانه خروجیش خالی هست در حالی که همین کد در فایل php خروجی :
test-licensekey
test-username
test-password
09/29/2015

میده ! در ضمن دوستان من براساس یه آموزش یه وب سرویس کاملا ابتدایی هم با nusoap نوشتم که اون هم در php ساده کاملا کار میکرد ولی تا میاوردم تو لاراول با همین روش بالا میگفت :


Error: no transport found, or selected transport is not yet supported!



خیلی برام مهمه که این مشکل رو حل کنم ،چون اگه نکنم یه بخش مهمی از پروژه م رو مجبورم php pure بنویسم که الان عذاب آوره

فایل nusoap_client.php هم ضمیمه کردم
139397

imohammad
دوشنبه 17 اسفند 1394, 16:39 عصر
چرا پکیجشو با کامپوزر نصب نمیکنی؟

soheilyou
یک شنبه 01 فروردین 1395, 14:03 عصر
در نهایت تصمیم گرفتم از soap خودِ php استفاده کنم !

aheahe
یک شنبه 29 فروردین 1395, 13:38 عصر
در نهایت تصمیم گرفتم از soap خودِ php استفاده کنم !
درسته کمی دیر شده ولی راهش رو می گم تا شاید بعضی از دوستان به کارشون بیاد.
برای این کار باید پکیج fergusean/nusoap رو با composer نصب کنیم
composer require fergusean/nusoap
بعد کافیه ابتدای فایلی که می خواهید ازش استفاده کنید معرفیش کنید: use \nusoap_client
به همین راحتی به همین خوشمزگی