<header>
    <div class="content-wrapper">
        <div class="float-left">
            <p class="site-title">
                <a href="~/">ASP.NET Web API</a>
            </p>
        </div>
    </div>
</header>
<div id="body">
    <section class="featured">
        <div class="content-wrapper">
            <p>
                <h2>Notificação de Status</h2>
            </p>
            <p>
                <h3>Este programa é um exemplo de implementação que recebe o POST, através do token_transaction consulta a transação no TrayCheckout, valida os dados, atualiza Status do Pedido e retorna um HTTP Code.</h3>
            </p>
            <p>
                Para notificação realizada com sucesso:
                <br />1º recebe a notificação (POST) do TrayCheckout;
                <br />2º resgata o campo token_transaction do POST e realiza uma consulta da transação na API GetByToken.
                <br />3º O TrayCheckout retornado um xml response;
                <br />4º No retorno da consulta com sucesso, é realizada uma conferência com dados retornados e os dados do pedido (método loagOrder()) para garantir que é o mesmo pedido da transação e os valores estão corretos com o TrayCheckout (evitar fraude);
                <br />5º No caso dos dados do pedido da loja estarem corretos com o da transação:
                    <br />- É alterado o status do pedido na loja (deve ser implementado);
                    <br />- É realizada notificação o cliente por email (deve ser implementado) 
                    <br />- É retornado o código HTTP "200" (OK) para o TrayCheckout, assim garante que a notificação não será realizada novamente.
            </p>
            <p>
                Para notificação com falha será retornado um xml com o erro nas seguintes situações:
                <br /> -Se os dados obrigatórios forem em branco ou inválidos;
                <br /> -Se existir algum problema na requisição;
                <br /> -Se os dados retornados forem da transação não corresponder com os dados do pedido na loja;
                <br /> Para todas essas situações, será exibido o com destaque em vermelho e será retornado o código http 206 para o TrayCheckout entender que houve falha e tentar notificar novamente mais tarde.            
            </p>
            <p>
                É necessário enviar o campo "token" (Request["token"];) que é recebido pelo método  ActionResult Index() da Controller "NotificationController.cs".
                Lembrando que está com um valor de exemplo de uma transação, que corresponde com os dados do método loadOrder() que representa o carregamento de um pedido da loja ( dados fixos ).
            </p>
        </div>
    </section>
    <section class="content-wrapper main-content clear-fix">
        <div style="background-color:@ViewData["messageColor"];">
            @ViewData["resultMessage"]
        </div>
        <h3>Dados da consulta ao TrayCheckout:</h3>

        <ol class="round">
            <li>
                <h5>Token Transaction consultado:</h5>
                @ViewData["token_transaction"]
            </li>

            <li>
                <h5>Dados do POST para o TrayCheckout:</h5>
                <textarea name="teste" rows="5" cols="100">@ViewData["dataRequest"] </textarea>
            </li>

            <li>
                <h5>Dados Resgatados do XML de Retorno e dados carregados na loja:</h5>

                <table width="800px">
                    <tr>
                        <td>Dados retornados pela consulta ao TrayCheckout com base no Token Transaction:
                        </td>
                        <td>Dados de pedido carregados na loja (com base no método loadOrder):
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <textarea name="teste" rows="10" cols="100">@ViewData["dataResponse"]</textarea>
                        </td>
                        <td>

                            <textarea name="teste" rows="10" cols="100">@ViewData["orderStore"] </textarea>
                        </td>
                    </tr>
                     <tr>
                        <td colspan="2">
                         OBS: Se os dados da transação recebida for diferente do pedido da loja, será apresentado uma mensagem de erro e HTTP CODE: 206.
                        </td>
                    </tr>
                </table>

            </li>
            <li>
                <h5>Xml Response:</h5>
                <textarea name="teste" rows="50" cols="100">@ViewData["xmlResponse"]</textarea>
            </li>
        </ol>
    </section>
</div>
