public MidTransTransactionResponseModel TransactionMidTrans(MidTransChargeInputModel data) { //MidTransRequestModel reqModel = new MidTransRequestModel(); //reqModel = data; RestClient rest = new RestClient(AppSettings.MidtransConfig.URL); RestRequest req = new RestRequest("transactions", Method.POST); req.AddHeader("Accept", "application/json"); string auth = AppSettings.MidtransConfig.ServerKey.ToString(); req.AddHeader("Content-Type", "application/json"); req.AddHeader("Authorization", "Basic " + auth.Base64Encode()); string jsonObject = JsonConvert.SerializeObject(data); req.AddParameter("application/json", jsonObject, ParameterType.RequestBody); var res = rest.Execute(req); return(JsonConvert.DeserializeObject <MidTransTransactionResponseModel>(res.Content)); }
public ActionResult <MidTransTransactionResponseModel> Charge([FromBody] MidTransChargeInputModel data) { MidTransBL bl = new MidTransBL(DbContext, AppSettings); var dat = bl.TransactionMidTrans(data); MidTransTransactionResponseModel res = new MidTransTransactionResponseModel(); res = dat; return(res); }
public ActionResult ProceedPayment(string bookID, double hargaAmt, double discAmt, double totalAmt, double payAmt) { if (HttpContext.Session.GetString(SessionKeyID) != null && HttpContext.Session.GetString(SessionKeyID) != "") { MidTransTransactionResponseModel OutPutData = null; MidTransChargeInputModel filter = new MidTransChargeInputModel(); PurchaseOutputModel OutPutPurch = null; PurchaseInputModel inputPurch = new PurchaseInputModel(); inputPurch.SubTotal = hargaAmt; inputPurch.Diskon = discAmt; inputPurch.GrandTotal = totalAmt; inputPurch.UangMuka = payAmt; inputPurch.UserID = Guid.Parse(HttpContext.Session.GetString(SessionKeyID)); inputPurch.BookID = new string[1]; inputPurch.BookID[0] = bookID; using (var clientPurch = new HttpClient()) { clientPurch.BaseAddress = new Uri(BaseAPI + "MediaBuyer/"); var responseTaskPurch = clientPurch.PostAsJsonAsync <PurchaseInputModel>("ProcessToPurchase", inputPurch); responseTaskPurch.Wait(); var resultPurch = responseTaskPurch.Result; if (resultPurch.IsSuccessStatusCode) { var contentPurch = resultPurch.Content.ReadAsStringAsync(); PurchaseResponseModel resutlPurch = Newtonsoft.Json.JsonConvert.DeserializeObject <PurchaseResponseModel>(contentPurch.Result); OutPutPurch = resutlPurch.data; if (OutPutPurch != null) { filter.customer_details = new CustomerDetails(); filter.customer_details.billing_address = new BillingAddress(); filter.customer_details.shipping_address = new ShippingAddress(); filter.transaction_details = new TransactionDetails(); filter.transaction_details.currency = "IDR"; filter.transaction_details.order_id = OutPutPurch.InvoiceNo; filter.transaction_details.gross_amount = payAmt; filter.user_id = HttpContext.Session.GetString(SessionKeyID); using (var client = new HttpClient()) { client.BaseAddress = new Uri(BaseAPI.Replace("api/", "")); var responseTask = client.PostAsJsonAsync <MidTransChargeInputModel>("charge", filter); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var content = result.Content.ReadAsStringAsync(); MidTransTransactionResponseModel resutl = Newtonsoft.Json.JsonConvert.DeserializeObject <MidTransTransactionResponseModel>(content.Result); OutPutData = resutl; } else //web api sent error response { //log response status here.. ModelState.AddModelError(string.Empty, "Server error. Please contact administrator."); } } } } else //web api sent error response { //log response status here.. ModelState.AddModelError(string.Empty, "Server error. Please contact administrator."); } } return(Json(OutPutData)); } else { TempData["CustomError"] = "Please login before using the web."; if (HttpContext.Session.GetString(Loginfrom) == "ADM/SPV") { return(RedirectToAction("AdminLogon", "Login")); } else if (HttpContext.Session.GetString(Loginfrom) == "MDO") { return(RedirectToAction("OwnerLogon", "Login")); } else { return(RedirectToAction("BuyerLogon", "Login")); } //return RedirectToAction("Logon", "Login"); } }