2. Sobre mi
● Ingeniero en Sistemas (UNAPEC)
● Msc. Electronic Commerce
(University of Westminster)
● 1ra promoción Técnico en
Multimedia (ITLA)
● 15 años de experiencia en el
área web
René Olivo
rene@minet.com.do
@rene_olivo
3. Objetivos
● Demostrar la facilidad de implementar métodos de
pagos en plataformas de comercio electrónico.
● Analizar los distintos métodos de integración de las
plataformas de pagos para poder elegir la herramienta
adecuada para un proyecto determinado.
4. Métodos de Pagos que veremos hoy
● Cardnet
● Visanet
● Paypal
● Authorize
6. Ventajas
● Faciles de implementar.
● Aceptan tarjetas de débito locales.
● Buen soporte para empresas y personas sin
experiencia.
7. Desventajas
● Interfaces poco agradables y no se pueden
customizar.
● No ofrecen métodos de confirmación de
pago.
● No poseen sandboxes permanentes.
● Costo elevado para microempresas.
21. Ventajas
● Poseen distintas formas de integración.
● Facilitan SDKs para la implementación de
métodos de integración más complejos.
● Promueven el uso de SandBoxes para hacer
pruebas.
25. Buy Now Params
*business el email de la empresa
*cmd el tipo de checkout
*item_name nombre del producto
*currency_code USD, DOP, etc.
*amount el precio
quantity La cantidad
return la URL a retornar
rm Método de retorno (0 GET, 1 GET params, 2
POST)
cancel_return la URL cuando se cancela la transacción
26. Instant Payment Notifications (IPN)
● Más confiable que usar notify_url.
● Reenvía el mensaje hasta que se confirme su
recepción.
31. Características
● SDK oficiales para varios lenguajes
● Permite la realización de pagos recurrentes.
● Customer Information Manager (CIM)
○ Datos del usuario
○ Tarjetas de créditos
○ Cuentas bancarias
○ Direcciones de envío
○ Direcciones de pago
32. Customer Information Manager (CIM)
● Simplifica los deberes y cumplimientos para
ser PCI Complient.
● Almacena información sensible en los
servidores de Authorize.
33. Flujo de información
Información cruda1
Validación e inserción2
Información
procesada
3
Confirmación de
recepción y ID de
la data
4
Actualización de la
data original
5
Confirmación6
34. Authorize.net CIM Hello World
var secrets = require( '../../data/secrets' );
var Authorize = require( 'auth-net-cim' );
var auth = new Authorize({
api : secrets.authorize.loginId,
key : secrets.authorize.transactionKey,
sandbox : true
});
35. Authorize.net CIM Hello World
auth.createCustomerProfile({
merchantCustomerId : '12345678',
email : 'test@example.com',
description : 'this is a test'
}, function(err, response) {
console.log(err, response);
});
38. Creación de un Cliente
auth.createCustomerProfile({
merchantCustomerId : '12345678',
email : 'test@example.com',
description : 'this is a test'
}, callback);
39. Creación de una Dirección
auth.createCustomerShippingAddress({
customerProfileId: '12345678',
shippingAddress: new Authorize.ShippingAddress({
firstName : 'Bob',
lastName : 'Smith',
address : '123 Sesame St',
city : 'Gainesville',
state : 'FL',
zip : 32601,
country : 'us'
})
}, callback);
40. Creación de una Cuenta Bancaria
auth.createCustomerPaymentProfile({
customerProfileId : '12345678',
paymentProfile : {
customerType : 'business',
payment : new Authorize.Payment({
bankAccount : new Authorize.BankAccount({
accountType : 'businessChecking',
routingNumber : '121042882',
accountNumber : '123456789123',
nameOnAccount : 'Jane Doe',
bankName : 'Pandora Bank'
})
})}});
41. Creación de una Tarjeta de Pago
auth.createCustomerPaymentProfile({
customerProfileId : '12345678',
paymentProfile : {
customerType : 'individual',
payment : new Authorize.Payment({
creditCard : new Authorize.CreditCard({
cardNumber : '4111111111111111',
expirationDate : '2012-10',
cardCode : '111'
})
})}});
44. Retos
Crear un shopping
cart usando Paypal
Add to Cart
Usar Paypal
Payment Pro en vez
de Authorize.net
CIM
Implementar
sistema de
reservación de
programadores