コード例 #1
0
        public async Task <TransactionDetailsResult> GetTransactionDetails(int transactionNumber)
        {
            // Validation
            if (transactionNumber <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(transactionNumber), "transactionNumber is required");
            }

            // Build string for md5 including all fields except empty strings
            var hashInput = new StringBuilder();

            hashInput.Append(Account.AccountNumber);
            hashInput.Append(transactionNumber);
            // Add encryption key at the end of string to be hashed
            hashInput.Append(Account.EncryptionKey);
            // Create a hash string from the parameters
            string hash;

            MD5Hash.Hash(hashInput.ToString(), out hash);

            // Invoke Initialize method on external PayEx PxOrder web service
            var payexOrder = GetPxOrderClient();
            var xmlReturn  = await payexOrder.GetTransactionDetails2Async(
                Account.AccountNumber, transactionNumber, hash);

            // Parse the result and retrieve code-node to figure out if the service method was invoked successfully.
            var result = ResultParser.ParseTransactionDetailsResult(xmlReturn);

            return(result);
        }