Gateways de Pagamento e E-Commerces

Posted on quarta-feira, dezembro 02, 2009 -

Gateways de Pagamento e E-Commerces

A Motivação

A gradual convergência para a vida tecnológica que estamos sendo personagens hoje é inevitável, cada vez mais são inseridos no mercado produtos digitais pelas empresas visando essa convergência, e muitos dos nossos antigos costumes estão sendo ao pouco substituidos, e temos muitos exemplos:

- Ir a livraria comprar uma boa referência para faculdade, trabalho ou aquele chato projeto que você está precisando de novas perspectivas de resolução hoje é uma tarefa mais fácil pela internet, uma vez que livros técnicos não são tão facilmente encontrados em nossas grandes redes, podemos encontrar com muito mais facilidade os livros que precisamos comprando em sites especializados, das próprias editoras ou por importação.
- No mundo dos video games, já está entrando no mercado com força nos últimos 2 anos as lojas virtuais de jogos, onde além do usuário poder comprar seus jogos preferidos na data de lançamento sem encarar filas na loja pode também ver demonstrações, vídeos e análises desses jogos, além disso, pode até mesmo comprar conteúdo digital para customizar as telas de seu console.
- Encontrar um tênis especifico para sua atividade, uniformes de times de futebol e outros artigos esportivos especificos é muito mais fácil agora pela internet.

Os E-Commerces já são uma realidade na internet, mas será que estão preparados para simplesmente aceitar a forma de pagamento que esse usuário têm a oferecer ? A simples lógica de uma loja física é conseguir aceitar todas as formas de pagamento possíveis de seus clientes e converter aquilo em dinheiro.

As Opções e o Custo

Na internet hoje temos algumas formas de moedas virtuais que os usuários podem utilizar e o desenvolvedor aceita-la em seu site de maneira rápida e descomplicada, como o PayPal, o PagSeguro (UOL), Mercado Pago (EBay), MoneyBookers entre outros. Mas e se eu quiser aceitar simplesmente o cartão de débito do cliente ? No processo comum, você vai precisar ter sua empresa já instaurada há um certo tempo no mercado, cumprir algumas exigências do contrato dos bancos emissores desses cartões (que são diferentes de banco a banco), homologações extremamente rígidas de todos os processos de transoções dentro da sua empresa, dentro do seu site e até mesmo do seu código fonte do sistema da sua loja virtual, além da necessidade de adquirir certificados de segurança para seu servidor e outras muitas exigências e muitas vezes, a necessidade de implantação de sistemas de transações EDI gerando outros custos em cima.

Hoje existem serviços não tão conhecidos ainda que podem facilitar todos esses processos para uma transação solicitando de você apenas um documento único sobre sua transação e você pagar apenas na hora da sua venda efetivada uma porcentagem para o serviço e ainda ter aliado a esse serviço sistemas anti fraude, conciliação, recorrência e outros serviços que para pequenas empresas parecia antes coisas de mega corporações.

As Soluções para as empresas

Essa é a boa notícia para empresas e desenvolvedores, hoje existem serviços como o das empresas Braspag, Boldcron, PagSeguro, CobreBem e outras empresas de pagamento digital que oferecem uma forma de sua empresa aceitar todos os tipos de pagamento possíveis com um minimo esforço de implementação em seu sistema por meio principalmente de Web Services. Essas empresas hoje são sólidas e confiáveis, a Braspag por exemplo, movimentou, em 2006, mais de 1 bilhão de reais em pagamentos online de clientes como Dell, Google e Americanas e com tanto sucesso nesse segmento do mercado, neste ano foi vendida ao Grupo Silvio Santos.

Por meio da tecnologia dessa solução nós podemos implementar em nosso site apenas uma chamada remota aos servidores dessas empresas passando a elas um documento XML/WSDL por Web Service com os dados da transação que a empresa vai se encarregar de cobrar o cliente na forma de pagamento desejada por ele, e se o cartão de crédito do cliente for falso ou quaisquer problemas relacionados ao nome daquele usuário (SERASA por exemplo) a empresa pode retornar pra você dentro do XML de retorno que ela lhe entrega dizendo se a transação foi efetivada ou não. No caso de boletos bancários a empresas possuem painéis de controle para você controlar o pagamento desses boletos se foi efetivado ou não por exemplo.

Dessa forma as empresas precisam se preocupar apenas com o seu próprio core business.

A Escalabilidade

Imagine que o banco X foi vendido para o banco Y hoje e muda todos os processos tecnologicos da empresa inclusive os usados por parceiros, e você possui um sistema criado para ser integrado aos pagamentos desse banco X, caso você esteja utilizando um serviço de gateway de pagamento você não terá impacto nenhum no seu negócio, a empresa do gateway vai se encarregar de mudar o sistema dela e seu documento que é enviado a essa empresa continua sendo o mesmo, sem a necessidade de alterações de código.

Outra grande vantagem desses serviços é que podemos por meio de 1 único documento fazer integração com todas as formas de pagamento, uma vez que todas essas responsabilidades de conversões de documento e formatações são da empresa que administra esse gateway.

