public void MockPurchaseRequest() { CashCloudPurchaseTransactionRequest purchaseTransactionRequest = new CashCloudPurchaseTransactionRequest(); // Action should be derived. purchaseTransactionRequest.action = "1"; // user and pass should be from DB - should also be set in the PerformPaymentTransaction method, trackID is derived during paymentTransaction process //purchaseTransactionRequest.terminalid = "CMVAUL1"; //purchaseTransactionRequest.password = "******"; //purchaseTransactionRequest.trackid = "soft1256"; purchaseTransactionRequest.card = "4444444444444444"; purchaseTransactionRequest.cvv2 = "115"; purchaseTransactionRequest.expYear = "2012"; purchaseTransactionRequest.expMonth = "12"; purchaseTransactionRequest.member = "Test User"; purchaseTransactionRequest.MemberInGameID = 1; purchaseTransactionRequest.currencyCode = "USD"; purchaseTransactionRequest.address = "Ebene"; purchaseTransactionRequest.city = "MOKA"; purchaseTransactionRequest.stateCode = "MOKA"; purchaseTransactionRequest.zip = "152458"; purchaseTransactionRequest.countryCode = "Mauritius"; purchaseTransactionRequest.Email = "*****@*****.**"; purchaseTransactionRequest.amount = "0.00"; purchaseTransactionRequest.merchantip = "172.152.43.1"; purchaseTransactionRequest.customerip = "43.78.33.1"; purchaseTransactionRequest.transactionDateTime = DateTime.Now; CashCloudPurchaseTransactionResponse ptRes = this.PerformPaymentTransaction(purchaseTransactionRequest); Console.WriteLine("authcode [" + ptRes.authcode + "]"); Console.WriteLine("responsecode [" + ptRes.responsecode + "]"); Console.WriteLine("result [" + ptRes.result + "]"); Console.WriteLine("terminalid [" + ptRes.terminalid + "]"); Console.WriteLine("trackid [" + ptRes.trackid + "]"); Console.WriteLine("tranid [" + ptRes.tranid + "]"); Console.WriteLine("udf1 [" + ptRes.udf1 + "]"); Console.WriteLine("udf2 [" + ptRes.udf2 + "]"); Console.WriteLine("udf3 [" + ptRes.udf3 + "]"); Console.WriteLine("udf4 [" + ptRes.udf4 + "]"); Console.WriteLine("udf5 [" + ptRes.udf5 + "]"); }
private bool VerifyAndPersistPaymentResponse(CashCloudPurchaseTransactionRequest purchaseTransactionRequest, CashCloudPurchaseTransactionResponse purchaseTransactionResponse) { PaymentTransaction paymentTransaction = db.PaymentTransactions.Find(purchaseTransactionRequest.paymentTransactionID); // Do validation on trackID. if (purchaseTransactionResponse.trackid == purchaseTransactionRequest.trackid) { paymentTransaction.Result = purchaseTransactionResponse.result; paymentTransaction.ResponseCode = purchaseTransactionResponse.responsecode; paymentTransaction.AuthCode = purchaseTransactionResponse.authcode; paymentTransaction.TranID = purchaseTransactionResponse.tranid; paymentTransaction.TransactionResponseDateTime = DateTime.Now; if (paymentTransaction.ResponseCode.Trim() == "000" || paymentTransaction.ResponseCode.Trim() == "001") { paymentTransaction.PaymentStatus = "PAID"; } } /* Remo-2014-10-03-Payment Bug "Payment crashes when register as "Silver"status":: Resolution - This cannot happen here, must happen outside of payment processing. handled in GamesController. * if (paymentTransaction.PaymentStatus == "PAID") * { * MemberInGame memberInGame = db.MemberInGames.Find(paymentTransaction.MemberInGameID); * memberInGame.PaymentIndicator = true; * }*/ try { db.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { System.Diagnostics.Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(false); } return(true); }