public async Task <IActionResult> PayAction(int lawyerId, int AppointmentId, [FromForm] DeliveryDetailsModel model) { if (ModelState.IsValid) { var details = await GetAppointmentDetails(AppointmentId); if (details != null && details.CanReserved) { var res = await GetToken(details.Amount * 100, AppSettings.PaymentIntegrationIdCash2); var order = await OrderCreation(res.Token, res.Profile.Id, details.Amount * 100, AppSettings.PaymentIntegrationIdCash2, model); var pkey = await GetPaymentKey(res.Token, order.Id, details.Amount * 100, AppSettings.PaymentIntegrationIdCash2); if (!string.IsNullOrEmpty(pkey.Token)) { var bookRes = await BookSession(AppointmentId, order.Id); if (bookRes == null) { return(RedirectToAction("Login", "Account")); } } return(RedirectToAction("BookingSuccessful", new { txn_response_code = 0, success = true, order = order.Id, amount_cents = order.AmountCents })); } //return Ok(new { token = fToken, ptype = 2 }); } return(null); }
public DeliveryModel GetDeliveryByIdForConfirmation(long delivery_master_id) { var deliveryModel = new DeliveryModel(); try { deliveryModel.DeliveryMasterData = _entities.delivery_master.Find(delivery_master_id); var partyInfo = _entities.parties.Find(deliveryModel.DeliveryMasterData.party_id); var deliveryDetailsList = _entities.delivery_details.Where(d => d.delivery_master_id == delivery_master_id) .Join(_entities.products, jp => jp.product_id, p => p.product_id, (jp, p) => new { jp, p }) .GroupJoin(_entities.colors, jc => jc.jp.color_id, c => c.color_id, (jc, c) => new { jc, nc = c.FirstOrDefault() }) //.Join(_entities.units, ju => ju.jc.jp.unit_id, u => u.unit_id, (ju, u) => new { ju, u }) .GroupJoin(_entities.units, ju => ju.jc.jp.unit_id, u => u.unit_id, (ju, u) => new { ju, uu = u.FirstOrDefault() }) .GroupJoin(_entities.product_version, jv => jv.ju.jc.jp.product_version_id, v => v.product_version_id, (jv, v) => new { jv, nv = v.FirstOrDefault() }) .ToList(); var deliveryDetailsModels = new List <DeliveryDetailsModel>(); deliveryModel.region_id = partyInfo.region_id; deliveryModel.area_id = partyInfo.area_id; deliveryModel.territory_id = partyInfo.territory_id; deliveryModel.party_type_id = partyInfo.party_type_id; foreach (var d in deliveryDetailsList) { var deliveryDetailsModel = new DeliveryDetailsModel(); deliveryDetailsModel.delivery_details_id = d.jv.ju.jc.jp.delivery_details_id; deliveryDetailsModel.gift_type = d.jv.ju.jc.jp.gift_type; deliveryDetailsModel.delivery_master_id = d.jv.ju.jc.jp.delivery_master_id; deliveryDetailsModel.product_id = d.jv.ju.jc.jp.product_id; deliveryDetailsModel.product_name = d.jv.ju.jc.p.product_name; deliveryDetailsModel.color_id = d.jv.ju.jc.jp.color_id; //deliveryDetailsModel.color_name = d.jv.ju.nc.color_name; deliveryDetailsModel.color_name = (d.jv.ju.nc == null) ? "" : d.jv.ju.nc.color_name; //deliveryDetailsModel.unit_id = d.jv.ju.jc.jp.unit_id; //deliveryDetailsModel.unit_name = d.jv.u.unit_name; deliveryDetailsModel.product_version_id = d.jv.ju.jc.jp.product_version_id; //deliveryDetailsModel.product_version_name = d.nv.product_version_name; deliveryDetailsModel.product_version_name = (d.nv == null) ? "" : d.nv.product_version_name; deliveryDetailsModel.requisition_quantity = d.jv.ju.jc.jp.requisition_quantity; deliveryDetailsModel.delivered_quantity = d.jv.ju.jc.jp.delivered_quantity; deliveryDetailsModel.unit_price = d.jv.ju.jc.jp.unit_price; deliveryDetailsModel.line_total = d.jv.ju.jc.jp.line_total; deliveryDetailsModels.Add(deliveryDetailsModel); } deliveryModel.DeliveryDetailsList = deliveryDetailsModels; return(deliveryModel); } catch (Exception ex) { return(null); } }
private async Task <OrderResult> OrderCreation(string token, long merchantId, double amount, int integration_Id, DeliveryDetailsModel model) { string apiUrl = $"https://accept.paymobsolutions.com/api/ecommerce/orders"; using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(apiUrl); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); var ordId = Utilities.GetUniqueKeyNums(6); order_id = int.Parse(ordId); //var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var bodyJS = JsonConvert.SerializeObject(new { auth_token = token, delivery_needed = true, merchant_id = merchantId, amount_cents = amount, currency = "EGP", merchant_order_id = ordId, shipping_data = new { apartment = model.Apartment, email = model.Email, floor = model.Floor, first_name = model.FirstName,//user.Name.Substring(0,user.Name.IndexOf(" ")), street = model.Address, building = model.BuildingNumber, phone_number = model.Mobile, postal_code = model.PostalCode, city = "Cairo", //ToDo country = "Egypt", last_name = model.LastName, //user.Name.Substring(user.Name.IndexOf(" ")), state = "Cairo" //ToDo } }); var body = new StringContent(bodyJS, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(apiUrl, body); if (response.IsSuccessStatusCode) { var data = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <OrderResult>(data); //await GetPaymentKey(token, result.Id, amount, integration_Id); return(result);; } } return(null); }