2017-05-02 11 views
0

saber soap apiをlaravelと統合しようとしています。最初のステップはトークンを生成することです。トークンのためにsaber apiを呼び出すためにどのような戦略を提案してください。 GuiPhttp \ Clientをapi呼び出しに使用する予定ですが、セットアップ方法はありません。saber apiはlaravelを使ってトークンを生成します

public function getApi($method,$body='') 
    { 


try { 


$client = new GuzzleClient(); 

      $xml = '<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope> 
    <SOAP-ENV:Header> 
     <eb:MessageHeader eb:version="1"> 
      <eb:From> 
       <eb:PartyId>Client</eb:PartyId> 
      </eb:From> 
      <eb:To> 
       <eb:PartyId>SWS</eb:PartyId> 
      </eb:To> 
      <eb:CPAId>'.base64_encode('8cpd').'</eb:CPAId> 
      <eb:ConversationId>1234</eb:ConversationId> 
      <eb:Service>Session</eb:Service> 
      <eb:Action>TokenCreateRQ</eb:Action> 
      <eb:MessageData> 
       <eb:MessageId>1234</eb:MessageId> 
       <eb:Timestamp>2015-01-01T00:00:00</eb:Timestamp> 
      </eb:MessageData> 
     </eb:MessageHeader> 
     <wsse:Security> 
      <wsse:UsernameToken> 
       <wsse:Username>'.base64_encode($this->username).'</wsse:Username> 
       <wsse:Password>'.base64_encode($this->password).'</wsse:Password> 
       <Organization>'.base64_encode('8cpd').'</Organization> 
      </wsse:UsernameToken> 
     </wsse:Security> 
    </SOAP-ENV:Header> 
    <SOAP-ENV:Body> 
     <sws:TokenCreateRQ Version="1.0.0" /> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope>'; 

      $request = $client->post('https://api.test.sabre.com/v2/auth/token', [ 
       'body' => [ 
       'xml' => $xml 
       ] 
      ]); 



      $xml = simplexml_load_string($request->getBody()); 
      return json_encode($xml); 

     } catch (\GuzzleHttp\Exception\ClientException $e) { 

      dd($e); 
      return $e; 
     } 
+0

を使用すると、この質問は広すぎます。あなたがすでに試したことをお見せしてください。 – Joe

+0

私は試したコードをいくつか追加しました。 –

+1

XMLを送信するRESTサービスコールをしようとしています。あなたはどちらか一方をしなければならない – Wisdoom

答えて

0

これは私がそれをやったし、働いていた方法ですが、VB.net

Dim request As HttpWebRequest 
     Dim response1, response2 As HttpWebResponse 
     Dim reader, reader2 As StreamReader 
     Dim Client_ID As String = "**************" 
     Dim Client_SEC As String = "***********" 
     Dim url As String = "https://developer.sabre.com/io-docs/getoauth2accesstoken?apiId=793&auth_flow=client_cred&client_id=" + Client_ID + "&client_secret=" + Client_SEC 
     request = DirectCast(WebRequest.Create(url), HttpWebRequest) 
     response1 = DirectCast(request.GetResponse(), HttpWebResponse) 
     reader = New StreamReader(response1.GetResponseStream()) 
     Dim ser As JObject = JObject.Parse(reader.ReadToEnd()) 
     Dim data As List(Of JToken) = ser.Children().ToList 

     'Response.Write(ser) 

     Dim myAccessToken As String = ser("result")("access_token").Value(Of String)() 
関連する問題