Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP SOAP web服务?_Php_Web Services_Soap - Fatal编程技术网

如何使用PHP SOAP web服务?

如何使用PHP SOAP web服务?,php,web-services,soap,Php,Web Services,Soap,我正在做一个网站项目,使用一家旅行社的网络服务。 未来的网站也将是一家旅行社,其中包含与源网站相同的酒店、房间等。 因此,我需要连接到他们的API,发送在我的网站上更新的XML文件,然后接收响应 这就是我所拥有的: 旅行社api地址: 方法 public void GetHotels() { API.PASSENGER[] pass = new API.PASSENGER[3]; pass[0] = new API.PASSENGER(); pass[0].PASSTY

我正在做一个网站项目,使用一家旅行社的网络服务。 未来的网站也将是一家旅行社,其中包含与源网站相同的酒店、房间等。 因此,我需要连接到他们的API,发送在我的网站上更新的XML文件,然后接收响应

这就是我所拥有的:

旅行社api地址:

方法

public void GetHotels()
{
    API.PASSENGER[] pass = new API.PASSENGER[3];
    pass[0] = new API.PASSENGER();
    pass[0].PASSTYPE = "ADT";
    pass[0].FIRSTNAME = "TEST";
    pass[0].LASTNAME = "test last name";
    pass[1] = new API.PASSENGER();
    pass[1].PASSTYPE = "ADT";
    pass[1].FIRSTNAME = "test 2";
    pass[1].LASTNAME = "test last name";
    pass[2] = new API.PASSENGER();
    pass[2].PASSTYPE = "CHD";
    pass[2].DOB = "16.06.2001";
    pass[2].FIRSTNAME = "TEST child";
    pass[2].LASTNAME = "test last name";
    API.SEARCH_REQUEST rq = new API.SEARCH_REQUEST();
    rq.AGENTINFO = new API.AGENT_INFO();
    rq.AGENTINFO.AGENT_ID = "agent login";
    rq.AGENTINFO.AGENT_PWD = " agent pass";
    rq.TOWNCODE = "";
    rq.CHECKINDATE = "02.09.2014";
    rq.CHECKOUTDATE = "08.09.2014";
    rq.HOTELCODE = "";
    rq.LANGUAGECODE = "TRK";
    rq.PASSENGERLIST = pass;
    Response.Write(rq.CHECKINDATE);
    Response.Write(rq.CHECKOUTDATE);
    API.API api = new API.API();

    API.SEARCH_RESPONSE[] test = api.GetHotels(rq);
    for (int i = 0; i < test.Length; i++)
    {
        Response.Write(test[i].ERRORINFO.ToString() + "<br>");
        Response.Write(test[i].HOTELNAME + "<br>");
        Response.Write(test[i].HOTELPICTURE + "<br>");
        Response.Write(test[i].HOTELSHORTINFO + "<br>");
        Response.Write(test[i].PLACECODE + "<br>");
        Response.Write(test[i].PLACENAME + "<br>");
        Response.Write(test[i].PRODUCTKEY + "<br>");
        Response.Write(test[i].ROOMNAME + "<br>");
        Response.Write(test[i].ROOMPRICE + "<br>");
        Response.Write(test[i].CHECKINDATE + "<br>");
        Response.Write(test[i].CHECKOUTDATE + "<br>");
        Response.Write(test[i].ROOMNAME + "<br>");
        Response.Write("<hr/>");


    }
}

public void MakeBooking()
{
    API.API api = new API.API();
    API.PASSENGER[] pass = new API.PASSENGER[3];
    pass[0] = new API.PASSENGER();
    pass[0].PASSTYPE = "ADT";
    pass[0].FIRSTNAME = "TEST";
    pass[0].LASTNAME = "test last name";
    pass[0].DOB = "dfss";
    pass[1] = new API.PASSENGER();
    pass[1].PASSTYPE = "ADT";
    pass[1].FIRSTNAME = "test 2";
    pass[1].LASTNAME = "test last name";
    pass[1].DOB = "16.03.1983";
    pass[2] = new API.PASSENGER();
    pass[2].PASSTYPE = "CHD";
    pass[2].DOB = "16.06.2001";
    pass[2].FIRSTNAME = "TEST child";
    pass[2].LASTNAME = "test last name";
    API.ROOM_DETAIL[] room = new API.ROOM_DETAIL[1];
    room[0] = new API.ROOM_DETAIL();
    room[0].CHECKINDATE = "02.09.2014";
    room[0].CHECKOUTDATE = "08.09.2014";
    room[0].HOTELCODE = "AP";
    room[0].PRODUCTKEY = "27-926-27677";

    API.BOOKING_REQUEST book = new API.BOOKING_REQUEST();
    book.AGENTINFO = new API.AGENT_INFO();
    book.CUSTOMERINFO= new API.CUSTOMER();
    book.AGENTINFO.AGENT_ID = " agent login ";
    book.AGENTINFO.AGENT_PWD = " agent pass";
    book.CUSTOMERINFO.ADDRESS = "istanbul plaza";
    book.CUSTOMERINFO.CITY = "istanbul";
    book.CUSTOMERINFO.COUNTRY = "Turkey";
    book.CUSTOMERINFO.EMAIL = "mert@xxx.com";
    book.CUSTOMERINFO.FAX = "11111";
    book.CUSTOMERINFO.FIRSTNAME = "API";
    book.CUSTOMERINFO.LASTNAME = "API";
    book.CUSTOMERINFO.PHONE = "222";
    book.CUSTOMERINFO.PHONEMOBILE = "532";
    book.CUSTOMERINFO.TITLE = "MR";
    book.CUSTOMERINFO.ZIP = "34768";
    book.LANGUAGECODE = "TRK";
    book.PASSENGERLIST = pass;
    book.ROOMDETAIL_LIST = room;

    API.BOOKING_RESPONSE bookResponse = api.MakeBooking(book);
    Response.Write(bookResponse.ERRORINFO + "<br>");
    Response.Write(bookResponse.BOOKINGSTATUS + "<br>");
    Response.Write(bookResponse.PNR + "<br>");
    Response.Write(bookResponse.TOTALCOMISSION + "<br>");
    Response.Write(bookResponse.TOTALAMOUNT + "<br>");
}
GetHotels:根据您的seacrh标准列出可用房间的方法

MakeBooking:为您的预订请求创建预订的方法

GetBookingDetail:该方法提供您的预订详细信息

ASP.Net示例代码的

public void GetHotels()
{
    API.PASSENGER[] pass = new API.PASSENGER[3];
    pass[0] = new API.PASSENGER();
    pass[0].PASSTYPE = "ADT";
    pass[0].FIRSTNAME = "TEST";
    pass[0].LASTNAME = "test last name";
    pass[1] = new API.PASSENGER();
    pass[1].PASSTYPE = "ADT";
    pass[1].FIRSTNAME = "test 2";
    pass[1].LASTNAME = "test last name";
    pass[2] = new API.PASSENGER();
    pass[2].PASSTYPE = "CHD";
    pass[2].DOB = "16.06.2001";
    pass[2].FIRSTNAME = "TEST child";
    pass[2].LASTNAME = "test last name";
    API.SEARCH_REQUEST rq = new API.SEARCH_REQUEST();
    rq.AGENTINFO = new API.AGENT_INFO();
    rq.AGENTINFO.AGENT_ID = "agent login";
    rq.AGENTINFO.AGENT_PWD = " agent pass";
    rq.TOWNCODE = "";
    rq.CHECKINDATE = "02.09.2014";
    rq.CHECKOUTDATE = "08.09.2014";
    rq.HOTELCODE = "";
    rq.LANGUAGECODE = "TRK";
    rq.PASSENGERLIST = pass;
    Response.Write(rq.CHECKINDATE);
    Response.Write(rq.CHECKOUTDATE);
    API.API api = new API.API();

    API.SEARCH_RESPONSE[] test = api.GetHotels(rq);
    for (int i = 0; i < test.Length; i++)
    {
        Response.Write(test[i].ERRORINFO.ToString() + "<br>");
        Response.Write(test[i].HOTELNAME + "<br>");
        Response.Write(test[i].HOTELPICTURE + "<br>");
        Response.Write(test[i].HOTELSHORTINFO + "<br>");
        Response.Write(test[i].PLACECODE + "<br>");
        Response.Write(test[i].PLACENAME + "<br>");
        Response.Write(test[i].PRODUCTKEY + "<br>");
        Response.Write(test[i].ROOMNAME + "<br>");
        Response.Write(test[i].ROOMPRICE + "<br>");
        Response.Write(test[i].CHECKINDATE + "<br>");
        Response.Write(test[i].CHECKOUTDATE + "<br>");
        Response.Write(test[i].ROOMNAME + "<br>");
        Response.Write("<hr/>");


    }
}

public void MakeBooking()
{
    API.API api = new API.API();
    API.PASSENGER[] pass = new API.PASSENGER[3];
    pass[0] = new API.PASSENGER();
    pass[0].PASSTYPE = "ADT";
    pass[0].FIRSTNAME = "TEST";
    pass[0].LASTNAME = "test last name";
    pass[0].DOB = "dfss";
    pass[1] = new API.PASSENGER();
    pass[1].PASSTYPE = "ADT";
    pass[1].FIRSTNAME = "test 2";
    pass[1].LASTNAME = "test last name";
    pass[1].DOB = "16.03.1983";
    pass[2] = new API.PASSENGER();
    pass[2].PASSTYPE = "CHD";
    pass[2].DOB = "16.06.2001";
    pass[2].FIRSTNAME = "TEST child";
    pass[2].LASTNAME = "test last name";
    API.ROOM_DETAIL[] room = new API.ROOM_DETAIL[1];
    room[0] = new API.ROOM_DETAIL();
    room[0].CHECKINDATE = "02.09.2014";
    room[0].CHECKOUTDATE = "08.09.2014";
    room[0].HOTELCODE = "AP";
    room[0].PRODUCTKEY = "27-926-27677";

    API.BOOKING_REQUEST book = new API.BOOKING_REQUEST();
    book.AGENTINFO = new API.AGENT_INFO();
    book.CUSTOMERINFO= new API.CUSTOMER();
    book.AGENTINFO.AGENT_ID = " agent login ";
    book.AGENTINFO.AGENT_PWD = " agent pass";
    book.CUSTOMERINFO.ADDRESS = "istanbul plaza";
    book.CUSTOMERINFO.CITY = "istanbul";
    book.CUSTOMERINFO.COUNTRY = "Turkey";
    book.CUSTOMERINFO.EMAIL = "mert@xxx.com";
    book.CUSTOMERINFO.FAX = "11111";
    book.CUSTOMERINFO.FIRSTNAME = "API";
    book.CUSTOMERINFO.LASTNAME = "API";
    book.CUSTOMERINFO.PHONE = "222";
    book.CUSTOMERINFO.PHONEMOBILE = "532";
    book.CUSTOMERINFO.TITLE = "MR";
    book.CUSTOMERINFO.ZIP = "34768";
    book.LANGUAGECODE = "TRK";
    book.PASSENGERLIST = pass;
    book.ROOMDETAIL_LIST = room;

    API.BOOKING_RESPONSE bookResponse = api.MakeBooking(book);
    Response.Write(bookResponse.ERRORINFO + "<br>");
    Response.Write(bookResponse.BOOKINGSTATUS + "<br>");
    Response.Write(bookResponse.PNR + "<br>");
    Response.Write(bookResponse.TOTALCOMISSION + "<br>");
    Response.Write(bookResponse.TOTALAMOUNT + "<br>");
}
public void GetHotels()
{
API.乘客[]通行证=新的API.乘客[3];
pass[0]=新API.passer();
通过[0]。通过类型=“ADT”;
通过[0]。FIRSTNAME=“测试”;
通过[0]。LASTNAME=“测试姓氏”;
通过[1]=新的API.passer();
通过[1]。通过类型=“ADT”;
通过[1]。FIRSTNAME=“测试2”;
通过[1]。LASTNAME=“测试姓氏”;
pass[2]=新API.passer();
pass[2]。PASSTYPE=“CHD”;
通过[2]。DOB=“16.06.2001”;
通过[2]。FIRSTNAME=“测试子级”;
通过[2]。LASTNAME=“测试姓氏”;
API.SEARCH_REQUEST rq=新的API.SEARCH_REQUEST();
rq.AGENTINFO=新的API.AGENT_INFO();
rq.AGENTINFO.AGENT\u ID=“代理登录”;
rq.AGENTINFO.AGENT_PWD=“代理通行证”;
rq.TOWNCODE=“”;
rq.CHECKINDATE=“2014年9月2日”;
rq.CHECKOUTDATE=“08.09.2014”;
rq.HOTELCODE=“”;
rq.LANGUAGECODE=“TRK”;
rq.PASSENGERLIST=通过;
响应。写入(rq.CHECKINDATE);
响应.写入(rq.签出日期);
API.API=新的API.API();
API.SEARCH\u RESPONSE[]test=API.GetHotels(rq);
for(int i=0;i”;
Response.Write(测试[i].HOTELNAME+“
”); 响应。写入(测试[i]。HOTELPICTURE+“
”; Response.Write(测试[i].HOTELSHORTINFO+“
”; Response.Write(test[i].PLACECODE+“
”); Response.Write(测试[i]。地名+“
”; Response.Write(测试[i].PRODUCTKEY+“
”); Response.Write(测试[i].ROOMNAME+“
”); Response.Write(测试[i].ROOMPRICE+“
”); Response.Write(测试[i].CHECKINDATE+“
”); 响应。写入(测试[i]。签出日期+“
”; Response.Write(测试[i].ROOMNAME+“
”); 回答。写(“
”); } } 公开订票() { API.API=新的API.API(); API.乘客[]通行证=新的API.乘客[3]; pass[0]=新API.passer(); 通过[0]。通过类型=“ADT”; 通过[0]。FIRSTNAME=“测试”; 通过[0]。LASTNAME=“测试姓氏”; 通过[0]。DOB=“dfss”; 通过[1]=新的API.passer(); 通过[1]。通过类型=“ADT”; 通过[1]。FIRSTNAME=“测试2”; 通过[1]。LASTNAME=“测试姓氏”; 通过[1]。DOB=“16.03.1983”; pass[2]=新API.passer(); pass[2]。PASSTYPE=“CHD”; 通过[2]。DOB=“16.06.2001”; 通过[2]。FIRSTNAME=“测试子级”; 通过[2]。LASTNAME=“测试姓氏”; API.ROOM_详图[]ROOM=新API.ROOM_详图[1]; 房间[0]=新API.room_DETAIL(); 房间[0]。CHECKINDATE=“02.09.2014”; 房间[0]。签出日期=“08.09.2014”; 房间[0]。HOTELCODE=“AP”; 房间[0]。PRODUCTKEY=“27-926-27677”; API.BOOKING_REQUEST book=新API.BOOKING_REQUEST(); book.AGENTINFO=新API.AGENT_INFO(); book.CUSTOMERINFO=新的API.CUSTOMER(); book.AGENTINFO.AGENT\u ID=“代理登录”; book.AGENTINFO.AGENT_PWD=“代理通行证”; book.CUSTOMERINFO.ADDRESS=“伊斯坦布尔广场”; book.CUSTOMERINFO.CITY=“伊斯坦布尔”; book.CUSTOMERINFO.COUNTRY=“土耳其”; book.CUSTOMERINFO.EMAIL=”mert@xxx.com"; book.CUSTOMERINFO.FAX=“11111”; book.CUSTOMERINFO.FIRSTNAME=“API”; book.CUSTOMERINFO.LASTNAME=“API”; book.CUSTOMERINFO.PHONE=“222”; book.CUSTOMERINFO.PHONEMOBILE=“532”; book.CUSTOMERINFO.TITLE=“MR”; book.CUSTOMERINFO.ZIP=“34768”; book.LANGUAGECODE=“TRK”; book.PASSENGERLIST=pass; book.ROOMDETAIL\u LIST=房间; API.BOOKING\u RESPONSE bookResponse=API.MakeBooking(book); Response.Write(bookResponse.ERRORINFO+“
”); Response.Write(bookResponse.BOOKINGSTATUS+“
”); Response.Write(bookResponse.PNR+“
”); Response.Write(bookResponse.totalcommission+“
”); 响应。写入(bookResponse.TOTALAMOUNT+“
”; }
我不知道怎么开始。我真的需要一些帮助


谢谢

使用WSDL-from,您可以从中生成相应的包,以确保如何在PHP中构造请求,因为每个元素都是一个带有setter/getter的PHP对象。它使用本机PHP SoapClient类,因此您可以轻松快速地了解向谁发送这些请求。如果您熟悉PHP,请使用WSDL from生成相应的包,以确保如何在PHP中构造请求,因为每个元素都是带有setter/getter的PHP对象。它使用本机PHP SoapClient类,因此如果您熟悉PHP,那么您可以轻松快速地了解向谁发送这些请求

SOAP表示HTTP上的XML,遵循标准。因此,您将创建一个符合服务WSDP的XML请求,使用设置的授权头发布该请求,并解析返回的响应XML。您需要一个PHP XML解析器:。更好的是,googleforphpsoap库:SOAP是指HTTP上的XML,遵循标准。因此,您将创建一个符合服务WSDP的XML请求,使用设置的授权头发布该请求,并解析返回的响应XML。您需要一个PHP XML解析器:。更好的是,Google for PHP SOAP库: