Example #1
0
        /// <summary>
        ///     DoWithDraw: Realizar "Retiro de fondos" de la cuenta de DineroMail
        /// </summary>
        /// <param name="APIPassword">Valor de seguridad para utilización de la API de DineroMail</param>
        /// <param name="APIUserName">Usuario para la identificacion en la API de DineroMail</param>
        /// <param name="Crypt">Indica si se envian los datos encriptados</param>
        /// <param name="MerchantTransactionId">Identificador transacción, corresponde al identificador de transacción del Comerciente.</param>
        /// <param name="UniqueMessageId">Identificador único de mensaje, no puede repetirse en futuras conexiones. (Autonumérico)</param>
        /// <param name="Currency">Moneda del importe a retirar</param>
        /// <param name="Amount">Importe a retirar</param>
        /// <param name="Method">Identificador del método a utilizar para el retiro defondos</param>
        /// <param name="AddressDetail">
        ///     => Street: Calle donde recibirá el cheque
        ///     => Number: Altura de la calle donde recibirá el cheque
        ///     => Floor: Piso en caso de vivir en edificio.
        ///     => Appartment: Departamento.
        ///     => Zip: Código postal.
        ///     => City: Identificador de Ciudad
        ///     => State: Identificador de Estado o provincia
        /// </param>
        /// <param name="BankAccountDetail">
        ///     => Bank: Identificador del banco
        ///     => BankNumber: Número de la cuenta bancaria
        ///     => Branch: Solamente necesario en Brasil. Por defecto enviar 0 cero.
        ///     => DocumentNumber: Número de documento del titular
        ///     => DocumentType: Tipo de documento del titular
        ///     => LastName: Apellido del titular de la cuenta bancaria
        ///     => Name: Nombre del titular de la cuenta bancaria
        ///     => Type: Identifica el tipo de cuenta bancaria
        ///  </param>
        /// <param name="Hash">Cadena a encriptar</param>
        /// <returns>
        ///     Estado de la operación
        /// </returns>
        public string DoWithDraw()
        {
            //Consulta del balance en la cuenta del usuario.
            string APIPassword           = "******";
            string APIUserName           = "******";
            bool   Crypt                 = true;
            string MerchantTransactionId = "1";
            string UniqueMessageId       = "1";
            string Currency              = "BRL";
            string Amount                = "20,52";
            string sMethod               = "BANK";
            string Hash = "";

            // Detalla la dirección de entrega
            ws.dineromail.api.AddressDetail oAddress = new ws.dineromail.api.AddressDetail()
            {
                Street     = "CALLE1",
                Number     = "123",
                Floor      = "1",
                State      = "BRASILIA",
                City       = "CIUDAD",
                Appartment = "A",
                Zip        = "123"
            };

            // Detalla la cuenta bancaria
            ws.dineromail.api.BankAccountDetail oBankDetail = new ws.dineromail.api.BankAccountDetail()
            {
                Bank           = "BANCO",
                BankNumber     = "12341234",
                Branch         = "1",
                DocumentNumber = "29000000",
                DocumentType   = "1",
                LastName       = "APELLIDO",
                Name           = "NOMBRE",
                Type           = "CA"
            };

            DMCrypt Crypto = new DMCrypt();

            ws.dineromail.api.DMAPI Client = new ws.dineromail.api.DMAPI();

            // Creamos una instancia del objeto APICredential
            // La Credential es la tarjeta de acceso a la API de DineroMail
            ws.dineromail.api.APICredential Credential = new ws.dineromail.api.APICredential();
            Credential.APIPassword = APIPassword;
            Credential.APIUserName = APIUserName;

            // El >> Hash << es el cálculo MD5 de los valores
            // de los siguientes parámetros en orden especificado.
            string sFullAddressDetail     = oAddress.Street + oAddress.Number + oAddress.Floor + oAddress.Appartment + oAddress.Zip + oAddress.City + oAddress.State;
            string sFullBankAccountDetail = oBankDetail.Bank + oBankDetail.BankNumber + oBankDetail.Type + oBankDetail.Name + oBankDetail.LastName + oBankDetail.DocumentType + oBankDetail.DocumentNumber + oBankDetail.Branch;

            Hash = MerchantTransactionId + UniqueMessageId + sMethod + Currency + Amount + sFullAddressDetail + sFullBankAccountDetail + Credential.APIPassword.ToString();
            Hash = Crypto.GetHashMD5(Hash);

            //si se desea enviar encriptado
            if (Crypt)
            {
                // Los datos de la API viajarán con una encriptación del tipo TripleDES
                Crypto.Key            = Encoding.ASCII.GetBytes(Credential.APIPassword);
                MerchantTransactionId = Crypto.Encrypt(MerchantTransactionId);
                UniqueMessageId       = Crypto.Encrypt(UniqueMessageId);
                Currency = Crypto.Encrypt(Currency);
                Amount   = Crypto.Encrypt(Amount);
                sMethod  = Crypto.Encrypt(sMethod);

                oAddress.Number     = Crypto.Encrypt(oAddress.Number);
                oAddress.State      = Crypto.Encrypt(oAddress.State);
                oAddress.Street     = Crypto.Encrypt(oAddress.Street);
                oAddress.Zip        = Crypto.Encrypt(oAddress.Zip);
                oAddress.Floor      = Crypto.Encrypt(oAddress.Floor);
                oAddress.City       = Crypto.Encrypt(oAddress.City);
                oAddress.Appartment = Crypto.Encrypt(oAddress.Appartment);

                oBankDetail.Bank           = Crypto.Encrypt(oBankDetail.Bank);
                oBankDetail.BankNumber     = Crypto.Encrypt(oBankDetail.BankNumber);
                oBankDetail.Branch         = Crypto.Encrypt(oBankDetail.Branch);
                oBankDetail.DocumentNumber = Crypto.Encrypt(oBankDetail.DocumentNumber);
                oBankDetail.DocumentType   = Crypto.Encrypt(oBankDetail.DocumentType);
                oBankDetail.LastName       = Crypto.Encrypt(oBankDetail.LastName);
                oBankDetail.Name           = Crypto.Encrypt(oBankDetail.Name);
                oBankDetail.Type           = Crypto.Encrypt(oBankDetail.Type);
            }

            // Consultamos el servicio web
            // Llamamos al Metodo DoWithDraw de la API de DineroMail
            ws.dineromail.api.ResultDoWithDraw WithDrawResult = Client.DoWithDraw(Credential
                                                                                  , Crypt
                                                                                  , MerchantTransactionId
                                                                                  , sMethod
                                                                                  , Currency
                                                                                  , Amount
                                                                                  , oAddress
                                                                                  , oBankDetail
                                                                                  , UniqueMessageId
                                                                                  , Hash);

            // mostramos la respuesta de la operación en pantalla.
            string sResult = "Status: " + WithDrawResult.Status.ToString() + "<br>";

            sResult = sResult + "Message: " + WithDrawResult.Message.ToString() + "<br>";
            sResult = sResult + "MerchantTransactionId: " + WithDrawResult.MerchantTransactionId.ToString() + "<br>";
            sResult = sResult + "UniqueMessageId: " + WithDrawResult.UniqueMessageId.ToString() + "<br>";

            if (WithDrawResult.Status.ToString() == "PENDING")
            {
                sResult = sResult + "TransactionId: " + WithDrawResult.TransactionId.ToString() + "<br>";
            }

            return(sResult);
        }
        /// <summary>
        ///     GetOperations: Obtener lista operaciones de DineroMail por parte de los vendedores
        /// </summary>
        /// <param name="APIPassword">Valor de seguridad para utilización de la API de DineroMail</param>
        /// <param name="APIUserName">Usuario para la identificacion en la API de DineroMail</param>
        /// <param name="Crypt">Indica si se envian los datos encriptados</param>
        /// <param name="MerchantTransactionId">Identificador transacción, corresponde al identificador de transacción del Comerciente.</param>
        /// <param name="UniqueMessageId">Identificador único de mensaje, no puede repetirse en futuras conexiones. (Autonumérico)</param>
        /// <param name="StartDate">Fecha inicial, en un rango de fecha</param>
        /// <param name="EndDate">Fecha final, en un rango de fecha</param>
        /// <param name="OperationId">Identificador de la operación en DineroMail</param>
        /// <param name="Hash">Cadena a encriptar</param>
        /// <returns>
        ///     Lista de Operaciones
        /// </returns>
        public string GetOperations()
        {
            String APIPassword           = "******";
            String APIUserName           = "******";
            bool   Crypt                 = false;
            String MerchantTransactionId = "1";
            String UniqueMessageId       = "30";
            String OperationId           = "";
            String StartDate             = "2012-09-01";
            String EndDate               = "2012-10-01";
            String Hash = "";

            DMCrypt Crypto = new DMCrypt();

            // Creamos una instancia del objeto APICredential
            // La Credential es la tarjeta de acceso a la API de DineroMail
            ws.dineromail.api.APICredential Credential = new ws.dineromail.api.APICredential();
            Credential.APIPassword = APIPassword;
            Credential.APIUserName = APIUserName;

            // El >> Hash << es el cálculo MD5 de los valores
            // de los siguientes parámetros en orden especificado.
            Hash = MerchantTransactionId + UniqueMessageId + OperationId + StartDate + EndDate + Credential.APIPassword;
            Hash = Crypto.GetHashMD5(Hash);

            //si se desea enviar encriptado
            if (Crypt)
            {
                Crypto.Key            = Encoding.ASCII.GetBytes(Credential.APIPassword);
                MerchantTransactionId = Crypto.Encrypt(MerchantTransactionId);
                UniqueMessageId       = Crypto.Encrypt(UniqueMessageId);
                OperationId           = Crypto.Encrypt(OperationId);
                StartDate             = Crypto.Encrypt(StartDate);
                EndDate = Crypto.Encrypt(EndDate);
            }

            ws.dineromail.api.DMAPI Client = new ws.dineromail.api.DMAPI();

            // Consultamos el servicio web
            // Llamamos al Metodo GetOperations de la API de DineroMail
            ws.dineromail.api.ResultGetOperations OperationsResult = Client.GetOperations(Credential
                                                                                          , Crypt
                                                                                          , MerchantTransactionId
                                                                                          , OperationId
                                                                                          , StartDate
                                                                                          , EndDate
                                                                                          , UniqueMessageId
                                                                                          , Hash);

            //mostramos la respuesta de la operación en pantalla.
            string sResult = "Status: " + OperationsResult.Status.ToString() + "<br>";

            sResult = sResult + "Message: " + OperationsResult.Message.ToString() + "<br>";
            sResult = sResult + "MerchantTransactionId: " + OperationsResult.MerchantTransactionId.ToString() + "<br>";
            sResult = sResult + "UniqueMessageId: " + OperationsResult.UniqueMessageId.ToString() + "<br>";

            if (OperationsResult.Status.ToString() == "OK")
            {
                sResult = sResult + "MerchantTransactionId: " + OperationsResult.MerchantTransactionId.ToString() + "<br>";

                foreach (ws.dineromail.api.OperationDetail Operation in OperationsResult.Operations)
                {
                    sResult = sResult + "<h2>Operation</h2><br>";
                    sResult = sResult + "Id: " + Operation.Id.ToString() + "<br>";
                    sResult = sResult + "Amount: " + Operation.Amount.ToString() + "<br>";
                    sResult = sResult + "Date: " + Operation.Date.ToString() + "<br>";
                    sResult = sResult + "NetAmount: " + Operation.NetAmount.ToString() + "<br>";
                    sResult = sResult + "PaymentMethod: " + Operation.PaymentMethod.ToString() + "<br>";
                    sResult = sResult + "Shares: " + Operation.Shares.ToString() + "<br>";
                    sResult = sResult + "State: " + Operation.State.ToString() + "<br>";
                    sResult = sResult + "<h3>Buyer</h3><br>";
                    sResult = sResult + "Address: " + Operation.Buyer.Address.ToString() + "<br>";
                    sResult = sResult + "Comments: " + Operation.Buyer.Comments.ToString() + "<br>";
                    sResult = sResult + "DocumentNumber: " + Operation.Buyer.DocumentNumber.ToString() + "<br>";
                    sResult = sResult + "DocumentType: " + Operation.Buyer.DocumentType.ToString() + "<br>";
                    sResult = sResult + "Email: " + Operation.Buyer.Email.ToString() + "<br>";
                    sResult = sResult + "LastName: " + Operation.Buyer.LastName.ToString() + "<br>";
                    sResult = sResult + "Name: " + Operation.Buyer.Name.ToString() + "<br>";
                    sResult = sResult + "Phone: " + Operation.Buyer.Phone.ToString() + "<br>";
                    sResult = sResult + "<h3>Seller</h3><br>";
                    sResult = sResult + "LastName: " + Operation.Seller.LastName.ToString() + "<br>";
                    sResult = sResult + "Name: " + Operation.Seller.Name.ToString() + "<br>";
                    sResult = sResult + "Phone: " + Operation.Seller.Phone.ToString() + "<br>";
                    sResult = sResult + "Email: " + Operation.Seller.Email.ToString() + "<br>";
                    sResult = sResult + "DocumentType: " + Operation.Seller.DocumentType.ToString() + "<br>";
                    sResult = sResult + "DocumentNumber: " + Operation.Seller.DocumentNumber.ToString() + "<br>";
                }
            }

            return(sResult);
        }
        public string DoPaymentWithReference()
        {
            string APIPassword           = "******";
            string APIUserName           = "******";
            bool   Crypt                 = false;
            string MerchantTransactionId = "1";
            string UniqueMessageId       = "18";
            string Hash     = "";
            string Subject  = "Subject Test";
            string Message  = "Message Test";
            string Provider = "pagofacil";

            DMCrypt Crypto = new DMCrypt();

            ws.dineromail.api.DMAPI ClientApi = new ASP.NET.ws.dineromail.api.DMAPI();
            ws.dineromail.api.Item  oItem     = new ASP.NET.ws.dineromail.api.Item();
            //Creamos una instancia del objeto APICredential
            ws.dineromail.api.APICredential Credential = new ws.dineromail.api.APICredential();

            oItem.Amount      = "25.52";
            oItem.Code        = "A001";
            oItem.Currency    = "USD";
            oItem.Description = "Producto A001";
            oItem.Name        = "LCD Monitor";
            oItem.Quantity    = "2";

            ws.dineromail.api.Item[] oItems = { oItem };

            ws.dineromail.api.Buyer oBuyer = new ws.dineromail.api.Buyer();
            oBuyer.Address  = "Charcas 2034";
            oBuyer.City     = "Buenos Aires";
            oBuyer.Country  = "Argentina";
            oBuyer.Email    = "*****@*****.**";
            oBuyer.LastName = "Lopez";
            oBuyer.Name     = "Carlos Ruben";
            oBuyer.Phone    = "45556565";

            // Creamos una instancia del objeto APICredential
            // La Credential es la tarjeta de acceso a la API de DineroMail
            Credential.APIUserName = APIUserName;
            Credential.APIPassword = APIPassword;

            //preparamos la cadena de texto a utilizar en el hash
            string sConcatItem = oItem.Amount + oItem.Code + oItem.Currency + oItem.Description + oItem.Name + oItem.Quantity;

            string sConcatBuyer = oBuyer.Name + oBuyer.LastName + oBuyer.Email + oBuyer.Address + oBuyer.Phone + oBuyer.Country + oBuyer.City;

            Hash = MerchantTransactionId + UniqueID + sConcatItem + sConcatBuyer + Provider + Subject + Message + Credential.APIPassword.ToString();

            //si se desea enviar encriptado
            if (Crypt)
            {
                Crypto.Key            = Encoding.ASCII.GetBytes(Credential.APIPassword);
                MerchantTransactionId = Crypto.Encrypt(MerchantTransactionId);
                UniqueMessageId       = Crypto.Encrypt(UniqueMessageId);
                Provider = Crypto.Encrypt(Provider);
                Subject  = Crypto.Encrypt(Subject);
                Message  = Crypto.Encrypt(Message);

                foreach (ws.dineromail.api.Item Item in oItems)
                {
                    oItem.Amount      = Crypto.Encrypt(oItem.Amount);
                    oItem.Code        = Crypto.Encrypt(oItem.Code);
                    oItem.Currency    = Crypto.Encrypt(oItem.Currency);
                    oItem.Description = Crypto.Encrypt(oItem.Description);
                    oItem.Name        = Crypto.Encrypt(oItem.Name);
                    oItem.Quantity    = Crypto.Encrypt(oItem.Quantity);
                }
                oBuyer.Name     = Crypto.Encrypt(oBuyer.Name);
                oBuyer.LastName = Crypto.Encrypt(oBuyer.LastName);
                oBuyer.Email    = Crypto.Encrypt(oBuyer.Email);
                oBuyer.Address  = Crypto.Encrypt(oBuyer.Address);
                oBuyer.Phone    = Crypto.Encrypt(oBuyer.Phone);
                oBuyer.Country  = Crypto.Encrypt(oBuyer.Country);
                oBuyer.City     = Crypto.Encrypt(oBuyer.City);
            }

            Hash = Crypto.GetHashMD5(Hash);

            //consultamos el servicio web
            ws.dineromail.api.ResultDoPaymentWithReference PaymentWithReferenceResult = ClientApi.DoPaymentWithReference(Credential, Crypt, MerchantTransactionId, oItems, oBuyer, Provider, Subject, Message, UniqueMessageId, Hash);

            //mostramos la respuesta de la operación en pantalla.
            string sResult = "Status: " + PaymentWithReferenceResult.Status.ToString() + "<br>";

            sResult = sResult + "Message: " + PaymentWithReferenceResult.Message.ToString() + "<br>";
            sResult = sResult + "MerchantTransactionId: " + PaymentWithReferenceResult.MerchantTransactionId.ToString() + "<br>";
            sResult = sResult + "UniqueMessageId: " + PaymentWithReferenceResult.UniqueMessageId.ToString() + "<br>";
            if (PaymentWithReferenceResult.Status.ToString() == "COMPLETED")
            {
                sResult = sResult + "TransactionId: " + PaymentWithReferenceResult.TransactionId.ToString() + "<br>";
                sResult = sResult + "BarcodeDigits: " + PaymentWithReferenceResult.BarcodeDigits + "<br>";
                sResult = sResult + "UrlImage: " + PaymentWithReferenceResult.BarcodeImageUrl.ToString() + "<br>";
                sResult = sResult + "Voucher: " + PaymentWithReferenceResult.VoucherUrl.ToString();
            }

            return(sResult);
        }
