@validapay/tokenize 1.3.0 → 1.3.1
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/package.json +1 -1
- package/readme.md +30 -45
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -1,83 +1,68 @@
|
|
|
1
1
|
# @validapay/tokenize
|
|
2
2
|
|
|
3
|
-
Salva o cartão do comprador na ValidaPay e identifica o dispositivo para a análise antifraude.
|
|
3
|
+
Salva o cartão do comprador na ValidaPay e identifica o dispositivo para a análise antifraude. Roda no navegador, na sua página de pagamento: o cartão vai direto para a ValidaPay, sem passar pelo seu servidor.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
npm install @validapay/tokenize
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
O `publicId` é o identificador público da sua conta, no painel em **Gerenciamento > Minha Conta > Id Público**. Ele pode ficar no código da página.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## 1. Identificar o dispositivo
|
|
12
|
+
|
|
13
|
+
Chame assim que a página de pagamento abrir, uma vez por pedido: a identificação precisa desse tempo antes do pagamento.
|
|
12
14
|
|
|
13
15
|
```js
|
|
14
|
-
import {
|
|
16
|
+
import { collectDevice } from "@validapay/tokenize/browser";
|
|
15
17
|
|
|
16
|
-
const
|
|
17
|
-
clientId: process.env.VALIDAPAY_CLIENT_ID,
|
|
18
|
-
clientSecret: process.env.VALIDAPAY_CLIENT_SECRET,
|
|
19
|
-
card: { number: "4111111111111111", holderName: "MARIA SILVA", cvv: "123", expiration: "12/2030" },
|
|
20
|
-
customer: { name: "Maria Silva", document: "12345678901", email: "maria@exemplo.com" },
|
|
21
|
-
});
|
|
18
|
+
const { deviceId } = await collectDevice({ publicId: "3f1c2a8e-8a4b-4c1e-9d3a-2b7e6f5a4c10" });
|
|
22
19
|
```
|
|
23
20
|
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
- `card.cardHolderName` continua aceito no lugar de `card.holderName`.
|
|
27
|
-
- O `clientSecret` nunca deve ir para o navegador.
|
|
21
|
+
- Não coleta dados pessoais nem dados do cartão.
|
|
22
|
+
- Guarde o `deviceId`: ele vai junto na cobrança.
|
|
28
23
|
|
|
29
|
-
##
|
|
24
|
+
## 2. Tokenizar o cartão
|
|
30
25
|
|
|
31
26
|
```js
|
|
32
27
|
import { tokenize } from "@validapay/tokenize/browser";
|
|
33
28
|
|
|
34
|
-
const { cardToken, cardBrand, cardLastFour } = await tokenize({
|
|
29
|
+
const { cardToken, cardTokenExpiresAt, cardBrand, cardLastFour } = await tokenize({
|
|
35
30
|
publicId: "3f1c2a8e-8a4b-4c1e-9d3a-2b7e6f5a4c10",
|
|
36
|
-
card,
|
|
37
|
-
customer,
|
|
31
|
+
card: { number: "4111111111111111", holderName: "MARIA SILVA", cvv: "123", expiration: "12/2030" },
|
|
32
|
+
customer: { name: "Maria Silva", document: "12345678901", email: "maria@exemplo.com" },
|
|
38
33
|
});
|
|
39
34
|
```
|
|
40
35
|
|
|
41
|
-
-
|
|
42
|
-
-
|
|
36
|
+
- Devolve `cardToken`, `cardTokenExpiresAt`, `cardBrand` e `cardLastFour`.
|
|
37
|
+
- O `cardToken` vale **5 minutos** e só funciona na conta que o gerou.
|
|
43
38
|
- `environment`: `production` (padrão), `sandbox` ou `development`.
|
|
44
39
|
|
|
45
|
-
## Identificação do dispositivo (antifraude)
|
|
46
|
-
|
|
47
|
-
Roda no navegador. Chame assim que a página de checkout abrir, uma vez por pedido: a identificação precisa desse tempo antes do pagamento.
|
|
48
|
-
|
|
49
|
-
```js
|
|
50
|
-
import { collectDevice } from "@validapay/tokenize/browser";
|
|
51
|
-
|
|
52
|
-
const { deviceId } = await collectDevice({ publicId: "3f1c2a8e-8a4b-4c1e-9d3a-2b7e6f5a4c10" });
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
- `deviceId` é `null` quando a conta não usa análise antifraude. Pode chamar sempre.
|
|
56
|
-
- Não coleta dados pessoais nem dados do cartão.
|
|
57
|
-
- Vale para as duas formas de tokenizar: se o cartão vai para o seu servidor, envie o `deviceId` junto.
|
|
58
|
-
|
|
59
40
|
## Com autenticação do portador
|
|
60
41
|
|
|
61
|
-
Se usar `@validapay/3ds
|
|
42
|
+
Se usar [`@validapay/3ds`](https://www.npmjs.com/package/@validapay/3ds), passe o resultado em `authentication`:
|
|
62
43
|
|
|
63
44
|
```js
|
|
64
|
-
const
|
|
45
|
+
const { cardToken } = await tokenize({ publicId, card, customer, authentication });
|
|
65
46
|
```
|
|
66
47
|
|
|
67
|
-
##
|
|
48
|
+
## 3. Cobrar
|
|
68
49
|
|
|
69
|
-
|
|
50
|
+
Envie `cardToken`, `deviceId` e, se usou 3DS, `authentication` ao seu servidor. Ele cria a cobrança dentro dos 5 minutos:
|
|
70
51
|
|
|
71
52
|
```http
|
|
72
53
|
POST /v1/charges
|
|
73
|
-
{
|
|
54
|
+
{
|
|
55
|
+
"paymentMethod": "creditcard",
|
|
56
|
+
"amount": 149.9,
|
|
57
|
+
"cardToken": "ctk_…",
|
|
58
|
+
"deviceId": "…",
|
|
59
|
+
"authentication": { … },
|
|
60
|
+
"customer": { … }
|
|
61
|
+
}
|
|
74
62
|
```
|
|
75
63
|
|
|
76
|
-
|
|
64
|
+
Depois de 5 minutos o `cardToken` vence e a cobrança responde `CARD_TOKEN_EXPIRED`: tokenize o cartão de novo.
|
|
77
65
|
|
|
78
|
-
|
|
79
|
-
POST /v1/charges
|
|
80
|
-
{ "paymentMethod": "creditcard", "amount": 149.9, "cardToken": "ctk_…", "deviceId": "…", "authentication": { … }, "customer": { … } }
|
|
81
|
-
```
|
|
66
|
+
## Documentação
|
|
82
67
|
|
|
83
|
-
|
|
68
|
+
https://docs.validapay.com.br/sdks/tokenizacao
|