1

を使用してTransaction Details APIAuthorize.Net WebサイトAuthorize.Net C# SDKから直接次のコードを使用して、過去30日間のすべてのトランザクションのリストを取得しています。

        //open a call to the Gateway
        var gate = new ReportingGateway("myAPILogin", "myTransactionKey");

        //Get all the batches settled
        var batches = gate.GetSettledBatchList();

        Console.WriteLine("All Batches in the last 30 days");

        //Loop each batch returned
        foreach (var item in batches)
        {
            Console.WriteLine("Batch ID: {0}, Settled On : {1}", item.ID,
                              item.SettledOn.ToShortDateString());
        }

        Console.WriteLine("*****************************************************");
        Console.WriteLine();

        //get all Transactions for the last 30 days
        var transactions = gate.GetTransactionList();
        foreach (var item in transactions)
        {
            Console.WriteLine("Transaction {0}: Card: {1} for {2} on {3}",
                              item.TransactionID, item.CardNumber,
                              item.SettleAmount.ToString("C"),
                              item.DateSubmitted.ToShortDateString());
        }

そしてそれは正しく動作します。これを追加してLineItems、それぞれのリストを取得しようとしています。Transaction

        ...
        foreach (var item in transactions)
        {
            Console.WriteLine("Transaction {0}: Card: {1} for {2} on {3}",
                              item.TransactionID, item.CardNumber,
                              item.SettleAmount.ToString("C"),
                              item.DateSubmitted.ToShortDateString());
            foreach (var li in item.LineItems)
            {
                Console.WriteLine("    LineItem ID: {0} Name: {1} Quantity: {2} Unit Price: {3}",
                              li.ID, li.Name, li.Quantity, li.UnitPrice);
            }
        }

ただし、何も表示されませんLineItems。ブレークポイントを設定すると、Webインターフェイスにログインしてトランザクションの詳細レポートでLineItems表示できる場合でも、トランザクションごとに常に0が表示されることがわかりました。LineItems

ここに画像の説明を入力してください

私は何が間違っているのですか?LineItemsを使用して各トランザクションを表示するにはどうすればよいAuthorize.Net C# SDKですか?

答え: (SOユーザーJoshに感謝します)

        ...
        var transactions = gate.GetTransactionList();
        foreach (var item in transactions)
        {
            Console.WriteLine("Transaction {0}: Card: {1} for {2} on {3}",
                              item.TransactionID, item.CardNumber,
                              item.SettleAmount.ToString("C"),
                              item.DateSubmitted.ToShortDateString());

            var details = gate.GetTransactionDetails(item.TransactionID);

            foreach (var li in details.LineItems)
            {
                Console.WriteLine("    LineItem ID: {0} Name: {1} Quantity: {2} Unit Price: {3}",
                              li.ID, li.Name, li.Quantity, li.UnitPrice);
            }
        }
4

1 に答える 1

3

GetTransactionListは、トランザクションに関する限られた情報を返します。各トランザクションで、GetTransactionDetailsを実行します。

GetTransactionListこの関数は、指定されたバッチIDの限定されたトランザクションの詳細を返します。

GetTransactionDetailsこの関数は、指定されたトランザクションIDの完全なトランザクション詳細を返します。

Authorize.netのXMLAPIライブラリから見つかりましたXMLセクションの下部を見てください

于 2012-06-01T14:54:49.240 に答える