Silent Order Post
Com o Silent Order Post, os dados de pagamentos são trafegados de forma segura, mantendo o controle total sobre a experiência de checkout.
Esse método possibilita o envio dos dados do pagamento do comprador de forma segura diretamente em nosso sistema. Os campos de pagamento são armazenados pela Cielo, que conta com a certificação PCI DSS 3.2.
É ideal para lojistas que exigem um alto nível de segurança, sem perder a identidade de sua página.
Características
- Captura de dados de pagamento diretamente para os sistemas da Cielo por meio dos campos hospedados na sua página através de um script (JavaScript);
- Compatibilidade com todos os meios de pagamentos disponibilizados ao Gateway (Nacional e Internacional);
- Redução do escopo de PCI DSS;
- Controle total sobre a experiência de checkout e elementos de gestão da sua marca.
O PCI Data Security Standard (PCI DSS) é um padrão global de segurança de dados de cartões, e compreende um conjunto mínimo de requisitos para
proteger os dados do titular do cartão.
Fluxo de Autorização
A seguir, apresentamos como funciona um fluxo de autorização padrão e um fluxo de autorização com o Silent Order Post.
Fluxo de Autorização Padrão
No fluxo de autorização padrão, a loja virtual recebe os dados de pagamento do comprador e, por isso, precisa estar em conformidade com o PCI DSS.
Fluxo de Autorização com Silent Order POST
Com o Silent Order Post, o servidor da loja virtual não trafega os dados do cartão abertamente.
- A loja configura o JavaScript na tela de checkout. Na finalização da compra, o script envia os dados de pagamento diretamente para a API E-Commerce Cielo, sem passar pelo seu servidor;
- A API armazena os dados do cartão para aquela compra e cria um código criptografado (
PaymentToken
, válido apenas para uma compra) ou armazena os dados do cartão e cria um código criptografado para o cartão (CardToken
, que pode ser usado em outras compras); - A loja envia o token do script para o próprio servidor;
- A loja, por meio do seu servidor, envia a requisição de autorização com o token e os demais campos obrigatórios para uma transação.
Integração
Passo 1. Obtendo dos tokens de acesso
Para que possa usar o Silent Order Post, você vai precisar de dois tokens:
- Token de autenticação OAuth2 (
access_token
); - Token de autenticação do Silent Order Post (
AccessToken
).
Token de autenticação OAuth2
Obtenha o access_token
a partir da API de autenticação da Cielo (OAuth2). Em caso de sucesso, a API retornará um access_token
que deverá ser utilizado na próxima camada de autenticação da ferramenta.
Para obter o access_token
no padrão OAuth 2.0, envie uma requisição utilizando o VERBO HTTP POST para a URL da tabela a seguir, formada pela "URL base do ambiente + endpoint", conforme o ambiente desejado:
Ambiente | URL base + endpoint | Authorization |
---|---|---|
SANDBOX | https://authsandbox.braspag.com.br/oauth2/token | "Basic {base64}" |
PRODUÇÃO | https://auth.braspag.com.br/oauth2/token | "Basic {base64}" |
Nota: O valor "{base64}" para a autorização do tipo "Basic" deve ser obtido da seguinte forma:
- Concatene o "ClientId" e o "ClientSecret" (
ClientId:ClientSecret
); - Codifique o resultado da concatenação em base64;
- Realize uma requisição ao servidor de autorização utilizando o código alfanumérico gerado.
Para obter o "ClientID" e o "ClientSecret", envie um e-mail para [email protected] contendo o
MerchantId
e informando que deseja obter as credenciais "ClientID" e "ClientSecret" para o Silent Order Post.
Requisição
POST oauth2/token
--request POST "https://authsandbox.braspag.com.br/oauth2/token"
--header "Authorization: Basic {base64}"
--header "Content-Type: application/x-www-form-urlencoded"
--data-binary "grant_type=client_credentials"
Parâmetros | Formato | Envio |
---|---|---|
Authorization | "Basic {base64}" | Envio no header. |
Content-Type | "application/x-www-form-urlencoded" | Envio no header. |
grant_type | "client_credentials" | Envio no body. |
Resposta
{
"access_token": "faSYkjfiod8ddJxFTU3vti_ ... _xD0i0jqcw",
"token_type": "bearer",
"expires_in": 599
}
{
"access_token": "faSYkjfiod8ddJxFTU3vti_ ... _xD0i0jqcw",
"token_type": "bearer",
"expires_in": 599
}
Propriedades da Resposta | Descrição |
---|---|
access_token | O token de autenticação solicitado. Ele será utilizado no próximo passo. |
token_type | Indica o valor do tipo de token. |
expires_in | Expiração do token de acesso, em segundos. Quando o token expira, é necessário obter um novo. |
Token de autenticação do Silent Order Post
Após a obtenção do token de autenticação OAuth2, envie uma requisição utilizando o VERBO HTTP POST para a URL da tabela a seguir conforme o ambiente desejado:
Ambiente | URL base + endpoint |
---|---|
Sandbox | https://transactionsandbox.pagador.com.br/post/api/public/v2/accesstoken |
Produção | https://transaction.pagador.com.br/post/api/public/v2/accesstoken |
Requisição
POST api/public/v2/accesstoken
--request POST "https://transactionsandbox.pagador.com.br/post/api/public/v2/accesstoken"
--header "Content-Type: application/json"
--header "MerchantId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
--header "Authorization: Bearer faSYkjfiod8ddJxFTU3vti_ ... _xD0i0jqcw"
--data-binary
--verbose
Propriedade | Descrição | Tipo | Tamanho | Obrigatório? |
---|---|---|---|---|
MerchantId | Identificador da loja na API Cielo E-commerce. | GUID | 36 | Sim |
Authorization | Bearer [AccessToken OAuth2] | Texto | 36 | Sim |
Resposta
Como resposta, a loja receberá um json ("HTTP 201 Created") contendo, entre outras informações, o AccessToken
do Silent Order Post.
{
"MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"AccessToken": "MzA5YWIxNmQtYWIzZi00YmM2LWEwN2QtYTg2OTZjZjQxN2NkMDIzODk5MjI3Mg==",
"Issued": "2021-05-05T08:50:04",
"ExpiresIn": "2021-05-05T09:10:04"
}
--header "Content-Type: application/json"
--header "RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
--data-binary
{
"MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"AccessToken": "MzA5YWIxNmQtYWIzZi00YmM2LWEwN2QtYTg2OTZjZjQxN2NkMDIzODk5MjI3Mg==",
"Issued": "2021-05-05T08:50:04",
"ExpiresIn": "2021-05-05T09:10:04"
}
Propriedade | Descrição | Tipo | Tamanho | Formato |
---|---|---|---|---|
MerchantId | Identificador da loja na API Cielo E-commerce. | Guid | 36 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
AccessToken | Token de acesso (AccessToken do Silent Order Post). O AccessToken obtido permitirá a realização de uma tentativa de autorização no período de 20 minutos. | Texto | -- | NjBhMjY1ODktNDk3YS00NGJkLWI5YTQtYmNmNTYxYzhlNjdiLTQwMzgxMjAzMQ== |
Issued | Data e hora da geração. | Texto | -- | AAAA-MM-DDTHH:MM:SS |
ExpiresIn | Data e hora da expiração. | Texto | -- | AAAA-MM-DDTHH:MM:SS |
Passo 2. Implementando o script
Faça o download do script fornecido pela Cielo, e anexe o script à sua página de checkout. Esse script permitirá à Cielo processar todas as informações de cartão sem intervenção do estabelecimento.
Faça o download do script correspondente ao ambiente desejado, sandbox ou produção:
Em seguida, faça a configuração do formulário com as seguintes classes:
- Para o portador do cartão de crédito/débito: bp-sop-cardholdername
- Para o número do cartão de crédito/débito: bp-sop-cardnumber
- Para a validade do cartão de crédito/débito: bp-sop-cardexpirationdate
- Para o código de segurança do cartão de crédito/débito: bp-sop-cardcvvc
Além disso, defina os parâmetros a seguir:
Parâmetros do Script
Propriedade | Descrição |
---|---|
accessToken | Token de acesso obtido via API de autenticação da Braspag (AccessToken SOP). |
environment | Tipo de ambiente: "sandbox" / "production". |
language | Idioma: "pt" / "en" / "es". |
enableTokenize | "true" (salva o cartão diretamente no Cartão Protegido, retornando um cardToken ao invés de um paymentToken) / "false" (caso contrário). |
cvvRequired | "false" (desliga a obrigatoriedade de envio do CVV) / "true" (caso contrário). |
Exemplo de setup a ser realizado pela loja virtual na página de checkout:
Retornos do Script
O script fornecido pela Cielo fornece três eventos para manipulação e tratamento por parte do estabelecimento. São eles:
- onSuccess, retorna o “PaymentToken” após processar os dados do cartão;
- onError, caso haja algum erro no consumo dos serviços da Cielo;
- onInvalid, retorna o resultado da validação dos inputs.
Na validação dos inputs, o estabelecimento poderá utilizar toda a camada de validação sobre os dados de cartão realizada pela Cielo e assim simplificar o tratamento no seu formulário de checkout. As mensagens retornadas no resultado da validação são disponibilizadas nos idiomas português (padrão), inglês e espanhol.
Propriedade | Descrição | Condição |
---|---|---|
PaymentToken | Token efêmero utilizado para pagamento no formato de um GUID (36). | *** |
CardToken | Token permanente utilizado para pagamento no formato de um GUID (36). | Quando enableTokenize for "true". |
- O
PaymentToken
ou oCardToken
representarão todos os dados de cartão fornecido pelo comprador. O token será usado pelo estabelecimento para que não precise tratar e processar dados de cartão em seu servidor.- Por questões de segurança o
PaymentToken
poderá ser usado apenas para uma autorização na API E-commerce Cielo. Após o processamento do token, ele será invalidado.
Passo 3. Requisição de autorização com o token
Requisição com PaymentToken
Envie a requisição de autorização com o PaymentToken
no nó CreditCard
(para transação com cartão de crédito) ou no nó DebitCard
(para transação cmo cartão de débito).
POST/1/sales/
},
"Payment": {
"Type": "CreditCard",
"Amount": 1400,
"Installments": 1,
"CreditCard": {
"PaymentToken": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"Brand": "Master"
}
}
}
Para consultar os campos obrigatórios da requisição e a resposta, veja as requisições padrão das transações de crédito ou débito.
Por questões de segurança o PaymentToken
poderá ser usado apenas para uma autorização na API E-commerce Cielo. O token será processado e, em seguida, invalidado.
Requisição com CardToken
Envie a requisição de autorização com o CardToken
no nó CreditCard
(para transação com cartão de crédito) ou no nó DebitCard
(para transação com cartão de débito).
POST/1/sales/
{
"MerchantOrderId": "2014111706",
"Customer": {
"Name": "Comprador Teste"
},
"Payment": {
"Type": "CreditCard",
"Amount": 100,
"Installments": 1,
"SoftDescriptor": "123456789ABCD",
"CreditCard": {
"CardToken": "6e1bf77a-b28b-4660-b14f-455e2a1c95e9",
"SecurityCode": "262",
"Brand": "Visa"
}
}
}
Para consultar os campos obrigatórios da requisição e a resposta, veja as requisições padrão das transações de crédito ou débito.
Updated about 1 month ago