Example #4
0
        /// <summary>
        ///     SendMoney: Realizar "Envío de dinero".
        /// </summary>
        /// <param name="APIPassword">Valor de seguridad para utilización de la API de DineroMail</param>
        /// <param name="APIUserName">Usuario para la identificacion en la API de DineroMail</param>
        /// <param name="Crypt">Indica si se envian los datos encriptados</param>
        /// <param name="MerchantTransactionId">Identificador transacción, corresponde al identificador de transacción del Comerciente.</param>
        /// <param name="UniqueMessageId">Identificador único de mensaje, no puede repetirse en futuras conexiones. (Autonumérico)</param>
        /// <param name="_Currency">Moneda del importe a enviar</param>
        /// <param name="Amount">Importe a enviar</param>
        /// <param name="MailTo">Email del usuario que recibe el dinero</param>
        /// <param name="Subject">Concepto del envío de dinero</param>
        /// <param name="Message">Mensaje al usuario destinatario del dinero</param>
        /// <param name="PayOff">Identifica el origen del envío de dinero</param>
        /// <param name="Hash">Cadena a encriptar</param>
        /// <returns>
        ///     Estado de la operación
        /// </returns>
        public string SendMoney()
        {
            String APIPassword           = "******";
            String APIUserName           = "******";
            bool   Crypt                 = false;
            String MerchantTransactionId = "1";
            String UniqueMessageId       = "11";
            string Currency              = "BRL";
            string Amount                = "10,00";
            string Mail    = "*****@*****.**";
            string Subject = "subject sendmoney";
            string Message = "Message sendmoney";
            string PayOff  = "product";
            string Hash    = "";

            DMCrypt Crypto = new DMCrypt();

            // Creamos una instancia del objeto APICredential
            // La Credential es la tarjeta de acceso a la API de DineroMail
            ws.dineromail.api.APICredential Credential = new ws.dineromail.api.APICredential();
            Credential.APIPassword = APIPassword;
            Credential.APIUserName = APIUserName;

            // El >> Hash << es el cálculo MD5 de los valores
            // de los siguientes parámetros en orden especificado.
            Hash = MerchantTransactionId + UniqueMessageId + Currency + Amount + Mail + PayOff + Subject + Message + Credential.APIPassword;
            Hash = Crypto.GetHashMD5(Hash);


            //si se desea enviar encriptado
            if (Crypt)
            {
                Crypto.Key            = Encoding.ASCII.GetBytes(Credential.APIPassword);
                MerchantTransactionId = Crypto.Encrypt(MerchantTransactionId);
                UniqueMessageId       = Crypto.Encrypt(UniqueMessageId);
                Currency = Crypto.Encrypt(Currency);
                Amount   = Crypto.Encrypt(Amount);
                Mail     = Crypto.Encrypt(Mail);
                Subject  = Crypto.Encrypt(Subject);
                Message  = Crypto.Encrypt(Message);
                PayOff   = Crypto.Encrypt(PayOff);
            }

            ws.dineromail.api.DMAPI Client = new ws.dineromail.api.DMAPI();

            // Consultamos el servicio web
            // Llamamos al Metodo SendMoney de la API de DineroMail
            ws.dineromail.api.ResultSendMoney SendMoneyResult = Client.SendMoney(Credential
                                                                                 , Crypt
                                                                                 , Currency
                                                                                 , Amount
                                                                                 , Mail
                                                                                 , PayOff
                                                                                 , Subject
                                                                                 , Message
                                                                                 , MerchantTransactionId
                                                                                 , UniqueMessageId
                                                                                 , Hash);

            // Mostramos en pantalla el resultado de la operación.
            string sResult = "Status: " + SendMoneyResult.Status.ToString() + "<br>";

            sResult = sResult + "Message: " + SendMoneyResult.Message.ToString() + "<br>";
            sResult = sResult + "MerchantTransactionId: " + SendMoneyResult.MerchantTransactionId.ToString() + "<br>";
            sResult = sResult + "UniqueMessageId: " + SendMoneyResult.UniqueMessageId.ToString() + "<br>";
            if (SendMoneyResult.Status.ToString() == "COMPLETED" || SendMoneyResult.Status.ToString() == "PENDING")
            {
                sResult = sResult + "TransactionId: " + SendMoneyResult.TransactionId.ToString() + "<br>";
            }

            return(sResult);
        }