Пример #1
0
        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() }));
            }
        }
Пример #2
0
        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." }));
        }