2016-03-24 8 views
0

現在私は発券ロボットを作成しています。このプロセスの一環として、Galileoの場合と同様に、発券依頼を送信する前にチケットプリンタを現在の接続/セッションに「リンク」する必要があります。PNRの自動チックスキー、DesignatePrinterの使用

しかし、私のDesignatePrinterリクエストの作成方法についてのドキュメントはあまり明確ではありません。アイデアは、私はこのように、リクエストオブジェクトにDesignatePrinterRQPrintersTicketを割り当てるチケットにあるので

var messageHeader = new MessageHeader 
{ 
    ConversationId = "TestSession", 
    CPAId = licenseId, 
    Action = "DesignatePrinterLLSRQ", 
    Service = new Service { Value = "DesignatePrinterLLSRQ" }, 
    MessageData = new MessageData 
    { 
     MessageId = "xxx:xxxxxx", 
     Timestamp = DateTime.UtcNow.ToString("s") + "Z" 
    }, 
    From = new From() 
    { 
     PartyId = new[] 
     { 
      new PartyId {Value = "WebServiceClient"} 
     } 
    }, 
    To = new To() 
    { 
     PartyId = new[] 
     { 
      new PartyId {Value = "WebServiceSupplier"} 
     } 
    } 
}; 

var request = new 
{ 
    Version = "2.25.0", 
    TimeStamp = DateTime.UtcNow, 
    TimeStampSpecified = true, 
    Printers = new DesignatePrinterRQPrinters 
    { 
     Ticket = new DesignatePrinterRQPrintersTicket { LNIATA = printers } 
    } 
}; 

DesignatePrinterRS resp = null; 
Policy.Handle<SoapException>() 
    .Or<WebException>() 
    .WaitAndRetry(new[] 
    { 
       TimeSpan.FromSeconds(1), 
       TimeSpan.FromSeconds(1), 
       TimeSpan.FromSeconds(1), 
       TimeSpan.FromSeconds(1), 
       TimeSpan.FromSeconds(1), 
       TimeSpan.FromSeconds(1), 
       TimeSpan.FromSeconds(1), 
       TimeSpan.FromSeconds(1), 
       TimeSpan.FromSeconds(1) 
    }) 
    .Execute(() => 
    { 
     using (
      DesignatePrinterService serviceObj = new DesignatePrinterService()) 
     { 
      serviceObj.MessageHeaderValue = messageHeader; 
      serviceObj.Security = new Security1 { BinarySecurityToken = token }; 
      resp = serviceObj.DesignatePrinterRQ(request); 
     } 
    }); 

if (resp != null && resp.ApplicationResults.status == CompletionCodes.Complete) 
{ 
    // Ticket printer linked 
    resultValue = 1; 
} 
else 
{ 
    // Ticket printer not linked 
    resultValue = 0; 
} 

はこれです、私はこれを次のようにやっている時点では

十分か、それとももっと必要なのでしょうか?

私は残念ながら、現時点でテストすることができないんだけど...

答えて

0

あなたは、生成された出力XMLを投稿することができますか?

通常、このような何かがDesignatePrinterLLSRQ要求を使用して、チケットプリンタを指定する、働くだろうが:

<soapenv:Body> 
     <ns:DesignatePrinterRQ ReturnHostCommand="true" Version="2.0.1"> 
     <ns:Printers> 
      <ns:Ticket CountryCode="countryTicketPrinterTypeCodeHere" LNIATA="printerLineAddressHere" /> 
     </ns:Printers> 
     </ns:DesignatePrinterRQ> 
    </soapenv:Body> 

あなたは剣によって提供される国番号とLNIATAの値が必要になります。あなたのSOAP APIユーザー名: - > [エージェントのサインインhttps://formatfinder.sabre.com/Content/Printers/TicketPrinter/PrinterTicket.aspx?LanguageOverride=en&ItemID=38722B8FF6C949189864DF2641F867ED

(ログインパラメータ:https://developer.sabre.com/contact DesignatePrinterLLSRQサービスに関連したセイバーコマンドの

情報はで入手できます。 あなたはセイバー、私たちはで形成し、コンタクトを使用して連絡することができます/パスワード:あなたのセイバーAPIパスワード/ PCC:あなたのセイバーAPI '組織')

+0

私のxmlリクエストのコピーと、受け取ったxmlレスポンスの両方をアップロードしました。 リクエスト:[リンク](https://dl.dropboxusercontent.com/u/54991757/StackOverflow/DesignatePrinter%20%28Request%29.xml) 応答:[リンク](https:// dl。 dropboxusercontent.com/u/54991757/StackOverflow/DesignatePrinter%20%28Response%29.xml) ご覧のとおり、私は現在、プリンタアドレスのみを渡しています。おそらくそれが私の問題を引き起こしているのでしょうか? – Fysicus

+0

国コードが存在しないことは、おそらくこの問題に関連している可能性があります。 上記のようにセイバー(あなたのIPCCに提供する)に連絡するか、ソリューションを開発している旅行代理店に連絡してください。 – fcarreno

関連する問題