Skip to content

Instantly share code, notes, and snippets.

@danielVargas
danielVargas / webpay_controller.rb
Created June 20, 2018 19:47
Controlador de WebPay que se encarga de comunicar las funciones, con los resultados que se obtienen desde WebPay
class WebpayController < ApplicationController
skip_before_action :verify_authenticity_token
#Normal transaction
def webpay_return_url
result = WebpayInit.get_transaction_result(params[:token_ws], request.base_url.to_s)
puts 'resultado obtenido: ' + result['buyorder'].to_s
puts 'token de transbank: ' + params[:token_ws]
payment = Payment.find(result['buyorder'])
payment.update(tbk_token: params[:token_ws])
payment.update(state: 'pending')
@danielVargas
danielVargas / webpay_init.rb
Last active June 20, 2018 19:40
Modelo que se encarga de inicializar webay y disponibilizar las funcionalidades a los controladores
class WebpayInit
#Normal transacition
def self.init_transaction(payment, base_url)
puts 'start init transaction'
self.init_webpay(base_url)
amount = payment.amount.to_i
sessionId = rand(1111111..9999999).to_s
payment.update(tbk_transaction_id: sessionId)
return @webpay.getNormalTransaction.initTransaction(amount, payment.id, sessionId, @urlReturn, @urlFinal)
end
@danielVargas
danielVargas / public_cert_develop.crt
Last active June 20, 2018 19:33
Certificado público de comercio para integración con WebPay (Ambiente integración)
-----BEGIN CERTIFICATE-----
MIIDujCCAqICCQCZ42cY33KRTzANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMC
Q0wxETAPBgNVBAgMCFNhbnRpYWdvMRIwEAYDVQQKDAlUcmFuc2JhbmsxETAPBgNV
BAcMCFNhbnRpYWdvMRUwEwYDVQQDDAw1OTcwMjAwMDA1NDExFzAVBgNVBAsMDkNh
bmFsZXNSZW1vdG9zMSUwIwYJKoZIhvcNAQkBFhZpbnRlZ3JhZG9yZXNAdmFyaW9z
LmNsMB4XDTE2MDYyMjIxMDkyN1oXDTI0MDYyMDIxMDkyN1owgZ4xCzAJBgNVBAYT
AkNMMREwDwYDVQQIDAhTYW50aWFnbzESMBAGA1UECgwJVHJhbnNiYW5rMREwDwYD
VQQHDAhTYW50aWFnbzEVMBMGA1UEAwwMNTk3MDIwMDAwNTQxMRcwFQYDVQQLDA5D
YW5hbGVzUmVtb3RvczElMCMGCSqGSIb3DQEJARYWaW50ZWdyYWRvcmVzQHZhcmlv
cy5jbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANApVXB/EQtbviqQ
@danielVargas
danielVargas / webpaynormal(getTransactionResult).rb
Last active June 20, 2018 19:29
Función getTransactionResult del archivo webpaynormal.rb
def getTransactionResult(token)
### Otras líneas de la funcionalidad
### ...
###
#Realizar el acknowledge
puts 'Se inicia acknowledgeTransaction...'
result = acknowledgeTransaction(token)
if(result['error_desc'] == 'TRX_OK')
@danielVargas
danielVargas / tbk_develop.key
Created June 20, 2018 19:18
Certificado Público de Transbank para integración con WebPay (Ambiente de integración)
-----BEGIN CERTIFICATE-----
MIIDKTCCAhECBFZl7uIwDQYJKoZIhvcNAQEFBQAwWTELMAkGA1UEBhMCQ0wxDjAMBgNVBAgMBUNo
aWxlMREwDwYDVQQHDAhTYW50aWFnbzEMMAoGA1UECgwDa2R1MQwwCgYDVQQLDANrZHUxCzAJBgNV
BAMMAjEwMB4XDTE1MTIwNzIwNDEwNloXDTE4MDkwMjIwNDEwNlowWTELMAkGA1UEBhMCQ0wxDjAM
BgNVBAgMBUNoaWxlMREwDwYDVQQHDAhTYW50aWFnbzEMMAoGA1UECgwDa2R1MQwwCgYDVQQLDANr
ZHUxCzAJBgNVBAMMAjEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAizJUWTDC7nfP
3jmZpWXFdG9oKyBrU0Bdl6fKif9a1GrwevThsU5Dq3wiRfYvomStNjFDYFXOs9pRIxqX2AWDybjA
X/+bdDTVbM+xXllA9stJY8s7hxAvwwO7IEuOmYDpmLKP7J+4KkNH7yxsKZyLL9trG3iSjV6Y6SO5
EEhUsdxoJFAow/h7qizJW0kOaWRcljf7kpqJAL3AadIuqV+hlf+Ts/64aMsfSJJA6xdbdp9ddgVF
oqUl1M8vpmd4glxlSrYmEkbYwdI9uF2d6bAeaneBPJFZr6KQqlbbrVyeJZqmMlEPy0qPco1TIxrd
@danielVargas
danielVargas / private_key_develop.key
Created June 20, 2018 19:15
Llave privada de comercio para integración con WebPay
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA0ClVcH8RC1u+KpCPUnzYSIcmyXI87REsBkQzaA1QJe4w/B7g
6KvKV9DaqfnNhMvd9/ypmGf0RDQPhlBbGlzymKz1xh0lQBD+9MZrg8Ju8/d1k0pI
b1QLQDnhRgR2T14ngXpP4PIQKtq7DsdHBybFU5vvAKVqdHvImZFzqexbZjXWxxhT
+/sGcD4Vs673fc6B+Xj2UrKF7QyV5pMDq0HCCLTMmafWAmNrHyl6imQM+bqC12gn
EEAEkrJiSO6P/21m9iDJs5KQanpJby0aGW8mocYRHDMHZjtTiIP0+JAJgL9KsH+r
Xdk2bT7aere7TzOK/bEwhkYEXnMMt/65vV6AfwIDAQABAoIBAHnIlOn6DTi99eXl
KVSzIb5dA747jZWMxFruL70ifM+UKSh30FGPoBP8ZtGnCiw1ManSMk6uEuSMKMEF
5iboVi4okqnTh2WSC/ec1m4BpPQqxKjlfrdTTjnHIxrZpXYNucMwkeci93569ZFR
2SY/8pZV1mBkZoG7ocLmq+qwE1EaBEL/sXMvuF/h08nJ71I4zcclpB8kN0yFrBCW
@danielVargas
danielVargas / routes.rb
Created June 20, 2018 19:10
Rutas para WebPay
Rails.application.routes.draw do
##
##
## Tus rutas ##
## ...
##
#WebPay
post '/webpay/webpay_final_url', :to => 'webpay#webpay_final_url', :as => :webpay_result
post '/webpay/webpay_return_url', :to => 'webpay#webpay_return_url', :as => :webpay_return_url
get 'webpay/success', :to => 'payments#webpay_success', :as => :webpay_success
if Rails.env.production?
@ambient = 'PRODUCCION'
end
@danielVargas
danielVargas / variables.csv
Last active June 19, 2018 22:30
Variables del archivo Secrets.yml
Variable Contenido Explicación
webpay_wsdl 'https://webpay3gint.transbank.cl/WSWebpayTransaction/cxf/WSWebpayService?wsdl' 'Dirección del archivo WDSL que especifica los servicios de WebPay.'
webpay_client_certificate config/public_cert_develop.crt 'Certificado público del comercio. Debe ir en la carpeta config. Más adelante explicamos cómo generarlo.'
webpay_client_private_key config/private_key_develop.key 'Llave privada del comercio. Debe ir en la carpeta config. Más adelante explicamos cómo generarlo.'
webpay_tbk_certificate config/tbk_develop.key 'Certificado público Web Pay. Debe ir en la carpeta config. Más adelante explicamos cómo generarlo.'
webpay_commerce_code '597020000541' 'Código de comercio. En este caso se usa el de integración.'
webpay_return_url '/webpay/webpay_return_url' 'Variable que guarda la Return URL.'
webpay_final_url '/webpay/webpay_final_url' 'Variable que guarda la Final URL.'
webpay_ambient 'INTEGRACION' 'Ambiente en el que se está integrando el producto. Posteriormente será PROD