Pagos electrónicos

45
Pagos Electrónicos Implementación y Desarrollo

description

Presentación sobre Pagos Electrónicos usando Cardnet, Visanet, Paypal y/o Authorize.net

Transcript of Pagos electrónicos

Page 1: Pagos electrónicos

Pagos ElectrónicosImplementación y Desarrollo

Page 2: Pagos electrónicos

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é [email protected]@rene_olivo

Page 3: Pagos electrónicos

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.

Page 4: Pagos electrónicos

Métodos de Pagos que veremos hoy

● Cardnet● Visanet● Paypal● Authorize

Page 5: Pagos electrónicos

Métodos de pagos locales

Page 6: Pagos electrónicos

Ventajas● Faciles de implementar.● Aceptan tarjetas de débito locales.● Buen soporte para empresas y personas sin

experiencia.

Page 7: Pagos electrónicos

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.

Page 8: Pagos electrónicos

Flujo de pago

Page 9: Pagos electrónicos

Cardnethttps://www.cardnet.com.do

Page 10: Pagos electrónicos

Características● Soporta método integrado de pago.

Page 11: Pagos electrónicos

https://clecto.com.do/carrito/

Page 12: Pagos electrónicos
Page 13: Pagos electrónicos

Método de pago integradovar inputs = [

'<h4>Número de Tarjeta:</h4>',

'<input name="CredicardNumber" value="4234567842345678">',

'<h4>Expira (YY/MM):</h4>',

'<input name="expdate_year" value="16" size="2"> / ',

'<input name="expdate_month" value="06" size="2">',

'<h4>CVV / CVC:</h4>',

'<input name="CreditVerificationValue" value="678" size="3">'

];

$('form[method=post][enctype]').prepend( inputs.join( '' ) );

Page 14: Pagos electrónicos

Visanethttp://visanet.com.do

Page 15: Pagos electrónicos

Características● Soporta método integrado a través de SOAP

(yay!).● Posibilidad de cancelar transacciones a

través de HTTP POST o SOAP.

Page 17: Pagos electrónicos
Page 18: Pagos electrónicos

SOAP

https://github.com/vpulim/node-soap(Buena Suerte)

Page 19: Pagos electrónicos

Recomendaría el uso de métodos de pagos locales?

Sí.

Page 20: Pagos electrónicos

Métodos de Pago Internacionales

Page 21: Pagos electrónicos

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.

Page 22: Pagos electrónicos

Paypalhttps://developer.paypal.com/

https://sandbox.paypal.com/

Page 23: Pagos electrónicos

Características● Variedad de métodos de pagos:

○ Buy Now○ Add to Cart○ Custom Cart○ Payment Pro

Page 25: Pagos electrónicos

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

Page 26: Pagos electrónicos

Instant Payment Notifications (IPN)

● Más confiable que usar notify_url.● Reenvía el mensaje hasta que se confirme su

recepción.

Page 27: Pagos electrónicos

https://developer.paypal.com/docs/classic/ipn/gs_IPN/

Page 28: Pagos electrónicos

Procesar IPNsrouter.post('/payment-confirmation', function(req, res) {

req.body.cmd = '_notify-validate';

curl.request({

url : 'https://www.sandbox.paypal.com/cgi-bin/webscr',

method : 'POST',

data : req.body

}, function response(err, response, headers) {

//VALIDAR ERRORES

res.send(200, '');

//ENVIAR EMAIL DE CONFIRMACION

}

);

});

Page 30: Pagos electrónicos

Authorize.nethttps://developer.authorize.net/sandbox/

https://sandbox.authorize.net/

Page 31: Pagos electrónicos

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

Page 32: Pagos electrónicos

Customer Information Manager (CIM)

● Simplifica los deberes y cumplimientos para ser PCI Complient.

● Almacena información sensible en los servidores de Authorize.

Page 33: Pagos electrónicos

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

Page 34: Pagos electrónicos

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

});

Page 35: Pagos electrónicos

Authorize.net CIM Hello World

auth.createCustomerProfile({

merchantCustomerId : '12345678',

email : '[email protected]',

description : 'this is a test'

}, function(err, response) {

console.log(err, response);

});

Page 36: Pagos electrónicos

Authorize.net CIM Hello World

null

{ messages:

{ resultCode: 'Ok',

message: { code: 'I00001', text: 'Successful.' } },

customerProfileId: 27289360,

customerPaymentProfileIdList: {},

customerShippingAddressIdList: {},

validationDirectResponseList: {}

}

Page 37: Pagos electrónicos

DemoLink:http://107.170.180.166:3000/

Tarjetas de prueba:http://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm

Page 38: Pagos electrónicos

Creación de un Cliente

auth.createCustomerProfile({

merchantCustomerId : '12345678',

email : '[email protected]',

description : 'this is a test'

}, callback);

Page 39: Pagos electrónicos

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

Page 40: Pagos electrónicos

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'

})

})}});

Page 41: Pagos electrónicos

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'

})

})}});

Page 42: Pagos electrónicos

Creación de una Transacción

auth.createCustomerProfileTransaction(

'AuthCapture', /* AuthOnly, CaptureOnly, PriorAuthCapture */

{

amount: 56.01,

tax: {amount: 12.44, name: 'State Tax', description : 'FL'},

customerShippingAddressId : '123',

customerProfileId : '123',

customerPaymentProfileId : '123',

order: {

invoiceNumber : 1337

}

}, callback)

Page 43: Pagos electrónicos

Q&A

Page 44: Pagos electrónicos

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

Page 45: Pagos electrónicos

Muchas gracias!