/// <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); }
/// <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); }