Depois de ter criado um perfil para um cliente, você poderá usar os dados em seu perfil para reconhecê-los na próxima vez que comprarem em qualquer um dos seus canais de vendas.
Neste guia, mostraremos como você pode usar shopperEmail e shopperReference para identificar identify um cliente que está retornando online ou na loja.
Reconhecer clientes que retornam on-line
Antes de fazer a compra on-line, seu cliente fornecerá um endereço de e-mail (por exemplo, ao criar uma conta para sua loja on-line ou ao fazer o checkout como convidado).
Para reconhecer se é um cliente recorrente, verifique se os detalhes de contato correspondem ao shopperEmail tque você armazenou no banco de dados do cliente.
- Se o e-mail corresponder, se trata de um cliente que retornou.
- Se o e-mail não estiver em seu banco de dados, você poderá criar um perfil de cliente para eles.
Depois que você conseguir reconhecer os clientes que retornam no checkout on-line ou no aplicativo, poderá aprender como fazer o mesmo na loja.
Mostrando um cartão salvo em sua compra on-line
Se o cliente criou uma conta da loja online e você salvou e tokenizou os detalhes do cartão em um pagamento anterior na loja, você pode oferecer a eles uma experiência de compra on-line com menos atrito, mostrando os detalhes do cartão salvos.
Para apresentar o cartão salvo de um cliente em sua compra on-line:
- 
Usando o endereço de e-mail do cliente, busque o shopperReferenceerecurringDetailReferencedeles no banco de dados do cliente.
- 
Se você estiver usando o Drop-in ou Componentes, também poderá confirmar se o cliente salvou os detalhes do cartão ao fazer uma chamada POST /paymentMethods. Nesta solicitação, inclua adicionalmente o shopperReference.O exemplo abaixo mostra como você faria isso para um cliente com shopperReferencejohn_smith:Você recebe uma resposta contendo uma lista dos métodos de pagamento disponíveis, incluindo os detalhes de pagamento armazenados do cliente. Você pode encontrar o cartão armazenado do cliente na matriz storedPaymentMethods.O exemplo abaixo mostra como seria essa resposta se esse cliente tivesse um cartão Visa armazenado. O storedPaymentMethods.iddeve corresponder orecurringDetailReferenceque você armazenou para este cliente em seu banco de dados.
- 
Apresente os detalhes do cartão salvo do cliente e mostre um campo CVC / CVV para coletar o código de segurança do cartão. - Se você estiver usando Drop-in, essa integração suporta a exibição de detalhes do cartão salvos por padrão. Para Componentes, você pode usar o componente do cartão armazenado para Web, iOS, ou Android. A integração de Drop-in e Componentes apresenta os detalhes do cartão salvo e coleta e criptografa o código de segurança do cartão do cliente.
- Se você estiver usando uma integração apenas de API, precisará criar sua própria interface do usuário para mostrar os detalhes do cartão armazenado e coletar o código de segurança do cartão do cliente. Você pode fazer uma integração de cartão personalizado ou enviar dados do cartão, se você for totalmente compatível com PCI.
 
 
- 
Se o cliente optar por pagar com o cartão salvo, continue com o pagamento efetuando uma solicitação POST /payments. Nesta solicitação, inclua adicionalmente: - shopperReference: O- shopperReferencedo cliente, de seu banco de dados.
- shopperInteraction: Defina como ContAuth para indicar que o cliente é um cliente recorrente.
- recurringProcessingModel: Defina como CardOnFile para especificar um pagamento único.
- paymentMethod: Objeto que contém os detalhes do cartão do cliente:- recurringDetailReference: Os detalhes do cartão tokenizado do cliente.
- encryptedSecurityCodeou- cvc: o código de segurança do cartão do cliente enviado como dados criptografados (retornados do Drop-in, Componentes ou integração de cartões personalizados) ou como dados brutos (se você é totalmente compatível com PCI).
 
 O exemplo abaixo mostra como você faria um pagamento para um cliente com um shopperReferencejohn_smith, e umarecurringDetailReferencede 7219687191761347.Se o pagamento for bem-sucedido, você receberá um resultCodede Authorised.
Reconhecer clientes que retornam na loja
Quando um cliente faz uma compra na loja, você pode tentar reconhecer se é um cliente antigo, fazendo uma solicitação de card acquisition. Essa solicitação verifica se você armazenou uma shopperReference (referência exclusiva para este cliente) em uma transação anterior. Se você tiver, Adyen retorna o shopperReference na resposta.
Para reconhecer um cliente quando ele faz uma compra na loja:
- 
Faça uma solicitação de aquisição de cartão. O exemplo abaixo mostra como você tentaria reconhecer um cliente que está fazendo uma compra de EUR 10,99. Você recebe uma resposta que inclui um objeto AdditionalResponse, com uma cadeia codificada em base64 que precisa decodificar para obter um objeto JSON ou uma cadeia de pares de valores-chave codificados em formulário. Em nossos exemplos, usamos pares de valores-chave codificados em formulário.A resposta de exemplo abaixo inclui um obejto AdditionalResponse.
- 
Verifique se o objeto AdditionalResponsecontém oshopperReference.- Se contiver um  shopperReference, se trata de um cliente que retornou. Se você já armazenou oshopperEmailAdyen anteriormente, isso também é fornecido nesta resposta.
- Se não contiver o shopperReference, o cartão do cliente não será reconhecido.
 Isso geralmente significa que o cliente é novo e não comprou com você antes. No entanto, eles também podem ser clientes que retornam usando um novo cartão.
 Para confirmar, você pode coletar o endereço de e-mail, e verificar se isso corresponde a um shopperEmailarmazenado no banco de dados do cliente:- Se o e-mail corresponder a um  shopperEmailno seu banco de dados, eles serão um cliente recorrente. Pergunte se eles desejam salvar seu novo cartão. Se o fizerem, tokenize o novo cartão usando oshopperReferencedo seu banco de dados quando você efetuar um pagamento.
- o Se o e-mail não estiver no seu banco de dados, eles serão um novo cliente. Continue com a transação e crie um perfil para este cliente.
 
- Se contiver um  
- 
Continue com a transação, fazendo uma solicitação POST na sua caixa registradora. Se a solicitação foi bem-sucedida, você recebe uma resposta contendo: - POIData.POITransactionID.TransactionID: Identificador de transação para o pagamento.
- PaymentResponse.Response.Result: Success
 O resultado do exemplo abaixo indica que o pagamento foi bem-sucedido. O identificador da transação para este pagamento é oLkO0012498220087000.981517998282382C.