pagos electrónicos
Post on 05-Dec-2014
1.159 Views
Preview:
DESCRIPTION
TRANSCRIPT
Pagos ElectrónicosImplementación y Desarrollo
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é Olivorene@minet.com.do@rene_olivo
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.
Métodos de Pagos que veremos hoy
● Cardnet● Visanet● Paypal● Authorize
Métodos de pagos locales
Ventajas● Faciles de implementar.● Aceptan tarjetas de débito locales.● Buen soporte para empresas y personas sin
experiencia.
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.
Flujo de pago
Características● Soporta método integrado de pago.
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( '' ) );
Características● Soporta método integrado a través de SOAP
(yay!).● Posibilidad de cancelar transacciones a
través de HTTP POST o SOAP.
https://www.paragourmet.com/index.php?route=checkout/confirm
SOAP
https://github.com/vpulim/node-soap(Buena Suerte)
Recomendaría el uso de métodos de pagos locales?
Sí.
Métodos de Pago Internacionales
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.
Paypalhttps://developer.paypal.com/
https://sandbox.paypal.com/
Características● Variedad de métodos de pagos:
○ Buy Now○ Add to Cart○ Custom Cart○ Payment Pro
Buy Nowhttps://github.com/reneolivo/rent-a-coder/tree/dev/paypal/buy-now
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/#id08A6HF00TZS
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
Instant Payment Notifications (IPN)
● Más confiable que usar notify_url.● Reenvía el mensaje hasta que se confirme su
recepción.
https://developer.paypal.com/docs/classic/ipn/gs_IPN/
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
}
);
});
Custom Carthttps://github.com/reneolivo/rent-a-coder/tree/dev/paypal/custom-cart
https://www.paypal.com/cgi-bin/webscr?cmd=p/pdn/howto_checkout-outside
Authorize.nethttps://developer.authorize.net/sandbox/
https://sandbox.authorize.net/
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
Customer Information Manager (CIM)
● Simplifica los deberes y cumplimientos para ser PCI Complient.
● Almacena información sensible en los servidores de Authorize.
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
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
});
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);
});
Authorize.net CIM Hello World
null
{ messages:
{ resultCode: 'Ok',
message: { code: 'I00001', text: 'Successful.' } },
customerProfileId: 27289360,
customerPaymentProfileIdList: {},
customerShippingAddressIdList: {},
validationDirectResponseList: {}
}
DemoLink:http://107.170.180.166:3000/
Tarjetas de prueba:http://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm
Creación de un Cliente
auth.createCustomerProfile({
merchantCustomerId : '12345678',
email : 'test@example.com',
description : 'this is a test'
}, callback);
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);
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'
})
})}});
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'
})
})}});
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)
Q&A
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
Muchas gracias!
top related