コード例 #1
0
ファイル: PedidosModel.cs プロジェクト: ladespensa/Servicios
        public bool pagar()
        {
            try
            {
                ClientesModel cliente = new ClientesModel();
                cliente.PK = PK_CLIENTE;
                cliente.getClienteByPk();
                if (!String.IsNullOrEmpty(cliente.OPENID))
                {
                    if (Resources.DEVELOP.ToUpper().Equals("TRUE"))
                    {
                        api = new OpenpayAPI(Resources.SK_OPEN_PAY_DEV, Resources.ID_OPEN_PAY_DEV, false);
                    }
                    else
                    {
                        api = new OpenpayAPI(Resources.SK_OPEN_PAY, Resources.ID_OPEN_PAY, true);
                    }

                    ChargeRequest request  = new ChargeRequest();
                    Customer      customer = new Customer();
                    customer.Name        = cliente.NOMBRE;
                    customer.LastName    = cliente.APELLIDOS;
                    customer.PhoneNumber = cliente.TELEFONO;
                    customer.Email       = cliente.CORREO;

                    request.Method          = "card";
                    request.SourceId        = SOURCE_ID;
                    request.Amount          = new Decimal(TOTAL);
                    request.Currency        = "MXN";
                    request.Description     = "Pedido polar " + PK;
                    request.OrderId         = PK;
                    request.DeviceSessionId = DEVICE_SESSION_ID;
                    //request.Customer = customer;>>>>>>>>>>>>
                    request.Cvv2 = CVV2;
                    try
                    {
                        Charge charge = api.ChargeService.Create(cliente.OPENID, request);

                        cargo               = new CargosModel();
                        cargo.ID            = charge.Id;
                        cargo.AUTHORIZATION = charge.Authorization;
                        cargo.AMOUNT        = (double)charge.Amount;
                        cargo.METHOD        = charge.Method;
                        cargo.ESTATUS       = charge.Status;
                        cargo.PK_PEDIDO     = PK;
                        cargo.ERROR_MESSAGE = charge.ErrorMessage;

                        cargo.agregarCargo();

                        if (cargo.ESTATUS.Equals("completed"))
                        {
                            return(true);
                        }
                        else
                        {
                            ERROR = charge.ErrorMessage;
                            delete();
                        }
                    }
                    catch (OpenpayException e) {
                        LogModel.registra("Error al pagar", e.ToString());
                        CargosErroresModel aux1 = new CargosErroresModel();
                        aux1.category    = e.Category;
                        aux1.description = e.Description;
                        aux1.http_code   = e.HResult;
                        aux1.request_id  = e.RequestId;
                        aux1.PK_PEDIDO   = PK;
                        aux1.agregarCargoError();
                        ERROR = ErroresOpenPayModel.error(e.ErrorCode);
                        delete();
                    }
                    catch (Exception ex) {
                        LogModel.registra("Error al pagar", ex.ToString());
                        ERROR = ex.Message;
                        delete();
                    }
                }
            }
            catch (Exception e)
            {
                LogModel.registra("Error al pagar", e.ToString());
                ERROR = e.Message;
            }
            return(false);
        }