//public bool PurchaseRefund(PurchaseRefundRequest request_, out PurchaseQueryResponse statusResponse_) //{ // LOG.Debug("ENTER"); // bool retVal = false; // statusResponse_ = null; // try // { // var code = GeoITDOperationCall( // (out long trId_) => // { // var resp = mPOSClient.processFinancialPurchaseRefund(request_); // trId_ = resp.TransactionId; // return resp.ResponseCode; // }, request_, out statusResponse_, out retVal); // } // catch (Exception ex) // { // LOG.Fatal(ex, "{Message}", "Exception caught."); // } // finally // { // LOG.Debug("EXIT"); // } // return retVal; //} public bool QueryTransactionStatus(PurchaseQueryRequest request_, out PurchaseQueryResponse statusResponse_, bool waitForStatus_ = true) { LOG.Debug("ENTER"); bool retVal = false; statusResponse_ = null; try { PurchaseQueryResponse purchaseStatus = new PurchaseQueryResponse(); bool keepReading = true; while (keepReading) { purchaseStatus = mPOSClient.processFinancialPurchaseQuery(request_); keepReading = (purchaseStatus.ResponseCode == 10 || purchaseStatus.ResponseCode == 12) && waitForStatus_; Thread.Sleep(100); } retVal = purchaseStatus.ResponseCode == 0 && (purchaseStatus.PosResponseCode == "00" || purchaseStatus.PosResponseCode == "08" || purchaseStatus.PosResponseCode == "10" || purchaseStatus.PosResponseCode == "11" || purchaseStatus.PosResponseCode == "85" || purchaseStatus.PosResponseCode == "OF" || purchaseStatus.PosResponseCode == "Y1" || purchaseStatus.PosResponseCode == "Y3"); statusResponse_ = purchaseStatus; } catch (Exception ex) { LOG.Fatal(ex, "{Message}", "Exception caught."); } finally { LOG.Debug("EXIT"); } return(retVal); }
//private int GeoITDOperationCall(GeoITDDelegate geoITDFunc_, Request request_, out PurchaseQueryResponse statusResponse_, out bool approved_) //{ // LOG.Debug("ENTER"); // int retVal = -1; // statusResponse_ = null; // approved_ = false; // try // { // request_.SystemId = Settings.Default.GeoITD_SystemID; // request_.PosID = Settings.Default.GeoITD_PosID; // request_.Branch = Settings.Default.GeoITD_Branch; // long transactionID; // if(geoITDFunc_(out transactionID) != 0) // return retVal; // PurchaseQueryResponse purchaseStatus = new PurchaseQueryResponse(); // bool keepReading = true; // while (keepReading) // { // PurchaseQueryRequest pqr = new PurchaseQueryRequest // { // SystemId = request_.SystemId, // PosID = request_.PosID, // Branch = request_.Branch, // ClientAppId = request_.ClientAppId, // UserId = request_.UserId, // TransactionDateTimeyyyyMMddHHmmssSSS = request_.TransactionDateTimeyyyyMMddHHmmssSSS, // TransactionId = transactionID // }; // purchaseStatus = mPOSClient.processFinancialPurchaseQuery(pqr); // keepReading = (purchaseStatus.ResponseCode == 10 || purchaseStatus.ResponseCode == 12); // Thread.Sleep(100); // } // //if ((retVal = purchaseStatus.ResponseCode) == 0) // approved_ = purchaseStatus.ResponseCode == 0 && // (purchaseStatus.PosResponseCode == "00" || // purchaseStatus.PosResponseCode == "08" || // purchaseStatus.PosResponseCode == "10" || // purchaseStatus.PosResponseCode == "11" || // purchaseStatus.PosResponseCode == "85" || // purchaseStatus.PosResponseCode == "OF" || // purchaseStatus.PosResponseCode == "Y1" || // purchaseStatus.PosResponseCode == "Y3"); // statusResponse_ = purchaseStatus; // retVal = purchaseStatus.ResponseCode; // } // catch (Exception ex) // { // LOG.Fatal(ex, "{Message}", "Exception caught."); // } // finally // { // LOG.Debug("EXIT"); // } // return retVal; //} private int GeoITDOperationCall(GeoITDDelegate geoITDFunc_, Request request_, out PurchaseQueryResponse statusResponse_, out bool approved_) { LOG.Debug("ENTER"); int retVal = -1; statusResponse_ = null; approved_ = false; try { long transactionID; if (geoITDFunc_(out transactionID) != 0) { return(retVal); } //retVal = purchaseStatus.ResponseCode; } catch (Exception ex) { LOG.Fatal(ex, "{Message}", "Exception caught."); } finally { LOG.Debug("EXIT"); } return(retVal); }