Fast Shop - API Seller
Swagger API
  • Sobre a API
  • Guias da API
    • Primeiros passos
    • Autenticação e formato dos dados
    • Códigos de retorno (HTTP status)
    • Limite de requisições
    • Melhores práticas
  • Integração
    • Fluxo de integração
    • Ambientes de integração
    • Definição da URL e Siglas
    • Recursos (endpoint)
      • Catálogo de Produto
        • Notificação de catálogo
        • Registro de catálogo
        • Atualização de catálogo
        • Atualização de preço/estoque
      • Criação de Pedido
        • Cálculo de frete
        • Criação de pedido
      • Processar Pagamento
        • Bandeiras de cartão
        • Parcelamento no cartão
        • Processar transação de pagamento
          • Como criptografar as informações do pagamento
      • Gerenciamento do Pedido
        • Pedido Aprovado/Confirmado pelo Marketplace
        • Pedido Confirmado pelo Seller
        • Pedido Faturado ou Despachado
        • Pedido Entregue
        • Pedido Cancelado pelo Marketplace
        • Pedido Cancelado pelo Seller
        • Consultar Pedido
    • Status de Pedidos no Seller
Powered by GitBook
On this page

Was this helpful?

  1. Integração
  2. Recursos (endpoint)
  3. Processar Pagamento
  4. Processar transação de pagamento

Como criptografar as informações do pagamento

Nesta seção explicamos como realizar a criptografia dos dados de pagamento

No conteúdo do JSON no endpoint de "Processamento da Transação de Pagamento" existe alguns dados sensíveis do cliente, e para atender ao PCI DSS iremos utilizar o processo de criptografia conhecido como AES 256, que é um padrão internacional de criptografia que garante uma segurança de dados, reconhecida pelo governo.

Como criptografar?

Para realizar a criptografia será utilizado a Chave Pública disponibilizada pela equipe da Fast Shop, basta entrar em contato conosco.

Após é necessário converter o resultado para Base64, com isto não teremos problemas com caractere inválido no JSON.

Abaixo consta um exemplo do código em .Net (dotNet) de como criptografar:

using APIAuthentication.Interfaces;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Security;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace APIAuthentication.Helpers{
    public class RsaHelper : IRsaHelper
    {
        private readonly RSACryptoServiceProvider _privateKey;
        private readonly RSACryptoServiceProvider _publicKey;
        
        public RsaHelper()
        {
            string public_pem = @"Keys\pos.pub.pem";
            _publicKey = GetPublicKeyFromPemFile(public_pem);
        }

        public string Encrypt(string text)
        {
            var encryptedBytes = _publicKey.Encrypt(Encoding.UTF8.GetBytes(text), false);
            return Convert.ToBase64String(encryptedBytes);
        }

        private RSACryptoServiceProvider GetPublicKeyFromPemFile(String filePath)
        {
            string appPath = AppDomain.CurrentDomain.BaseDirectory;
            string path = Path.Combine(appPath, filePath);
            using (TextReader publicKeyTextReader = new StringReader(File.ReadAllText(path)))
            {
                RsaKeyParameters publicKeyParam = (RsaKeyParameters)new PemReader(publicKeyTextReader).ReadObject();
                RSAParameters rsaParams = DotNetUtilities.ToRSAParameters((RsaKeyParameters)publicKeyParam);
                RSACryptoServiceProvider csp = new RSACryptoServiceProvider();
                csp.ImportParameters(rsaParams);
                return csp;
            }
        }
    }
}
PreviousProcessar transação de pagamentoNextGerenciamento do Pedido

Last updated 1 year ago

Was this helpful?