@easyflow/javascript-sdk 2.1.7 → 2.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +294 -713
- package/dist/index.d.ts +421 -0
- package/package.json +19 -6
- package/.babelrc +0 -5
- package/.github/workflows/deploy-sdk-cf.yml +0 -49
- package/.github/workflows/release-sdk-cdn.yml +0 -144
- package/.github/workflows/release-sdk.yml +0 -112
- package/.prettierrc +0 -6
- package/CDN-DEPLOYMENT.md +0 -175
- package/DEMO.md +0 -258
- package/DEPLOYMENT.md +0 -224
- package/INTEGRATION-GUIDE.md +0 -521
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/easyflow-javascript-sdk/index.html +0 -116
- package/coverage/easyflow-javascript-sdk/libs/constants.mjs.html +0 -268
- package/coverage/easyflow-javascript-sdk/libs/errors.mjs.html +0 -271
- package/coverage/easyflow-javascript-sdk/libs/exception-handler.mjs.html +0 -148
- package/coverage/easyflow-javascript-sdk/libs/fingerprint.mjs.html +0 -895
- package/coverage/easyflow-javascript-sdk/libs/http.mjs.html +0 -502
- package/coverage/easyflow-javascript-sdk/libs/index.html +0 -266
- package/coverage/easyflow-javascript-sdk/libs/logger.mjs.html +0 -568
- package/coverage/easyflow-javascript-sdk/libs/sanitizer.mjs.html +0 -1099
- package/coverage/easyflow-javascript-sdk/libs/security.mjs.html +0 -733
- package/coverage/easyflow-javascript-sdk/libs/types.mjs.html +0 -508
- package/coverage/easyflow-javascript-sdk/libs/utils.mjs.html +0 -379
- package/coverage/easyflow-javascript-sdk/libs/validator.mjs.html +0 -2623
- package/coverage/easyflow-javascript-sdk/sdk.mjs.html +0 -2434
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -131
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/easyflow-javascript-sdk/index.html +0 -116
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/constants.mjs.html +0 -268
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/errors.mjs.html +0 -271
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/exception-handler.mjs.html +0 -148
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/fingerprint.mjs.html +0 -895
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/http.mjs.html +0 -502
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/index.html +0 -266
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/logger.mjs.html +0 -568
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/sanitizer.mjs.html +0 -1099
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/security.mjs.html +0 -733
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/types.mjs.html +0 -508
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/utils.mjs.html +0 -379
- package/coverage/lcov-report/easyflow-javascript-sdk/libs/validator.mjs.html +0 -2623
- package/coverage/lcov-report/easyflow-javascript-sdk/sdk.mjs.html +0 -2434
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -131
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov.info +0 -1429
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -196
- package/dist/435.easyflow-sdk.min.js +0 -1
- package/dist/easyflow-sdk.min.js +0 -1
- package/dist/easyflow-sdk.min.js.LICENSE.txt +0 -1
- package/dist/index.html +0 -756
- package/docs/index.html +0 -775
- package/examples/lovable-integration.html +0 -410
- package/index.html +0 -981
- package/jest.config.js +0 -37
- package/jsdoc.json +0 -42
- package/libs/auto-integration.mjs +0 -333
- package/libs/constants.mjs +0 -61
- package/libs/constants.spec.js +0 -198
- package/libs/errors.mjs +0 -62
- package/libs/errors.spec.js +0 -178
- package/libs/exception-handler.mjs +0 -21
- package/libs/exception-handler.spec.js +0 -237
- package/libs/fingerprint.mjs +0 -270
- package/libs/http.mjs +0 -163
- package/libs/http.spec.js +0 -427
- package/libs/integration-wrapper.mjs +0 -285
- package/libs/logger.mjs +0 -161
- package/libs/logger.spec.js +0 -389
- package/libs/sanitizer.mjs +0 -340
- package/libs/sanitizer.spec.js +0 -583
- package/libs/security.mjs +0 -217
- package/libs/types.mjs +0 -141
- package/libs/utils.mjs +0 -368
- package/libs/utils.spec.js +0 -231
- package/libs/validator.mjs +0 -952
- package/libs/validator.spec.js +0 -615
- package/mocks/offer.mock.js +0 -77
- package/scripts/publish-npm.sh +0 -82
- package/sdk.mjs +0 -945
- package/sdk.spec.js +0 -796
- package/test-setup.cjs +0 -211
- package/test.html +0 -154
- package/webpack.config.cjs +0 -41
|
@@ -1,410 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="pt-BR">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>Easyflow SDK - Integração Lovable</title>
|
|
7
|
-
<style>
|
|
8
|
-
body {
|
|
9
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',
|
|
10
|
-
Roboto, sans-serif;
|
|
11
|
-
max-width: 1200px;
|
|
12
|
-
margin: 0 auto;
|
|
13
|
-
padding: 20px;
|
|
14
|
-
background: #f8fafc;
|
|
15
|
-
}
|
|
16
|
-
.container {
|
|
17
|
-
background: white;
|
|
18
|
-
border-radius: 12px;
|
|
19
|
-
padding: 30px;
|
|
20
|
-
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
|
21
|
-
margin-bottom: 20px;
|
|
22
|
-
}
|
|
23
|
-
.header {
|
|
24
|
-
text-align: center;
|
|
25
|
-
margin-bottom: 40px;
|
|
26
|
-
}
|
|
27
|
-
.header h1 {
|
|
28
|
-
color: #1e293b;
|
|
29
|
-
margin-bottom: 10px;
|
|
30
|
-
}
|
|
31
|
-
.header p {
|
|
32
|
-
color: #64748b;
|
|
33
|
-
font-size: 18px;
|
|
34
|
-
}
|
|
35
|
-
.code-block {
|
|
36
|
-
background: #1e293b;
|
|
37
|
-
color: #e2e8f0;
|
|
38
|
-
padding: 20px;
|
|
39
|
-
border-radius: 8px;
|
|
40
|
-
overflow-x: auto;
|
|
41
|
-
margin: 20px 0;
|
|
42
|
-
font-family: 'Monaco', 'Menlo', monospace;
|
|
43
|
-
font-size: 14px;
|
|
44
|
-
}
|
|
45
|
-
.step {
|
|
46
|
-
margin-bottom: 30px;
|
|
47
|
-
}
|
|
48
|
-
.step h3 {
|
|
49
|
-
color: #1e293b;
|
|
50
|
-
border-bottom: 2px solid #3b82f6;
|
|
51
|
-
padding-bottom: 8px;
|
|
52
|
-
margin-bottom: 15px;
|
|
53
|
-
}
|
|
54
|
-
.example {
|
|
55
|
-
background: #f1f5f9;
|
|
56
|
-
border-left: 4px solid #3b82f6;
|
|
57
|
-
padding: 15px;
|
|
58
|
-
margin: 15px 0;
|
|
59
|
-
border-radius: 0 8px 8px 0;
|
|
60
|
-
}
|
|
61
|
-
.button {
|
|
62
|
-
background: #3b82f6;
|
|
63
|
-
color: white;
|
|
64
|
-
border: none;
|
|
65
|
-
padding: 12px 24px;
|
|
66
|
-
border-radius: 6px;
|
|
67
|
-
cursor: pointer;
|
|
68
|
-
font-size: 16px;
|
|
69
|
-
margin: 10px 5px;
|
|
70
|
-
transition: background 0.2s;
|
|
71
|
-
}
|
|
72
|
-
.button:hover {
|
|
73
|
-
background: #2563eb;
|
|
74
|
-
}
|
|
75
|
-
.button.secondary {
|
|
76
|
-
background: #64748b;
|
|
77
|
-
}
|
|
78
|
-
.button.secondary:hover {
|
|
79
|
-
background: #475569;
|
|
80
|
-
}
|
|
81
|
-
.result {
|
|
82
|
-
background: #f0fdf4;
|
|
83
|
-
border: 1px solid #bbf7d0;
|
|
84
|
-
border-radius: 6px;
|
|
85
|
-
padding: 15px;
|
|
86
|
-
margin: 15px 0;
|
|
87
|
-
font-family: monospace;
|
|
88
|
-
}
|
|
89
|
-
.error {
|
|
90
|
-
background: #fef2f2;
|
|
91
|
-
border: 1px solid #fecaca;
|
|
92
|
-
color: #dc2626;
|
|
93
|
-
}
|
|
94
|
-
.success {
|
|
95
|
-
background: #f0fdf4;
|
|
96
|
-
border: 1px solid #bbf7d0;
|
|
97
|
-
color: #16a34a;
|
|
98
|
-
}
|
|
99
|
-
.tabs {
|
|
100
|
-
display: flex;
|
|
101
|
-
border-bottom: 1px solid #e2e8f0;
|
|
102
|
-
margin-bottom: 20px;
|
|
103
|
-
}
|
|
104
|
-
.tab {
|
|
105
|
-
padding: 12px 24px;
|
|
106
|
-
cursor: pointer;
|
|
107
|
-
border-bottom: 2px solid transparent;
|
|
108
|
-
transition: all 0.2s;
|
|
109
|
-
}
|
|
110
|
-
.tab.active {
|
|
111
|
-
border-bottom-color: #3b82f6;
|
|
112
|
-
color: #3b82f6;
|
|
113
|
-
}
|
|
114
|
-
.tab-content {
|
|
115
|
-
display: none;
|
|
116
|
-
}
|
|
117
|
-
.tab-content.active {
|
|
118
|
-
display: block;
|
|
119
|
-
}
|
|
120
|
-
</style>
|
|
121
|
-
</head>
|
|
122
|
-
<body>
|
|
123
|
-
<div class="header">
|
|
124
|
-
<h1>🚀 Easyflow SDK - Integração Lovable</h1>
|
|
125
|
-
<p>Integração NO BRAINER para plataformas low-code/no-code</p>
|
|
126
|
-
</div>
|
|
127
|
-
|
|
128
|
-
<!-- Tabs de Integração -->
|
|
129
|
-
<div class="tabs">
|
|
130
|
-
<div class="tab active" onclick="showTab('lovable')">
|
|
131
|
-
Lovable.dev
|
|
132
|
-
</div>
|
|
133
|
-
<div class="tab" onclick="showTab('bubble')">Bubble</div>
|
|
134
|
-
<div class="tab" onclick="showTab('webflow')">Webflow</div>
|
|
135
|
-
<div class="tab" onclick="showTab('zapier')">Zapier</div>
|
|
136
|
-
</div>
|
|
137
|
-
|
|
138
|
-
<!-- Tab Lovable -->
|
|
139
|
-
<div id="lovable" class="tab-content active">
|
|
140
|
-
<div class="container">
|
|
141
|
-
<div class="step">
|
|
142
|
-
<h3>1. Inclusão do SDK</h3>
|
|
143
|
-
<p>Adicione o SDK no seu projeto Lovable:</p>
|
|
144
|
-
<div class="code-block">
|
|
145
|
-
<!-- Incluir o SDK Easyflow --> <script
|
|
146
|
-
src="https://easyflow-sdk.pages.dev/easyflow-sdk.min.js"></script>
|
|
147
|
-
<!-- Ou via jsDelivr --> <script
|
|
148
|
-
src="https://cdn.jsdelivr.net/npm/@easyflow/javascript-sdk@latest/dist/easyflow-sdk.min.js"></script>
|
|
149
|
-
</div>
|
|
150
|
-
</div>
|
|
151
|
-
|
|
152
|
-
<div class="step">
|
|
153
|
-
<h3>2. Inicialização Automática</h3>
|
|
154
|
-
<p>
|
|
155
|
-
O SDK se inicializa automaticamente e expõe todas as
|
|
156
|
-
funcionalidades:
|
|
157
|
-
</p>
|
|
158
|
-
<div class="code-block">
|
|
159
|
-
// Configuração automática para Lovable
|
|
160
|
-
window.easyflowSDK = { // Todas as funcionalidades
|
|
161
|
-
disponíveis automaticamente createCustomer:
|
|
162
|
-
function(data) { /* ... */ }, placeOrder:
|
|
163
|
-
function(offerId, data) { /* ... */ }, charge:
|
|
164
|
-
function(data) { /* ... */ }, // ... e muito mais } //
|
|
165
|
-
Configurar callbacks para eventos
|
|
166
|
-
easyflowSDK.on('customerCreated', function(customer) {
|
|
167
|
-
console.log('Cliente criado:', customer); // Atualizar
|
|
168
|
-
UI do Lovable }); easyflowSDK.on('paymentProcessed',
|
|
169
|
-
function(result) { console.log('Pagamento processado:',
|
|
170
|
-
result); // Redirecionar ou atualizar status });
|
|
171
|
-
</div>
|
|
172
|
-
</div>
|
|
173
|
-
|
|
174
|
-
<div class="step">
|
|
175
|
-
<h3>3. Exemplo de Uso no Lovable</h3>
|
|
176
|
-
<p>Use diretamente nas suas ações e workflows:</p>
|
|
177
|
-
<div class="code-block">
|
|
178
|
-
// Criar cliente const customerResult = await
|
|
179
|
-
easyflowSDK.createCustomer({ name: "João Silva", email:
|
|
180
|
-
"joao@exemplo.com", document: { type: "CPF", number:
|
|
181
|
-
"12345678909" } }); if (customerResult.success) { //
|
|
182
|
-
Cliente criado com sucesso const customerId =
|
|
183
|
-
customerResult.data.id; // Processar pagamento const
|
|
184
|
-
paymentResult = await
|
|
185
|
-
easyflowSDK.placeOrder('offer-123', { buyer:
|
|
186
|
-
customerResult.data, payments: [{ method: 'credit-card',
|
|
187
|
-
creditCard: { number: '4111111111111111', holderName:
|
|
188
|
-
'João Silva', month: '12', year: '2025', cvv: '123' } }]
|
|
189
|
-
}); if (paymentResult.success) { console.log('Pedido
|
|
190
|
-
criado:', paymentResult.data); } }
|
|
191
|
-
</div>
|
|
192
|
-
</div>
|
|
193
|
-
|
|
194
|
-
<div class="step">
|
|
195
|
-
<h3>4. Validação Automática</h3>
|
|
196
|
-
<p>Validação de dados integrada:</p>
|
|
197
|
-
<div class="code-block">
|
|
198
|
-
// Validar dados antes de enviar const emailValid =
|
|
199
|
-
easyflowSDK.validate.email('joao@exemplo.com'); const
|
|
200
|
-
cpfValid = easyflowSDK.validate.cpf('12345678909'); if
|
|
201
|
-
(emailValid && cpfValid) { // Dados válidos, prosseguir
|
|
202
|
-
const result = await
|
|
203
|
-
easyflowSDK.createCustomer(customerData); } else { //
|
|
204
|
-
Mostrar erro na UI do Lovable showError('Dados
|
|
205
|
-
inválidos'); }
|
|
206
|
-
</div>
|
|
207
|
-
</div>
|
|
208
|
-
</div>
|
|
209
|
-
</div>
|
|
210
|
-
|
|
211
|
-
<!-- Tab Bubble -->
|
|
212
|
-
<div id="bubble" class="tab-content">
|
|
213
|
-
<div class="container">
|
|
214
|
-
<h3>Integração com Bubble</h3>
|
|
215
|
-
<p>
|
|
216
|
-
Use o SDK diretamente no Bubble através de JavaScript
|
|
217
|
-
personalizado:
|
|
218
|
-
</p>
|
|
219
|
-
<div class="code-block">
|
|
220
|
-
// No Bubble, adicione este JavaScript personalizado // após
|
|
221
|
-
incluir o SDK Easyflow // Configurar callbacks para eventos
|
|
222
|
-
do Bubble easyflowSDK.on('customerCreated',
|
|
223
|
-
function(customer) { // Atualizar campo no Bubble
|
|
224
|
-
bubble_fn_updateCustomer(customer); });
|
|
225
|
-
easyflowSDK.on('paymentProcessed', function(result) { //
|
|
226
|
-
Atualizar status do pagamento
|
|
227
|
-
bubble_fn_updatePaymentStatus(result); }); // Função para
|
|
228
|
-
criar cliente no Bubble async function
|
|
229
|
-
bubbleCreateCustomer(customerData) { const result = await
|
|
230
|
-
easyflowSDK.createCustomer(customerData); return result; }
|
|
231
|
-
</div>
|
|
232
|
-
</div>
|
|
233
|
-
</div>
|
|
234
|
-
|
|
235
|
-
<!-- Tab Webflow -->
|
|
236
|
-
<div id="webflow" class="tab-content">
|
|
237
|
-
<div class="container">
|
|
238
|
-
<h3>Integração com Webflow</h3>
|
|
239
|
-
<p>
|
|
240
|
-
Adicione o SDK no Webflow e use com JavaScript
|
|
241
|
-
personalizado:
|
|
242
|
-
</p>
|
|
243
|
-
<div class="code-block">
|
|
244
|
-
// No Webflow, adicione este código JavaScript // após
|
|
245
|
-
incluir o SDK Easyflow // Configurar formulário de checkout
|
|
246
|
-
document.getElementById('checkout-form').addEventListener('submit',
|
|
247
|
-
async function(e) { e.preventDefault(); const formData = new
|
|
248
|
-
FormData(this); const customerData = { name:
|
|
249
|
-
formData.get('name'), email: formData.get('email'),
|
|
250
|
-
document: { type: 'CPF', number: formData.get('cpf') } }; //
|
|
251
|
-
Validar dados if
|
|
252
|
-
(easyflowSDK.validate.customer(customerData)) { const result
|
|
253
|
-
= await easyflowSDK.createCustomer(customerData); if
|
|
254
|
-
(result.success) { // Redirecionar para pagamento
|
|
255
|
-
window.location.href = '/checkout?customer=' +
|
|
256
|
-
result.data.id; } } });
|
|
257
|
-
</div>
|
|
258
|
-
</div>
|
|
259
|
-
</div>
|
|
260
|
-
|
|
261
|
-
<!-- Tab Zapier -->
|
|
262
|
-
<div id="zapier" class="tab-content">
|
|
263
|
-
<div class="container">
|
|
264
|
-
<h3>Integração com Zapier</h3>
|
|
265
|
-
<p>Use o SDK através de webhooks e APIs:</p>
|
|
266
|
-
<div class="code-block">
|
|
267
|
-
// Endpoint para Zapier webhook app.post('/zapier/easyflow',
|
|
268
|
-
async (req, res) => { try { const { action, data } =
|
|
269
|
-
req.body; switch (action) { case 'createCustomer': const
|
|
270
|
-
customerResult = await easyflowSDK.createCustomer(data);
|
|
271
|
-
res.json(customerResult); break; case 'processPayment':
|
|
272
|
-
const paymentResult = await easyflowSDK.charge(data);
|
|
273
|
-
res.json(paymentResult); break; default:
|
|
274
|
-
res.status(400).json({ error: 'Ação não suportada' }); } }
|
|
275
|
-
catch (error) { res.status(500).json({ error: error.message
|
|
276
|
-
}); } });
|
|
277
|
-
</div>
|
|
278
|
-
</div>
|
|
279
|
-
</div>
|
|
280
|
-
|
|
281
|
-
<!-- Demonstração Interativa -->
|
|
282
|
-
<div class="container">
|
|
283
|
-
<h3>🎯 Demonstração Interativa</h3>
|
|
284
|
-
<p>Teste as funcionalidades do SDK:</p>
|
|
285
|
-
|
|
286
|
-
<div class="example">
|
|
287
|
-
<h4>Teste de Validação</h4>
|
|
288
|
-
<input
|
|
289
|
-
type="email"
|
|
290
|
-
id="testEmail"
|
|
291
|
-
placeholder="Digite um email"
|
|
292
|
-
style="padding: 8px; margin: 5px"
|
|
293
|
-
/>
|
|
294
|
-
<button class="button" onclick="testValidation()">
|
|
295
|
-
Validar Email
|
|
296
|
-
</button>
|
|
297
|
-
<div id="validationResult"></div>
|
|
298
|
-
</div>
|
|
299
|
-
|
|
300
|
-
<div class="example">
|
|
301
|
-
<h4>Teste de Status</h4>
|
|
302
|
-
<button class="button" onclick="checkStatus()">
|
|
303
|
-
Verificar Status
|
|
304
|
-
</button>
|
|
305
|
-
<div id="statusResult"></div>
|
|
306
|
-
</div>
|
|
307
|
-
</div>
|
|
308
|
-
|
|
309
|
-
<!-- Scripts -->
|
|
310
|
-
<script src="https://easyflow-sdk.pages.dev/easyflow-sdk.min.js"></script>
|
|
311
|
-
<script>
|
|
312
|
-
// Inicializar SDK para demonstração
|
|
313
|
-
let easyflowSDK = null
|
|
314
|
-
|
|
315
|
-
// Função para mostrar tabs
|
|
316
|
-
function showTab(tabName) {
|
|
317
|
-
// Esconder todas as tabs
|
|
318
|
-
document.querySelectorAll('.tab-content').forEach((tab) => {
|
|
319
|
-
tab.classList.remove('active')
|
|
320
|
-
})
|
|
321
|
-
document.querySelectorAll('.tab').forEach((tab) => {
|
|
322
|
-
tab.classList.remove('active')
|
|
323
|
-
})
|
|
324
|
-
|
|
325
|
-
// Mostrar tab selecionada
|
|
326
|
-
document.getElementById(tabName).classList.add('active')
|
|
327
|
-
event.target.classList.add('active')
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// Função para testar validação
|
|
331
|
-
function testValidation() {
|
|
332
|
-
const email = document.getElementById('testEmail').value
|
|
333
|
-
const result = document.getElementById('validationResult')
|
|
334
|
-
|
|
335
|
-
try {
|
|
336
|
-
if (
|
|
337
|
-
easyflowSDK &&
|
|
338
|
-
easyflowSDK.validate &&
|
|
339
|
-
easyflowSDK.validate.email
|
|
340
|
-
) {
|
|
341
|
-
const isValid = easyflowSDK.validate.email(email)
|
|
342
|
-
result.className = isValid
|
|
343
|
-
? 'result success'
|
|
344
|
-
: 'result error'
|
|
345
|
-
result.textContent = isValid
|
|
346
|
-
? '✅ Email válido!'
|
|
347
|
-
: '❌ Email inválido!'
|
|
348
|
-
} else {
|
|
349
|
-
result.className = 'result error'
|
|
350
|
-
result.textContent = '❌ SDK não inicializado'
|
|
351
|
-
}
|
|
352
|
-
} catch (error) {
|
|
353
|
-
result.className = 'result error'
|
|
354
|
-
result.textContent = '❌ Erro: ' + error.message
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
// Função para verificar status
|
|
359
|
-
function checkStatus() {
|
|
360
|
-
const result = document.getElementById('statusResult')
|
|
361
|
-
|
|
362
|
-
try {
|
|
363
|
-
if (easyflowSDK && easyflowSDK.getStatus) {
|
|
364
|
-
const status = easyflowSDK.getStatus()
|
|
365
|
-
result.className = 'result success'
|
|
366
|
-
result.innerHTML = `
|
|
367
|
-
<strong>Status do SDK:</strong><br>
|
|
368
|
-
✅ Inicializado: ${status.initialized}<br>
|
|
369
|
-
🆔 Business ID: ${status.businessId}<br>
|
|
370
|
-
📦 Versão: ${status.sdkVersion}<br>
|
|
371
|
-
🔧 Wrapper: ${status.wrapperVersion}
|
|
372
|
-
`
|
|
373
|
-
} else {
|
|
374
|
-
result.className = 'result error'
|
|
375
|
-
result.textContent = '❌ SDK não inicializado'
|
|
376
|
-
}
|
|
377
|
-
} catch (error) {
|
|
378
|
-
result.className = 'result error'
|
|
379
|
-
result.textContent = '❌ Erro: ' + error.message
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
// Aguardar carregamento do SDK
|
|
384
|
-
window.addEventListener('load', function () {
|
|
385
|
-
// Verificar se o SDK foi carregado
|
|
386
|
-
if (typeof window.easyflowSDK !== 'undefined') {
|
|
387
|
-
easyflowSDK = window.easyflowSDK
|
|
388
|
-
console.log('✅ Easyflow SDK carregado com sucesso!')
|
|
389
|
-
|
|
390
|
-
// Configurar callbacks de exemplo
|
|
391
|
-
if (easyflowSDK.on) {
|
|
392
|
-
easyflowSDK.on('customerCreated', function (customer) {
|
|
393
|
-
console.log('🎉 Cliente criado:', customer)
|
|
394
|
-
})
|
|
395
|
-
|
|
396
|
-
easyflowSDK.on('paymentProcessed', function (result) {
|
|
397
|
-
console.log('💳 Pagamento processado:', result)
|
|
398
|
-
})
|
|
399
|
-
|
|
400
|
-
easyflowSDK.on('error', function (error) {
|
|
401
|
-
console.error('❌ Erro:', error)
|
|
402
|
-
})
|
|
403
|
-
}
|
|
404
|
-
} else {
|
|
405
|
-
console.error('❌ Easyflow SDK não foi carregado')
|
|
406
|
-
}
|
|
407
|
-
})
|
|
408
|
-
</script>
|
|
409
|
-
</body>
|
|
410
|
-
</html>
|