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
shopperReference
erecurringDetailReference
deles 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
shopperReference
john_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.id
deve corresponder orecurringDetailReference
que 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
: OshopperReference
do 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.encryptedSecurityCode
oucvc
: 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
shopperReference
john_smith, e umarecurringDetailReference
de 7219687191761347.Se o pagamento for bem-sucedido, você receberá um
resultCode
de 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
AdditionalResponse
contém oshopperReference
.- Se contiver um
shopperReference
, se trata de um cliente que retornou. Se você já armazenou oshopperEmail
Adyen 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
shopperEmail
armazenado no banco de dados do cliente:- Se o e-mail corresponder a um
shopperEmail
no 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 oshopperReference
do 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.