Servicio de notificación inmediata
Información general
ClickBank le ofrece un servicio de notificación instantánea que le informa acerca de las transacciones dentro del sistema de ClickBank para su cuenta. Envía datos casi en tiempo real para los siguientes tipos de acciones:
|
|
El servicio tiene el objetivo de publicar información a través de HTML FORM POST a una dirección URL especificada por usted. Cada publicación contiene un grupo de parámetros de dirección URL relevantes para la transacción. Con el fin de prevenir fraudes, uno de los parámetros, el campo cverify, se utiliza para verificar la validez de otros campos.
Observación: Este servicio está destinado para que lo usen programadores con experiencia. Los clientes sin amplias habilidades de programación deberían abstenerse de implementar las notificaciones instantáneas sin solicitar primero los servicios de un programador con experiencia.
Cómo funciona
El Servicio de notificación instantánea de Clickbank se activa cada vez que se lleva a cabo una transacción o se produce una acción en una transacción de su cuenta de ClickBank. El flujo principal incluye los siguientes pasos:
- Se produce una acción en el sistema de Clickbank (por ejemplo, una venta, una refacturación, un reembolso, etc.).
- ClickBank publica los parámetros FORM en la dirección URL que usted especificó.
- Clickbank analiza la respuesta del servidor.
- El programa que usted generó procesa las variables.
Configurar el servicio en su cuenta de ClickBank es simple. Sin embargo, también es necesario generar un programa que procese los parámetros de la notificación instantánea para la dirección URL, lo que es una tarea más técnica. Con el fin de utilizar correctamente este servicio, su programa debe procesar por lo menos los parámetros descritos en la sección Parámetros para dirección URL de este documento.
Qué se debe saber
Para que el Servicio de notificación instantánea funcione correctamente, usted necesita comprender los siguientes puntos. No comprender ni implementar correctamente estos puntos podría tener como consecuencia la eliminación de las notificaciones instantáneas de su cuenta.
- Qué significa enviar un HTML FORM POST a una dirección URL
- Cuáles son los Parámetros para una dirección URL
- Qué es una Clave secreta
- Cómo implementar el proceso para Cifrar
- La importancia de utilizar la Capa de socket seguro (SSL)
- Las consecuencias del Monitoreo del código de respuesta
Si usted no comprende uno o más de los puntos detallados anteriormente, le recomendamos que solicite los servicios de un profesional que comprenda estos puntos de implementación. No seguir esta recomendación podría traer como consecuencia la eliminación de esta función de su cuenta.
Cómo comenzar
Comprensión de la notificación instantánea
Antes de implementar esta función, debería familiarizarse con la siguiente información.
Parámetros para dirección URL
Los siguientes parámetros para dirección URL se transfieren desde el Servicio de notificación instantánea de ClickBank.
| Parámetro | Descripción | Detalle |
| ccustname | nombre del cliente | 1-510 caracteres |
| ccuststate | estado del cliente | 0-2 caracteres |
| ccustcc | código de país del cliente | 0-2 caracteres |
| ccustemail | correo electrónico del cliente | 1-255 caracteres |
| cproditem | número de producto de Clickbank | 1-5 caracteres |
| cprodtitle | título del producto en el momento de la compra | 0-255 caracteres |
| cprodtype | tipo de producto de la transacción (ESTÁNDAR y RECURRENTE) | 8-11 caracteres |
| ctransaction * | acción tomada | 4-15 caracteres |
| ctransaffiliate | afiliado de la transacción | 0-10 caracteres |
| ctransamount | monto pagado a la parte que recibe la notificación (en centavos [1000 = $10,00]) | 3-10 caracteres |
| ctranspaymentmethod | método de pago del cliente | 0-4 caracteres |
| ctranspublisher | proveedor de la transacción | 5-10 caracteres |
| ctransreceipt | número de recibo de ClickBank | 8-13 caracteres |
| caffitid | identificación de seguimiento del afiliado | 0 a 24 caracteres |
| cvendthru | información adicional pasada al formulario de pedido con la eliminación de la información duplicada | 0-1024 caracteres |
| cverify ** | el parámetro “cverify” se utiliza para verificar la validez de los campos anteriores | 8 caracteres |
| ctranstime ** | período de tiempo en el que se produjo la transacción (no está incluido en cverify) | 10 caracteres |
| * Ver “Tipos de transacción” ** Ver “Cifrar” |
Cuando el parámetro no contenga ningún valor, la cadena de la notificación instantánea contendrá la etiqueta del parámetro sin ningún valor. También es posible que el Servicio de notificación instantánea envíe más de una PUBLICACIÓN en una sola recepción. Para obtener más información, consulte la Sección de preguntas frecuentes de este documento.
Tipos de transacciones
Existen varios valores que puede recibir en el parámetro ctransaction. Estos valores se detallan a continuación con una breve descripción de su propósito.
| Tipo | Descripción |
| VENTA | La compra de un producto estándar o la compra inicial de un producto de facturación recurrente. |
| FACTURA | La refacturación de un producto de facturación recurrente. |
| REEMBOLSO | El reembolso de un producto estándar o de facturación recurrente. Los productos de facturación recurrente que requieren reembolso también generan la “CANCELACIÓN DE LA REFACTURACIÓN”. |
| CONTRACARGO | Un contracargo por un producto estándar o recurrente. |
| INSF | Un contracargo de una transferencia electrónica de fondos por un producto estándar o recurrente. |
| CANCELAR-REFACTURACIÓN | La cancelación de un producto de facturación recurrente. Los productos de facturación recurrente que se cancelan no traen como consecuencia ninguna otra acción. |
| NO CANCELAR-REFACTURACIÓN | Revertir la cancelación de un producto de facturación recurrente. |
| PRUEBA | Se acciona al utilizar el enlace prueba en la página del sitio. |
Métodos de pago
Existen varios valores que puede recibir en el parámetro “ctranspaymentmethod”. Estos valores se detallan a continuación.
- PYPL
- VISA
- MSTR
- DISC
- AMEX
- SWIT
- SOLO
- JCBC
- DNRS
- ENRT
- AUST
- BLME
- STVA
Capa de socket seguro (SSL)
Se recomienda encarecidamente que utilice esta función con la capa de socket seguro (SSL) habilitada. Si utiliza esta función sin la capa de socket seguro (SSL) habilitada, podría exponer los datos de sus ventas para que se los roben por Internet. No obstante, debido a que la información del banco y de la tarjeta de crédito no se transmite a través del servicio de notificación instantánea, ClickBank no solicita que la capa de socket seguro (SSL) cifre las transmisiones de las notificaciones instantáneas.
Monitoreo de respuesta codificado (Lógica Reintentar)
El servicio de notificación instantánea procura ENVIAR la información mediante HTML a la dirección URL especificada en la página Mi sitio. Si nuestro intento de envío recibe un código de respuesta de su sistema diferente de 200, ClickBank reintentará enviar los datos una hora después. El servicio continuará reintentando una vez cada hora durante 72 horas; pasado este período, la función dejará de intentar realizar el envío.
Cifrar (Para prevenir el fraude)
Cifrar es un método en el que se llevan a cabo actividades de cifrado y descifrado. Garantiza que no ha habido una alteración de la dirección URL de los parámetros de la cadena de consulta.
Cuando se produce una acción dentro de su cuenta de ClickBank, se pasan varios valores en la cadena de consulta de la notificación instantánea (ver Parámetros para dirección URL). Al constituir la cadena, creamos sha1 o un hash de los valores pasados y su Clave secreta. El resultado es el parámetro cverify. Al recibir los parámetros de la cadena de consulta, su sistema también deberá crear un sha1 o un hash de los valores pasados y su Clave secreta.
La validez de los datos recibidos se evalúa mediante el uso del parámetro cverify que enviamos y el valor que se produce en su sistema. Solamente si hay una coincidencia exacta entre los dos valores podrá asegurarse de que la información que recibió no haya sido alterada.
Observación: El parámetro ctranstime no está incluido en el algoritmo de cifrado para el parámetro cverify.
Para ver más ejemplos, consulte Ejemplos de código.
Implementación
Luego de lograr una comprensión acabada de la sección anterior de este documento, le recomendamos que pruebe la función antes de implementarla. Luego de completar una prueba exitosa, usted podrá configurar su cuenta para tener el Servicio de notificación instantánea.
Solicitud de acceso
Realice una solicitud de acceso al Servicio de notificación instantánea siguiendo los pasos que se detallan a continuación:
- Inicie sesión en su cuenta.
- Haga clic en la ficha Configuración de la cuenta.
- Haga clic en Mi sitio en la subnavegación.
- Ubique el campo Notificación instantánea y seleccione “Hacer clic AQUÍ” para solicitar acceso al hipervínculo.
- Complete el formulario y revise detenidamente las condiciones de uso.
- Haga clic en el botón Enviar ubicado al pie del formulario.
Prueba de conectividad y procesamiento
Pruebe la conectividad y el procesamiento satisfactorios de los parámetros para dirección URL entre ClickBank y su servidor, siguiendo los pasos que se detallan a continuación:
- Inicie sesión en su cuenta.
- Haga clic en la ficha Configuración de la cuenta.
- Haga clic en Mi sitio en la subnavegación.
- Ingrese la dirección URL donde quiere que ClickBank envíe las notificaciones, en el campo 1 de la Notificación instantánea
- Haga clic en Prueba a la derecha de la dirección URL
- Revise la respuesta en la ventana emergente para verificar que la prueba fue satisfactoria.
Observación: No haga clic en Guardar cambios
Si la prueba no fue satisfactoria, elimine la dirección URL del campo Notificación instantánea e intente solucionar los posibles problemas con la conectividad o con su programación.
Importante: No debería introducir datos en el campo Notificación instantánea a menos que haya obtenido una prueba exitosa. Si realiza lo contrario, su acceso podría ocasionar la desactivación de la función.
Se pasan los siguientes parámetros y valores de notificación instantánea en cada ejecución de la prueba.
| Parámetro | Valor |
| ccustname | Prueba de usuario |
| ccuststate | |
| ccustcc | |
| ccustemail | testuser@somesite.com |
| cproditem | 399 |
| cprodtitle | Aprobado en título |
| cprodtype | ESTÁNDAR |
| ctransaction | PRUEBA |
| ctransaffiliate | |
| ctransamount | 100 |
| ctranspaymentmethod | VISA |
| ctranspublisher | Usuario del proveedor real |
| ctransreceipt | XXXXXXXX |
| caffitid | |
| cvendthru | |
| cverify | Cverify real |
Configuración de la cuenta
Ahora que ya ha obtenido el acceso a la función y ha realizado una prueba exitosa, está listo para completar la configuración de la cuenta del Servicio de notificación instantánea. Configurar el servicio es simple, simplemente incluye los siguientes pasos.
- Inicie sesión en su cuenta.
- Haga clic en la ficha Configuración de la cuenta.
- Haga clic en Mi sitio en la subnavegación.
- Introduzca una clave secreta en la página Mi sitio.
- Introduzca la dirección URL de la notificación instantánea en el campo 1 de la notificación instantánea (puertos 80 o 443 – Se recomienda utilizar SSL).
- Haga clic en Prueba a la derecha de la dirección URL antes de guardar los cambios.
- Revise la respuesta en la ventana emergente para verificar que la prueba fue satisfactoria.
- Haga clic en Guardar cambios.
Una vez que se termina con la configuración, las transmisiones de Notificación instantánea comenzarán inmediatamente.
Desactivar
Al eliminar la dirección URL del campo de Notificación instantánea en la página Mi sitio, el sistema dejará de enviar notificaciones.
Preguntas frecuentes
P: No soy programador experimentado. ¿Debería intentar implementar las Notificaciones instantáneas de ClickBank?
R: No. Hay varios aspectos del Servicio de notificación instantánea que hacen necesaria la experiencia en programación.
P: ¿También es posible que el Servicio de notificación instantánea envíe más de una PUBLICACIÓN en una sola recepción?
R: Sí. Existen varias situaciones en las que esto es probable. Por ejemplo, recibirá varias PUBLICACIONES por una sola transacción si se otorga un reembolso y luego se revierte la situación. Esto generará el envío de una PUBLICACIÓN por una acción de REEMBOLSO y luego una publicación por una acción de VENTA. La primera acción es el resultado de un reembolso de la venta original. La segunda acción es el resultado de la rehabilitación de la venta.
P: ¿Cómo detengo las PUBLICACIONES que recibo a través del Servicio de notificación instantánea de ClickBank?
R: Al eliminar la dirección URL de Notificación instantánea en la página Mi sitio, el sistema dejará de enviar notificaciones.
P: ¿Siempre recibiré todos los parámetros o solamente cuando estos contengan valores?
R: Siempre recibirá todos los parámetros. Cuando el parámetro no contenga ningún valor, la cadena de la notificación instantánea contendrá la etiqueta del parámetro sin ningún valor.
P: ¿Por qué algunos parámetros tienen un 0 en el número que se espera de caracteres?
R: Estos parámetros podrían no contener ningún valor durante la publicación, por lo cual están incluidos con la posibilidad de tener 0 caracteres.
P: ¿Es necesario que utilice una SSL con el Servicio de notificación instantánea?
R: No es obligación, pero se recomienda enfáticamente, ya que le proporciona protección contra ladrones en Internet.
P: ¿Es necesario que utilice el proceso de Cifrar con el Servicio de notificación instantánea?
R: Es obligación. Debe agregar una clave secreta a su cuenta para habilitar las Notificaciones instantáneas.
P: ¿Los ejemplos de código que proporciona ClickBank son totalmente funcionales y están listos para usar?
R: No. En la mayoría de los casos, los ejemplos de código deben insertarse en un programa. Si usted no comprende cómo hacerlo, le recomendamos que solicite los servicios de un programador profesional.
P: ¿La notificación instantánea de ClickBank funcionará con un certificado SSL con firma propia?
R: No. Se necesita un certificado válido.
P: ¿Es posible probar el Servicio de notificación instantánea antes de implementarlo?
R: Sí. Pruebe la conectividad y procesamiento entre ClickBank y su servidor siguiendo los pasos que se detallan a continuación:
- Ingrese la dirección URL adonde quiere que ClickBank envíe las notificaciones.
- Haga clic en Prueba a la derecha de la dirección URL antes de guardar los cambios.
- Revise la respuesta en la ventana emergente para verificar que la prueba fue satisfactoria.
P: ¿Puedo enviar notificaciones a más de una dirección URL?
R: Sí. Se puede agregar una segunda dirección URL de notificaciones luego de haber guardado la primera. Observación: Se aplican todas las mismas reglas a la segunda dirección URL de notificaciones.
Muestras de códigos
Los datos que se le envían mediante el Servicio de notificación instantánea tienen los parámetros HTML FORM POST para una dirección URL. Los programas escritos dentro de la estructura de su aplicación deberán procesar estos pares. Es posible que los programas para administración de pedidos, actividad de bases de datos y otros servicios sean escritos, pero no están incluidos en esta guía.
JAVA
Cifrar (Validación del código de procesamiento)
El siguiente código Java creará el valor cverify y verificará si es correcto utilizar los valores de texto simple en el HTTP POST y su clave secreta.
Observación: Para esto es necesario que la biblioteca jakarta commons codec sea operativa.
Ejemplo de código
public boolean validateApiNotification(HttpServletRequest request) { String cverify = request.getParameter("cverify"); String pop = String.format("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s", request.getParameter("ccustname"), request.getParameter("ccustemail"), request.getParameter("ccustcc"), request.getParameter("ccuststate"), request.getParameter("ctransreceipt"), request.getParameter("cproditem"), request.getParameter("ctransaction"), request.getParameter("ctransaffiliate"), request.getParameter("ctranspublisher"), request.getParameter("cprodtype"), request.getParameter("cprodtitle"), request.getParameter("ctranspaymentmethod"), request.getParameter("ctransamount"), request.getParameter("caffitid"), request.getParameter("cvendthru"), "YOUR SECRET KEY"); return cverify.equalsIgnoreCase(DigestUtils.shaHex(pop).substring(0, 8)); }
PHP
Cifrar (Validación del código de procesamiento)
El siguiente PHP creará el valor cverify y verificará si es correcto utilizar los valores de texto simple en el HTTP POST y su clave secreta (es decir, no una dirección URL codificada).
Tipos de respuesta:
1 = Aprobado
0 = Reprobado
Ejemplo de código
<?php
function cbValid() {
$key='YOUR SECRET KEY';
$ccustname = $_REQUEST['ccustname'];
$ccustemail = $_REQUEST['ccustemail'];
$ccustcc = $_REQUEST['ccustcc'];
$ccuststate = $_REQUEST['ccuststate'];
$ctransreceipt = $_REQUEST['ctransreceipt'];
$cproditem = $_REQUEST['cproditem'];
$ctransaction = $_REQUEST['ctransaction'];
$ctransaffiliate = $_REQUEST['ctransaffiliate'];
$ctranspublisher = $_REQUEST['ctranspublisher'];
$cprodtype = $_REQUEST['cprodtype'];
$cprodtitle = $_REQUEST['cprodtitle'];
$ctranspaymentmethod = $_REQUEST['ctranspaymentmethod'];
$ctransamount = $_REQUEST['ctransamount'];
$caffitid = $_REQUEST['caffitid'];
$cvendthru = $_REQUEST['cvendthru'];
$cbpop = $_REQUEST['cverify'];
$xxpop = sha1("$ccustname|$ccustemail|$ccustcc|$ccuststate|$ctransreceipt|$cproditem|$ctransaction|"
."$ctransaffiliate|$ctranspublisher|$cprodtype|$cprodtitle|$ctranspaymentmethod|$ctransamount|$caffitid|$cvendthru|$key");
$xxpop=strtoupper(substr($xxpop,0,8));
if ($cbpop==$xxpop) return 1;
else return 0;
}
?>