Algumas empresas que fazem esse serviço:
http://www.braspag.com.br/
http://pagseguro.uol.com.br/
http://www.boldcron.com.br/
http://www.cobrebem.com.br/

Fontes de referência:
http://info.abril.com.br/professional/novos-negocios/12-negocios-para-ganhar-r-1-mi.shtml
http://idgnow.uol.com.br/internet/2009/06/08/grupo-silvio-santos-compra-empresa-de-pagamentos-online-braspag/

Trabalhando com imagens no iPhone

Posted on quinta-feira, agosto 27, 2009 -

Exemplos úteis pra manipular imagens:

- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2 {
UIGraphicsBeginImageContext(image1.size);

[image1 drawInRect:CGRectMake(0, 0, image1.size.width, image1.size.height)];
[image2 drawInRect:CGRectMake(0, 0, image2.size.width, image2.size.height)];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return resultingImage;
}

Esse embaixo tira uma área da imagem:

- (UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect)rect {
CGImageRef sourceImageRef = [image CGImage];
CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect);
UIImage *newImage = [UIImage imageWithCGImage:newImageRef];
return newImage;
}

iPhone SDK - Observers e NSDictionarys

Posted on sexta-feira, julho 10, 2009 -

Pense numa aplicação que você passa um array de downloads, esse array vc joga em threads pra fazer download mais rapido... quando você estiver em threads, imagine o trabalho que você vai ter pra controlar esses downloads se estao acabando.. quantos já foram feitos... ???

Você pode fazer um controle disso usando observers, que uma vez declarados, podem ver o seu objeto em praticamente qualquer ponto do sistema.

A seguir um exemplo de observer com NSDictionary:

NSMutableDictionary* teste = [[NSMutableDictionary alloc] init];
[teste addObserver:self forKeyPath:@"nome" options:0 context:nil];
[teste setObject:@"Joao" forKey:@"nome"];
[teste setObject:@"Manoel" forKey:@"nome"];
[teste setObject:@"Jairo" forKey:@"nome"];

Declare isso na sua implementacao de classe:

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change
context:(void *)context {
NSLog(@"%@ ", [object objectForKey:keyPath]);
}

Boa sorte !

Shake !

Posted on sexta-feira, julho 03, 2009 -

Como detectar um balanço no iPhone ?
Pesquisei um pouco para atender a pedidos de alunos em aula e achei algumas classes que usam C, mexi um pouco e alterei o conceito, e criei uma forma em Cocoa, segue código pros curiosos:

Depois de chamar pelo acelerometro*, no delegate dele use o seguinte:

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{

UIAccelerationValue length, x, y, z;

[myAccelerometer insertObject:[[NSNumber alloc] initWithFloat:(acceleration.x * 0.1 + [[myAccelerometer objectAtIndex:0] floatValue] * (1.0 - 0.1))] atIndex:0];
[myAccelerometer insertObject:[[NSNumber alloc] initWithFloat:(acceleration.y * 0.1 + [[myAccelerometer objectAtIndex:0] floatValue] * (1.0 - 0.1))] atIndex:1];
[myAccelerometer insertObject:[[NSNumber alloc] initWithFloat:(acceleration.z * 0.1 + [[myAccelerometer objectAtIndex:0] floatValue] * (1.0 - 0.1))] atIndex:2];

x = acceleration.x - [[myAccelerometer objectAtIndex:0] floatValue];
y = acceleration.y - [[myAccelerometer objectAtIndex:0] floatValue];
z = acceleration.z - [[myAccelerometer objectAtIndex:0] floatValue];

length = sqrt(x * x + y * y + z * z);

if(length >= 2.0) {
NSLog(@"UHHHH Vibrei!!!!");

}

*Para instanciar o acelerometro com o delegate sendo a propria classe:
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / 25)];
[[UIAccelerometer sharedAccelerometer] setDelegate:self];

Expressoes Regulares no iPhone

Posted on segunda-feira, junho 22, 2009 -

Bem util ! Seguem exemplos pra quem não vive sem:

- (BOOL)assertRegex:(NSString*)stringToSearch withRegex:(NSString*)regexString {
NSPredicate *regex = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexString];
return [regex evaluateWithObject:stringToSearch];
}

- (void)testRegexes {
// Find a string at the end of a line.
STAssertTrue([self assertRegex:@"Christopher Bartling"
withRegex:@".*Bartling$"], @"Regex did not match.");

// Find a string at the beginning of a line.
STAssertTrue([self assertRegex:@"Christopher Bartling"
withRegex:@"^Chris.*"], @"Regex did not match.");

// Find a sequence of 3 characters in succession using an interval quantifier (e.g {3,3}).
STAssertTrue([self assertRegex:@"**** = *** === ****** == *****"
withRegex:@".*={3,3}.*"], @"Regex did not match.");
}

A quem mais interessar também existem algumas frameworks para isso:
http://regexkit.sourceforge.net/
http://sourceforge.net/projects/objpcre
Para mudar o fundo de uma UITableView:

[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"seubg.png"]]];

Muuuuito bom !

Recent Posts

Followers