Atenção!!! Infelizmente não estou mais mantendo esta biblioteca, então não sei mais como está o funcionamento com as novidades no moip
Você pode utilizar esta biblioteca https://github.com/matmiranda/MoipCSharp está mais completa.
Moip.Net é uma biblioteca para utilizar as funções da API do Moip.
ATENÇÃO! A implementação da V1 da API não será considerada neste componente, uma vez que a V2 já está em ambiente de produção.
Estão implementadas as bibliotecas de Assinatura e Pagamento V2.
Moip.Net está disponível como um NuGet Package. Esta é a melhor forma de instalar a biblioteca no seu projeto.
Click on *Tools -> NuGet Package Manager -> Package Manager Console* and enter the following
PM> Install-Package moip-net
A biblioteca irá chamar a API do moip. Veja na Documentação do moip os parâmetros que devem ser enviadas a cada chamada.
Nos exemplos escritos, estamos assumindo que há os seguintes usings
using Moip.Net.V2;
using Moip.Net.V2.Model;
Todas as funções de pagamento são chamadas através de uma instância da classe V2Client. Para criar uma instância, você deve informar o ambiente (produção ou sandbox), sua API_Key e seu Token.
Veja a documentação aqui: Criar pedido
var v2Client = new V2Client(
new Uri("https://sandbox.moip.com.br/"),
"API_TOKEN",
"API_KEY"
);
var pedido = new Pedido()
{
OwnId = "SEU_CODIGO_PEDIDO",
Amount = new Valores()
{
Currency = CurrencyType.BRL,
Subtotals = new Subtotal()
{
Shipping = 1000
}
},
Items = new List<ItemPedido>()
{
new ItemPedido()
{
Product = "Descrição do produto",
Quantity = 1,
Detail = "Detalhes",
Price = 1000
}
},
Customer = new Cliente()
{
OwnId = "SEU_ID_CLIENTE",
Fullname = "José Silva",
Email = "josesilva@acme.com.br",
BirthDate = DateTime.Now.Date.AddYears(-18).ToString("yyyy-MM-dd"),
TaxDocument = new Documento()
{
Type = DocumentType.CPF,
Number = "65374721054"
},
Phone = new Telefone()
{
CountryCode = 55,
AreaCode = 11,
Number = 999999999
},
ShippingAddress = new Endereco()
{
ZipCode = "01234000",
Street = "Avenida Faria Lima",
StreetNumber = "2927",
Complement = "SL 1",
City = "São Paulo",
District = "Itaim",
State = "SP",
Country = "BRA"
}
};
};
var clienteCriado = v2Client.CriarPedido(pedido);
Veja a documentação aqui: Listar todos pedidos
var v2Client = new V2Client(
new Uri("https://sandbox.moip.com.br/"),
"API_TOKEN",
"API_KEY"
);
//Listar todos os pedidos pagos e criados com data superior a 01/01/2016
var filters = new Filters()
.Add(new GreatherThanFilter<DateTime>("createdAt", new DateTime(2016, 01, 01)))
.Add(new InFilter<OrderStatusType>("status", OrderStatusType.CREATED, OrderStatusType.PAID));
var pedidos = v2Client.ListarTodosPedidos(filters: filters);
Todas as exceções geradas durante a chamada da API serão retornadas como uma MoipException. Abordagem restful do moip
try
{
var v2Client = new V2Client(
new Uri("https://sandbox.moip.com.br/"),
"API_TOKEN",
"API_KEY"
);
var cliente = new Cliente();
v2Client.CriarCliente(cliente);
}
catch (MoipException ex)
{
//ex.Message = Mensagem de retorno + descrição de todos os erros retornados do moip com quebra de linha
//ex.ResponseError.Errors = Coleção de [Codigo, Path e Description]
}
Este componente não faz ABSOLUTAMENTE nenhuma validação de dados. Tudo isto fica a cargo da própria API. Para verificar os parâmetros obrigatórios e especificidades de cada chamada, verifique a documentação.
NÃO IMPLEMENTADOS
Todas as funções de assinatura são chamadas através de uma instância da classe AssinaturasClient. Para criar uma instância, você deve informar o ambiente (dev ou sandbox), sua API_Key e seu Token.
var assinaturasClient =
new AssinaturasClient(
new Uri("https://sandbox.moip.com.br/"),
"API_TOKEN",
"API_KEY");
http://dev.moip.com.br/assinaturas-api/#criar-assinaturas-post
var subscription = new Subscription()
{
Code = "_test_assinatura_" + DateTime.Now.Ticks,
PaymentMethod = Plan.PaymentMethodPlan.CREDIT_CARD,
Plan = firstPlan,
Customer = new CustomerRequest()
{
Code = "CodigoCliente,
Email = "rogerr@acme.com",
Fullname = "Roger Rabbit",
Cpf = "72716422699",
PhoneAreaCode = 11,
PhoneNumber = "555555555",
BirthdateDay = 19,
BirthdateMonth = 7,
BirthdateYear = 1985,
Address = new CustomerAddress()
{
Street = "Rua Nome da Rua",
Number = "100",
Complement = "AP 51",
District = "Nossa Senhora do Ó",
City = "São Paulo",
State = "SP",
Country = "BRA",
Zipcode = "02927100"
},
BillingInfo = new BillingInfoRequest()
{
CreditCard = new CreditCard()
{
HolderName = "Roger Rabbit",
Number = "4111111111111111",
ExpirationMonth = "04",
ExpirationYear = "30"
}
}
};
assinaturasClient.CreateSubscription(subscription, true);