
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
pt-card-sdk
Advanced tools
SDK para embeber formulario de tarjeta via iframe y comunicar token por postMessage
CardSDK es un SDK de JavaScript para integrar formularios de pago de manera segura en aplicaciones web. Utiliza iframes para mantener la seguridad de los datos de tarjetas de crédito.
npm install pt-card-sdk
<script src="./dist/card-sdk.js"></script>
// ES6 Modules
import CardSDK from 'pt-card-sdk';
// CommonJS
const CardSDK = require('pt-card-sdk');
// AMD
define(['pt-card-sdk'], function(CardSDK) {
// usar CardSDK
});
const sdk = new CardSDK({
mountId: 'card-form',
frameUrl: 'https://tu-servidor.com/sdk/demo-events',
// Eventos automáticamente registrados
onSuccess: function(data) {
console.log('Pago exitoso:', data);
},
onError: function(error) {
console.error('Error en el pago:', error);
},
onReady: function() {
console.log('SDK listo');
},
onValidation: function(validation) {
console.log('Validación:', validation);
}
});
// Inicializar
sdk.init();
<div id="card-form"></div>
new CardSDK(options)
| Opción | Tipo | Requerido | Descripción |
|---|---|---|---|
mountId | string | ✅ | ID del elemento donde se montará el iframe |
frameUrl | string | ✅ | URL del iframe de pago |
onSuccess | function | ❌ | Callback para pagos exitosos |
onError | function | ❌ | Callback para errores |
onReady | function | ❌ | Callback cuando el SDK está listo |
onValidation | function | ❌ | Callback para validaciones |
onCancel | function | ❌ | Callback cuando el usuario cancela |
onTimeout | function | ❌ | Callback para timeouts |
onLoad | function | ❌ | Callback cuando el iframe se carga |
onResize | function | ❌ | Callback cuando el iframe cambia de tamaño |
* | any | ❌ | Cualquier otra propiedad se inyectará como query parameter en la URL |
init()Inicializa el SDK y monta el iframe en el contenedor especificado.
sdk.init();
on(eventType, callback)Registra un listener para un evento específico.
sdk.on('customEvent', function(data) {
console.log('Evento personalizado:', data);
});
emit(eventType, payload)Emite un evento (principalmente para uso interno).
sdk.emit('customEvent', { message: 'Hola' });
onSuccess: Se dispara cuando el pago se procesa exitosamenteonError: Se dispara cuando ocurre un erroronReady: Se dispara cuando el SDK está completamente inicializadoonValidation: Se dispara durante validaciones de formularioPuedes escuchar eventos personalizados usando el método on():
sdk.on('customEvent', function(data) {
// Manejar evento personalizado
});
Ver examples/complete-example.html para un ejemplo completo con:
Ver examples/angularjs-example.html para integración con AngularJS.
const sdk = new CardSDK({
mountId: 'card-form',
frameUrl: 'https://tu-servidor.com/sdk/demo-events',
// Parámetros que se inyectarán automáticamente en la URL
userId: '12345',
sessionId: 'abc-def-ghi-jkl',
theme: 'dark',
language: 'es',
customData: 'valor-personalizado',
onSuccess: function(data) {
console.log('Pago exitoso:', data);
},
onError: function(error) {
console.error('Error:', error);
}
});
sdk.init();
// La URL final será: https://tu-servidor.com/sdk/demo-events?userId=12345&sessionId=abc-def-ghi-jkl&theme=dark&language=es&customData=valor-personalizado
import CardSDK from 'pt-card-sdk';
class PaymentComponent {
constructor() {
this.sdk = null;
}
initPayment() {
this.sdk = new CardSDK({
mountId: 'payment-container',
frameUrl: process.env.PAYMENT_IFRAME_URL,
onSuccess: (data) => this.handleSuccess(data),
onError: (error) => this.handleError(error)
});
this.sdk.init();
}
handleSuccess(data) {
// Redirigir o mostrar mensaje de éxito
}
handleError(error) {
// Mostrar mensaje de error
}
}
sdk/
├── src/
│ └── index.js # Código fuente principal
├── dist/
│ └── card-sdk.js # Build compilado
├── examples/
│ ├── complete-example.html
│ └── angularjs-example.html
├── package.json
├── webpack.config.js
└── README.md
# Instalar dependencias
npm install
# Compilar el SDK
npm run build
# Publicar a NPM
npm publish
El SDK se compila usando Webpack con configuración UMD, lo que permite su uso en:
postMessageAsegúrate de que el elemento con el mountId especificado existe en el DOM antes de llamar init().
Si usas bundlers, asegúrate de importar correctamente:
// ✅ Correcto
import CardSDK from 'pt-card-sdk';
// ❌ Incorrecto
import { CardSDK } from 'pt-card-sdk';
Verifica que:
frameUrl sea correcta y accesibleMIT License
Para reportar bugs o solicitar features, por favor crea un issue en el repositorio del proyecto.
FAQs
SDK para embeber formulario de tarjeta via iframe y comunicar token por postMessage
We found that pt-card-sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.