public async Task <ActionResult> SendOrder([Microsoft.AspNetCore.Mvc.FromBody] OrderParamModel model) { SendOrderResponseModel <SendOrderDataModel> sendOrderResponseModel = null; try { using (var client = new HttpClient()) { client.BaseAddress = new Uri(Constant.proHost); client.DefaultRequestHeaders.Add("Accept-Language", "vi"); client.DefaultRequestHeaders.Add("jwt", String.Format(@"Bearer {0}", FunctionHelpers.GenerateJwtToken())); HttpResponseMessage response = await client.PostAsJsonAsync(Constant.sendOrderApi, model); if (response.IsSuccessStatusCode) { var responseString = await response.Content.ReadAsStringAsync(); if (responseString != null) { sendOrderResponseModel = JsonConvert.DeserializeObject <SendOrderResponseModel <SendOrderDataModel> >(responseString); return(Json(new { data = sendOrderResponseModel, Message = "Thành công." })); } } } return(Json(new { data = new SendOrderResponseModel <SendOrderDataModel>(), Message = "Có lỗi xẩy ra." })); } catch (Exception ex) { return(Json(new { data = new SendOrderResponseModel <SendOrderDataModel>(), Message = ex.ToString() })); } }
public async Task <ActionResult> SendOrder(OrderParamModel model) { var isMatch = false; var orderDetailModel = await GetOrderDetailFromBaoKim(model.mrc_order_id); if (orderDetailModel.code == 0 && orderDetailModel.data != null) { if (double.Parse(orderDetailModel.data.total_amount, CultureInfo.InvariantCulture) != model.total_amount) { isMatch = false; } else if (!orderDetailModel.data.description.ToLower().Equals(model.description.ToLower())) { isMatch = false; } else if (!orderDetailModel.data.url_success.ToLower().Equals(model.url_success.ToLower())) { isMatch = false; } else if (orderDetailModel.data.merchant_id != model.merchant_id) { isMatch = false; } else if (!orderDetailModel.data.url_detail.ToLower().Equals(model.url_detail.ToLower().ToString())) { isMatch = false; } else if (!orderDetailModel.data.lang.ToLower().Equals(model.lang.ToLower())) { isMatch = false; } else if (Convert.ToInt32(orderDetailModel.data.accept_bank) != model.accept_bank) { isMatch = false; } else if (Convert.ToInt32(orderDetailModel.data.accept_cc) != model.accept_cc) { isMatch = false; } else if (Convert.ToInt32(orderDetailModel.data.accept_qrpay) != model.accept_qrpay) { isMatch = false; } else if (Convert.ToInt32(orderDetailModel.data.accept_e_wallet) != model.accept_e_wallet) { isMatch = false; } else if (int.Parse(orderDetailModel.data.bpm_id) != model.bpm_id) { isMatch = false; } else if (!orderDetailModel.data.webhooks.ToLower().Equals(model.webhooks.ToLower())) { isMatch = false; } else if (!orderDetailModel.data.customer_email.ToLower().Equals(model.customer_email.ToLower())) { isMatch = false; } else if (!orderDetailModel.data.customer_name.ToLower().Equals(model.customer_name.ToLower())) { isMatch = false; } else if (!orderDetailModel.data.customer_address.ToLower().Equals(model.customer_address.ToLower())) { isMatch = false; } else { return(Json(new { Success = true, data = orderDetailModel.data })); } await CancelOrder(model.mrc_order_id); //model.mrc_order_id = baokim_vm.orderParamModel.mrc_order_id; } if (!isMatch) { try { using (var client = new HttpClient()) { client.BaseAddress = new Uri(Constant.proHost); client.DefaultRequestHeaders.Add("Accept-Language", "vi"); client.DefaultRequestHeaders.Add("jwt", String.Format(@"Bearer {0}", FunctionHelpers.GenerateJwtToken())); HttpResponseMessage response = await client.PostAsJsonAsync(Constant.sendOrderApi, model); if (response.IsSuccessStatusCode) { var responseString = await response.Content.ReadAsStringAsync(); var message = string.Empty; if (responseString != null) { try { SendOrderResponseModel <SendOrderDataModel> sendOrderResponseModel = null; sendOrderResponseModel = JsonConvert.DeserializeObject <SendOrderResponseModel <SendOrderDataModel> >(responseString); if (sendOrderResponseModel.message != null) //Lỗi validate dữ liệu/tham số { if (!string.IsNullOrEmpty(FunctionHelpers.GenerateErrorMsg(sendOrderResponseModel.message.total_amount))) { message = FunctionHelpers.GenerateErrorMsg("Tổng số tiền"); } else if (!string.IsNullOrEmpty(FunctionHelpers.GenerateErrorMsg(sendOrderResponseModel.message.customer_phone))) { message = FunctionHelpers.GenerateErrorMsg("Số điện thoại"); } else if (!string.IsNullOrEmpty(FunctionHelpers.GenerateErrorMsg(sendOrderResponseModel.message.customer_email))) { message = FunctionHelpers.GenerateErrorMsg("Email"); } else if (!string.IsNullOrEmpty(FunctionHelpers.GenerateErrorMsg(sendOrderResponseModel.message.mrc_order_id))) { message = FunctionHelpers.GenerateErrorMsg("Mã đơn hàng"); } else { message += FunctionHelpers.GenerateErrorMsg(""); } } if (!string.IsNullOrEmpty(message)) { return(Json(new { Success = false, Message = message })); } } catch { SendOrderResponseModelv2 <SendOrderDataModel> sendOrderResponseModel = null; sendOrderResponseModel = JsonConvert.DeserializeObject <SendOrderResponseModelv2 <SendOrderDataModel> >(responseString); if (sendOrderResponseModel.data != null) { return(Json(new { Success = true, data = sendOrderResponseModel.data })); } return(Json(new { Success = false, Message = "Số tiền / total_amount vượt quá giới hạn 30.000 VNĐ cho mỗi lần xác thực đối với website chưa được xác thực" })); } } } } return(Json(new { Success = false, Message = "Có lỗi xẩy ra vui lòng thử lại." })); } catch { return(Json(new { Success = false, Message = "Có lỗi xẩy ra vui lòng thử lại." })); } } return(Json(new { Success = false, Message = "Có lỗi xẩy ra vui lòng thử lại." })); }