簡體   English   中英

如何使用PHP SOAP Web服務?

[英]How to consume PHP SOAP web service?

我正在研究一個網站項目,以使用旅行社的網絡服務。 未來的網站將是一個旅行社,也將包含與源網站相同的酒店,客房等。 因此,我需要連接到他們的API,發送在我的網站中生成的XML文件,然后接收響應。

這就是我所擁有的:

旅行社的api地址:

http://api.xxx.net/API/API.asmx

方法

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>");
}

我不知道如何開始。 我真的可以使用一些幫助。

謝謝!

使用http://api.suaytur.net/API/API.asmx?WSDL中的WSDL,您可以從wsdltophp.com生成相應的包,以確保如何在PHP中構造您的請求,因為每個元素都會一個帶有setters / getters的PHP對象。 它使用本機PHP SoapClient類,因此如果您熟悉PHP,則可以輕松,快速地了解向誰發送這些請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM