Exemplo n.º 1
0
        public RedemptionResponseDetails RedemptionRequest(VoucherRedemptionDetails redemptionDetails)
        {
            RedemptionResponseDetails responseDetails = new RedemptionResponseDetails();
            string reference = "";
            string message   = "";
            // Extract Details of Voucher being redeemed
            string  merchantReference = redemptionDetails.MerchantReference;
            string  merchantId        = redemptionDetails.MerchantId;
            string  terminalId        = redemptionDetails.TerminalId;
            decimal transactionAmount = Convert.ToDecimal(redemptionDetails.TransactionAmount);
            decimal voucherAmount     = Convert.ToDecimal(redemptionDetails.VoucherAmount);
            string  voucherCode       = redemptionDetails.VoucherCode;
            RedemptionServiceV1Client redemptionClient = new RedemptionServiceV1Client();

            redemptionClient.ClientCredentials.UserName.UserName = redemptionDetails.UserName;
            redemptionClient.ClientCredentials.UserName.Password = redemptionDetails.Password;
            redemptionClient.Open();
            var result = RedeemResult.Error;

            try
            {
                result = redemptionClient.RedeemWithVoucherAmountTransactionAmount(out reference, out message, voucherCode, voucherAmount, transactionAmount, merchantId, merchantReference, terminalId);
            }
            catch (Exception exception)
            {
                ServiceLogger.Log(string.Format(@"Pocket Voucher Redemption Error:", exception.Message, exception.Message));
            }

            switch (result)
            {
            case RedeemResult.Success:
                responseDetails.RedemptionStatus = "Successful";
                responseDetails.ResponseCode     = reference;
                responseDetails.ResponseMessage  = "SUCCESS - Voucher Accepted";
                break;

            default:
                if (message.Length != 0)
                {
                    responseDetails.RedemptionStatus = "Unsuccessful";
                    //if (!message.Contains("call"))
                    //{
                    //    message += " Please call NZ-0800 786 824 or AU-1800 210 044 for help";
                    //}
                    responseDetails.ResponseMessage = message;
                }
                else
                {
                    responseDetails.RedemptionStatus = "Unknown";
                    responseDetails.ResponseMessage  = "Could Not Communicate with Pocket Voucher.Please Verify Merchant Id and and Password.";
                }
                break;
            }
            return(responseDetails);
        }
Exemplo n.º 2
0
 public RedemptionResponseDetails RedeemVoucher(VoucherRedemptionDetails redemptionDetails)
 {
     try
     {
         PocketVoucherCommunication pvCommunication = new PocketVoucherCommunication();
         RedemptionResponseDetails  responseDetails = new RedemptionResponseDetails();
         responseDetails = pvCommunication.RedemptionRequest(redemptionDetails);
         return(responseDetails);
     }
     catch (Exception exception)
     {
         ServiceLogger.LogException("Exception in RedeemVoucher", exception);
     }
     return(null);
 }