{"title":"Reconhecendo clientes","category":"default","creationDate":1571158920,"content":"<p>Depois de ter <a href=\"\/pt\/unified-commerce\/loyalty-program\/create-profiles\">criado um perfil para um cliente<\/a>, voc\u00ea poder\u00e1 usar os dados em seu perfil para reconhec\u00ea-los na pr\u00f3xima vez que comprarem em qualquer um dos seus canais de vendas.<\/p>\n<p>Neste guia, mostraremos como voc\u00ea pode usar <code>shopperEmail<\/code> e <code>shopperReference<\/code> para identificar identify um cliente que est\u00e1 retornando <a href=\"#recognize-returning-customers-online\">online<\/a> ou <a href=\"#recognize-returning-customers-in-store\">na loja<\/a>.<\/p>\n<h2>Reconhecer clientes que retornam on-line<\/h2>\n<p>Antes de fazer a compra on-line, seu cliente fornecer\u00e1 um endere\u00e7o de e-mail (por exemplo, ao criar uma conta para sua loja on-line ou ao fazer o checkout como convidado).<\/p>\n<p>Para reconhecer se \u00e9 um cliente recorrente, verifique se os detalhes de contato correspondem ao <code>shopperEmail<\/code> tque voc\u00ea <a href=\"\/pt\/unified-commerce\/loyalty-program\/create-profiles#store-customer-data\">armazenou no banco de dados do cliente<\/a>.<\/p>\n<ul>\n<li><em>Se o e-mail corresponder<\/em>, se trata de um cliente que retornou.<\/li>\n<li><em>Se o e-mail n\u00e3o estiver em seu banco de dados<\/em>, voc\u00ea poder\u00e1 <a href=\"\/pt\/unified-commerce\/loyalty-program\/create-profiles#create-profile-from-online-payment\">criar um perfil de cliente para eles<\/a>.<\/li>\n<\/ul>\n<p>Depois que voc\u00ea conseguir reconhecer os clientes que retornam no checkout on-line ou no aplicativo, poder\u00e1 aprender como <a href=\"\/pt\/unified-commerce\/loyalty-program\/recognize-customers#recognize-returning-customers-in-store\">fazer o mesmo na loja<\/a>.<\/p>\n<h3>Mostrando um cart\u00e3o salvo em sua compra on-line<\/h3>\n<p>Se o cliente criou uma conta da loja online e voc\u00ea salvou e tokenizou os detalhes do cart\u00e3o em um pagamento anterior na loja, voc\u00ea pode oferecer a eles uma experi\u00eancia de compra on-line com menos atrito, mostrando os detalhes do cart\u00e3o salvos.<\/p>\n<p>Para apresentar o cart\u00e3o salvo de um cliente em sua compra on-line:<\/p>\n<ol>\n<li>\n<p>Usando o endere\u00e7o de e-mail do cliente, busque o  <code>shopperReference<\/code> e <code>recurringDetailReference<\/code> deles no banco de dados do cliente.<\/p>\n<\/li>\n<li>\n<p>Se voc\u00ea estiver usando o Drop-in ou Componentes, tamb\u00e9m poder\u00e1 confirmar se o cliente salvou os detalhes do cart\u00e3o ao fazer uma chamada POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentMethods\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentMethods<\/a>. Nesta solicita\u00e7\u00e3o, inclua adicionalmente o <code>shopperReference<\/code>.<\/p>\n<p>O exemplo abaixo mostra como voc\u00ea faria isso para um cliente com <code>shopperReference<\/code> <strong>john_smith<\/strong>:<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Solicita\u00e7\u00e3o de m\u00e9todos de pagamento'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"\\t{\\n\\t  \\\"merchantAccount\\\": \\\"YOUR_MERCHANT_ACCOUNT\\\",\\n\\t  \\\"{hint:This is the unique customer reference in your db}shopperReference{\\\/hint}\\\": \\\"john_smith\\\",\\n\\t  \\\"amount\\\": {\\n\\t\\t\\\"currency\\\": \\\"EUR\\\",\\n\\t\\t\\\"value\\\": 1099\\n\\t  }\\n\\t}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>Voc\u00ea recebe uma resposta contendo uma lista dos m\u00e9todos de pagamento dispon\u00edveis, incluindo os detalhes de pagamento armazenados do cliente. Voc\u00ea pode encontrar o cart\u00e3o armazenado do cliente na matriz <code>storedPaymentMethods<\/code>.<\/p>\n<p>O exemplo abaixo mostra como seria essa resposta se esse cliente tivesse um cart\u00e3o <strong>Visa<\/strong> armazenado. O <code>storedPaymentMethods.id<\/code> deve corresponder o <code>recurringDetailReference<\/code> que voc\u00ea armazenou para este cliente em seu banco de dados.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Resposta dos m\u00e9todos de pagamento'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"\\t{\\n\\t  \\\"paymentMethods\\\":[...],\\n\\t  \\\"storedPaymentMethods\\\":[\\n\\t    {\\n\\t      \\\"brand\\\":\\\"visa\\\",\\n\\t      \\\"expiryMonth\\\":\\\"03\\\",\\n\\t      \\\"expiryYear\\\":\\\"2030\\\",\\n\\t      \\\"holderName\\\":\\\"John Smith\\\",\\n\\t      \\\"{hint: This is the recurringDetailReference}id{\\\/hint}\\\":\\\"7219687191761347\\\",\\n\\t      \\\"lastFour\\\":\\\"1111\\\",\\n\\t      \\\"name\\\":\\\"VISA\\\",\\n\\t      \\\"supportedShopperInteractions\\\":[\\n\\t        \\\"Ecommerce\\\",\\n\\t        \\\"ContAuth\\\"\\n\\t      ],\\n\\t      \\\"type\\\":\\\"scheme\\\"\\n\\t    }\\n\\t  ]\\n\\t}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Apresente os detalhes do cart\u00e3o salvo do cliente e mostre um campo CVC \/ CVV para coletar o c\u00f3digo de seguran\u00e7a do cart\u00e3o.<\/p>\n<ul>\n<li>Se voc\u00ea estiver usando <a href=\"\/pt\/payment-methods\/cards#how-do-you-want-to-integrate\">Drop-in<\/a>, essa integra\u00e7\u00e3o suporta a exibi\u00e7\u00e3o de detalhes do cart\u00e3o salvos por padr\u00e3o. Para <a href=\"\/pt\/payment-methods\/cards#how-do-you-want-to-integrate\">Componentes<\/a>, voc\u00ea pode usar o componente do cart\u00e3o armazenado para <a href=\"\/pt\/payment-methods\/cards\/web-component#show-a-stored-card-in-your-payment-form\">Web<\/a>, <a href=\"\/pt\/payment-methods\/cards\/ios-component#show-a-stored-card-in-your-payment-form\">iOS<\/a>, ou <a href=\"\/pt\/payment-methods\/cards\/android-component#show-a-stored-card-in-your-payment-form\">Android<\/a>. A integra\u00e7\u00e3o de Drop-in e Componentes apresenta os detalhes do cart\u00e3o salvo e coleta e criptografa o c\u00f3digo de seguran\u00e7a do cart\u00e3o do cliente.<\/li>\n<li>Se voc\u00ea estiver usando uma <a href=\"\/pt\/payment-methods\/cards\/api-only\">integra\u00e7\u00e3o apenas de API<\/a>, precisar\u00e1 criar sua pr\u00f3pria interface do usu\u00e1rio para mostrar os detalhes do cart\u00e3o armazenado e coletar o c\u00f3digo de seguran\u00e7a do cart\u00e3o do cliente. Voc\u00ea pode fazer uma <a href=\"\/pt\/payment-methods\/cards\/custom-card-integration#show-a-stored-card-in-your-payment-form\">integra\u00e7\u00e3o de cart\u00e3o personalizado<\/a> ou enviar <a href=\"\/pt\/payment-methods\/cards\/raw-card-data#show-a-stored-card-in-your-payment-form\">dados do cart\u00e3o<\/a>, se voc\u00ea for <a href=\"\/pt\/development-resources\/pci-dss-compliance-guide?tab=api_only_4\">totalmente compat\u00edvel com PCI<\/a>.<br \/>\n<br><\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Se o cliente optar por pagar com o cart\u00e3o salvo, continue com o pagamento efetuando uma solicita\u00e7\u00e3o POST   <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a>. Nesta solicita\u00e7\u00e3o, inclua adicionalmente:<\/p>\n<ul>\n<li><code>shopperReference<\/code>: O <code>shopperReference<\/code> do cliente, de seu banco de dados.<\/li>\n<li><code>shopperInteraction<\/code>: Defina como <strong>ContAuth<\/strong> para indicar que o cliente \u00e9 um cliente recorrente.<\/li>\n<li><code>recurringProcessingModel<\/code>: Defina como <strong>CardOnFile<\/strong> para especificar um pagamento \u00fanico.<\/li>\n<li><code>paymentMethod<\/code>: Objeto que cont\u00e9m os detalhes do cart\u00e3o do cliente:\n<ul>\n<li><code>recurringDetailReference<\/code>: Os detalhes do cart\u00e3o tokenizado do cliente.<\/li>\n<li><code>encryptedSecurityCode<\/code> ou <code>cvc<\/code>:  o c\u00f3digo de seguran\u00e7a do cart\u00e3o do cliente enviado como dados criptografados (retornados do Drop-in, Componentes ou integra\u00e7\u00e3o de cart\u00f5es personalizados) ou como dados brutos (se voc\u00ea \u00e9 totalmente compat\u00edvel com PCI).<\/li>\n<\/ul><\/li>\n<\/ul>\n<p>O exemplo abaixo mostra como voc\u00ea faria um pagamento para um cliente com um <code>shopperReference<\/code> <strong>john_smith<\/strong>, e uma <code>recurringDetailReference<\/code> de <strong>7219687191761347<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Pedido de pagamento online'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"amount\\\":{\\n      \\\"value\\\":2000,\\n      \\\"currency\\\":\\\"USD\\\"\\n   },\\n   \\\"paymentMethod\\\":{\\n      \\\"type\\\": \\\"scheme\\\",\\n      \\\"recurringDetailReference\\\":\\\"7219687191761347\\\",\\n      \\\"encryptedSecurityCode\\\": \\\"adyen_737x19daxH...\\\"\\n   },\\n   \\\"reference\\\":\\\"YOUR_ORDER_NUMBER\\\",\\n   \\\"merchantAccount\\\":\\\"YOUR_MERCHANT_ACCOUNT\\\",\\n   \\\"returnUrl\\\":\\\"https:\\\/\\\/your-company.example.com\\\/...\\\",\\n   \\\"shopperReference\\\":\\\"john_smith\\\",\\n   \\\"shopperInteraction\\\":\\\"ContAuth\\\",\\n   \\\"recurringProcessingModel\\\": \\\"CardOnFile\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>Se o pagamento for bem-sucedido, voc\u00ea receber\u00e1 um <code>resultCode<\/code> de <strong>Authorised<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Resposta de pagamento online'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"\\t{\\n\\t   \\\"pspReference\\\": \\\"881532984281546H\\\",\\n\\t   \\\"resultCode\\\": \\\"Authorised\\\"\\n\\t}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h2>Reconhecer clientes que retornam na loja<\/h2>\n<p>Quando um cliente faz uma compra na loja, voc\u00ea pode tentar reconhecer se \u00e9 um cliente antigo, fazendo uma solicita\u00e7\u00e3o de <em>card acquisition<\/em>. Essa solicita\u00e7\u00e3o verifica se voc\u00ea armazenou uma <code>shopperReference<\/code> (refer\u00eancia exclusiva para este cliente) em uma transa\u00e7\u00e3o anterior. Se voc\u00ea tiver, Adyen retorna o <code>shopperReference<\/code> na resposta.<\/p>\n<p>Para reconhecer um cliente quando ele faz uma compra na loja:<\/p>\n<ol>\n<li>\n<p>Fa\u00e7a uma <a href=\"\/pt\/point-of-sale\/card-acquisition\">solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o<\/a>.<\/p>\n<p>O exemplo abaixo mostra como voc\u00ea tentaria reconhecer um cliente que est\u00e1 fazendo uma compra de <strong>EUR&nbsp;10,99<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Pedido de aquisi\u00e7\u00e3o de cart\u00e3o'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\": {\\n        \\\"MessageHeader\\\":{\\n            \\\"ProtocolVersion\\\":\\\"3.0\\\",\\n            \\\"MessageClass\\\":\\\"Service\\\",\\n            \\\"MessageCategory\\\":\\\"Payment\\\",\\n            \\\"MessageType\\\":\\\"Request\\\",\\n            \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n            \\\"ServiceID\\\":\\\"0207111104\\\",\\n            \\\"POIID\\\":\\\"V400m-324688179\\\"\\n        },\\n        \\\"CardAcquisitionRequest\\\": {\\n            \\\"SaleData\\\": {\\n                \\\"SaleTransactionID\\\": {\\n                    \\\"TransactionID\\\": \\\"15890\\\",\\n                    \\\"TimeStamp\\\": \\\"2019-12-04T12:02:49.000Z\\\"\\n                },\\n                \\\"TokenRequestedType\\\": \\\"Customer\\\"\\n            },\\n            \\\"CardAcquisitionTransaction\\\": {\\n                \\\"TotalAmount\\\": 10.99\\n            }\\n        }\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>Voc\u00ea recebe uma resposta que inclui um objeto <code>AdditionalResponse<\/code>, 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\u00e1rio. Em nossos exemplos, usamos pares de valores-chave codificados em formul\u00e1rio.<\/p>\n<p>A resposta de exemplo abaixo inclui um obejto <code>AdditionalResponse<\/code>.<\/p>\n<\/li>\n<\/ol>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Resposta de aquisi\u00e7\u00e3o do cart\u00e3o'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"SaleToPOIResponse\\\": {\\n        \\\"CardAcquisitionResponse\\\": {\\n            \\\"POIData\\\": {\\n                \\\"POITransactionID\\\": {\\n                    \\\"TimeStamp\\\": \\\"2019-12-04T12:02:49.000Z\\\",\\n                    \\\"TransactionID\\\": \\\"4rVu001575460969123\\\"\\n                },\\n                \\\"POIReconciliationID\\\": \\\"1000\\\"\\n            },\\n            \\\"SaleData\\\": {\\n                \\\"SaleTransactionID\\\": {\\n                    \\\"TimeStamp\\\": \\\"2019-12-04T12:02:49.000Z\\\",\\n                    \\\"TransactionID\\\": \\\"15890\\\"\\n                }\\n            },\\n            \\\"PaymentInstrumentData\\\": {...},\\n            \\\"Response\\\": {\\n                \\\"Result\\\": \\\"Success\\\",\\n                \\\"AdditionalResponse\\\":\\\"...shopperReference=john_smith&amp;shopperEmail=john.smith@email.com...\\\"\\n            }\\n        },\\n        \\\"MessageHeader\\\": {...}\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<ol start=\"2\">\n<li>\n<p>Verifique se o objeto <code>AdditionalResponse<\/code> cont\u00e9m o <code>shopperReference<\/code>.<\/p>\n<ul>\n<li>Se contiver um  <code>shopperReference<\/code>, se trata de um cliente que retornou. Se voc\u00ea j\u00e1 armazenou o <code>shopperEmail<\/code> Adyen anteriormente, isso tamb\u00e9m \u00e9 fornecido nesta resposta.<\/li>\n<li>Se <em>n\u00e3o<\/em> contiver o <code>shopperReference<\/code>, o cart\u00e3o do cliente n\u00e3o ser\u00e1 reconhecido.<br \/>\nIsso geralmente significa que o cliente \u00e9 novo e n\u00e3o comprou com voc\u00ea antes. No entanto, eles tamb\u00e9m podem ser clientes que retornam usando um novo cart\u00e3o.<\/li>\n<\/ul>\n<p>Para confirmar, voc\u00ea pode <a href=\"\/pt\/unified-commerce\/loyalty-program\/create-profiles#create-profile-from-in-store-payment\">coletar o endere\u00e7o de e-mail<\/a>, e verificar se isso corresponde a um <code>shopperEmail<\/code> armazenado no banco de dados do cliente:<\/p>\n<ul>\n<li>Se o e-mail corresponder a um  <code>shopperEmail<\/code> no seu banco de dados, eles ser\u00e3o um cliente recorrente. Pergunte se eles desejam salvar seu novo cart\u00e3o. Se o fizerem, tokenize o novo cart\u00e3o usando o <code>shopperReference<\/code> do seu banco de dados quando voc\u00ea efetuar um pagamento.<\/li>\n<li>o Se o e-mail n\u00e3o estiver no seu banco de dados, eles ser\u00e3o um novo cliente. Continue com a transa\u00e7\u00e3o e <a href=\"\/pt\/unified-commerce\/loyalty-program\/create-profiles#create-profile-from-in-store-payment\">crie um perfil para este cliente<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Continue com a transa\u00e7\u00e3o, <a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/make-a-payment\">fazendo uma solicita\u00e7\u00e3o POST na sua caixa registradora<\/a>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Solicita\u00e7\u00e3o da API de terminais'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"\\t{\\n\\t\\t\\\"SaleToPOIRequest\\\":{\\n\\t\\t\\t\\\"MessageHeader\\\":{\\n\\t\\t\\t\\t\\\"ProtocolVersion\\\":\\\"3.0\\\",\\n\\t\\t\\t\\t\\\"MessageClass\\\":\\\"Service\\\",\\n\\t\\t\\t\\t\\\"MessageCategory\\\":\\\"Payment\\\",\\n\\t\\t\\t\\t\\\"MessageType\\\":\\\"Request\\\",\\n\\t\\t\\t\\t\\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n\\t\\t\\t\\t\\\"ServiceID\\\":\\\"0207111105\\\",\\n\\t\\t\\t\\t\\\"POIID\\\":\\\"V400m-324688179\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"PaymentRequest\\\":{\\n\\t\\t\\t\\t\\\"SaleData\\\":{\\n\\t\\t\\t\\t\\t\\\"SaleTransactionID\\\":{\\n\\t\\t\\t\\t\\t\\t\\\"TransactionID\\\":\\\"15887\\\",\\n\\t\\t\\t\\t\\t\\t\\\"TimeStamp\\\":\\\"2019-12-04T12:02:49.000Z\\\"\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t},\\n\\t\\t\\t\\t\\\"PaymentTransaction\\\":{\\n\\t\\t\\t\\t\\t\\\"AmountsReq\\\":{\\n\\t\\t\\t\\t\\t\\t\\\"Currency\\\":\\\"EUR\\\",\\n\\t\\t\\t\\t\\t\\t\\\"RequestedAmount\\\":10.99\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t},\\n\\t\\t\\t\\t\\\"PaymentData\\\":{\\n\\t\\t\\t\\t\\t\\\"CardAcquisitionReference\\\":{\\n\\t\\t\\t\\t\\t\\t\\\"TransactionID\\\":\\\"oLkO001528797935000\\\",\\n\\t\\t\\t\\t\\t\\t\\\"TimeStamp\\\":\\\"2019-12-04T12:02:49.000Z\\\"\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>Se a solicita\u00e7\u00e3o foi bem-sucedida, voc\u00ea recebe uma resposta contendo:<\/p>\n<ul>\n<li><code>POIData.POITransactionID.TransactionID<\/code>: Identificador de transa\u00e7\u00e3o para o pagamento.<\/li>\n<li><code>PaymentResponse.Response.Result<\/code>: <strong>Success<\/strong><\/li>\n<\/ul>\n<p>O resultado do exemplo abaixo indica que o pagamento foi bem-sucedido. O identificador da transa\u00e7\u00e3o para este pagamento \u00e9 <strong>oLkO0012498220087000.981517998282382C<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Resposta de pagamento'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"SaleToPOIResponse\\\":{\\n    \\\"MessageHeader\\\":{...},\\n    \\\"PaymentResponse\\\":{\\n      \\\"POIData\\\":{\\n        \\\"POITransactionID\\\":{\\n          \\\"TransactionID\\\": \\\"oLkO0012498220087000.981517998282382C\\\"\\n        },\\n        ...\\n      },\\n      \\\"Response\\\":{\\n        \\\"Result\\\":\\\"Success\\\"\\n      },\\n      ...\\n    },\\n    \\\"PaymentReceipt\\\":{...}\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>","url":"https:\/\/docs.adyen.com\/pt\/unified-commerce\/loyalty-program\/recognize-customers","articleFields":{"description":"Identifique seus clientes que retornam quando compram em suas lojas f\u00edsicas e online.","next_steps_description":"Agora que seus dois canais de vendas s\u00e3o capazes de criar e reconhecer clientes, voc\u00ea pode oferecer a esses clientes melhores experi\u00eancias de compra.","next_steps":[{"title":"Transa\u00e7\u00f5es entre canais","description":"Capture, cancele ou reembolse compras de qualquer canal de vendas.","url":"\/unified-commerce\/omnichannel-payments","required":false},{"title":"Fidelidade vinculada ao pagamento","description":"Recompense seus clientes recorrentes com um programa de fidelidade","url":"\/unified-commerce\/payment-linked-loyalty","required":false},{"title":"Recibos digitais","description":"Envie recibos digitais para transa\u00e7\u00f5es na loja.","url":"\/unified-commerce\/digital-receipts","required":false},{"title":"Pesquisas com clientes","description":"Avalie a satisfa\u00e7\u00e3o do cliente usando seu terminal Adyen.","url":"\/unified-commerce\/customer-surveys","required":false}],"last_edit_on":"10-08-2020 15:08"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/unified-commerce\/loyalty-program\/recognize-customers","title":"Reconhecendo clientes","content":"Depois de ter criado um perfil para um cliente, voc\u00ea poder\u00e1 usar os dados em seu perfil para reconhec\u00ea-los na pr\u00f3xima vez que comprarem em qualquer um dos seus canais de vendas.\nNeste guia, mostraremos como voc\u00ea pode usar shopperEmail e shopperReference para identificar identify um cliente que est\u00e1 retornando online ou na loja.\nReconhecer clientes que retornam on-line\nAntes de fazer a compra on-line, seu cliente fornecer\u00e1 um endere\u00e7o de e-mail (por exemplo, ao criar uma conta para sua loja on-line ou ao fazer o checkout como convidado).\nPara reconhecer se \u00e9 um cliente recorrente, verifique se os detalhes de contato correspondem ao shopperEmail tque voc\u00ea armazenou no banco de dados do cliente.\n\nSe o e-mail corresponder, se trata de um cliente que retornou.\nSe o e-mail n\u00e3o estiver em seu banco de dados, voc\u00ea poder\u00e1 criar um perfil de cliente para eles.\n\nDepois que voc\u00ea conseguir reconhecer os clientes que retornam no checkout on-line ou no aplicativo, poder\u00e1 aprender como fazer o mesmo na loja.\nMostrando um cart\u00e3o salvo em sua compra on-line\nSe o cliente criou uma conta da loja online e voc\u00ea salvou e tokenizou os detalhes do cart\u00e3o em um pagamento anterior na loja, voc\u00ea pode oferecer a eles uma experi\u00eancia de compra on-line com menos atrito, mostrando os detalhes do cart\u00e3o salvos.\nPara apresentar o cart\u00e3o salvo de um cliente em sua compra on-line:\n\n\nUsando o endere\u00e7o de e-mail do cliente, busque o  shopperReference e recurringDetailReference deles no banco de dados do cliente.\n\n\nSe voc\u00ea estiver usando o Drop-in ou Componentes, tamb\u00e9m poder\u00e1 confirmar se o cliente salvou os detalhes do cart\u00e3o ao fazer uma chamada POST  \/paymentMethods. Nesta solicita\u00e7\u00e3o, inclua adicionalmente o shopperReference.\nO exemplo abaixo mostra como voc\u00ea faria isso para um cliente com shopperReference john_smith:\n\n\n\nVoc\u00ea recebe uma resposta contendo uma lista dos m\u00e9todos de pagamento dispon\u00edveis, incluindo os detalhes de pagamento armazenados do cliente. Voc\u00ea pode encontrar o cart\u00e3o armazenado do cliente na matriz storedPaymentMethods.\nO exemplo abaixo mostra como seria essa resposta se esse cliente tivesse um cart\u00e3o Visa armazenado. O storedPaymentMethods.id deve corresponder o recurringDetailReference que voc\u00ea armazenou para este cliente em seu banco de dados.\n\n\n\n\n\nApresente os detalhes do cart\u00e3o salvo do cliente e mostre um campo CVC \/ CVV para coletar o c\u00f3digo de seguran\u00e7a do cart\u00e3o.\n\nSe voc\u00ea estiver usando Drop-in, essa integra\u00e7\u00e3o suporta a exibi\u00e7\u00e3o de detalhes do cart\u00e3o salvos por padr\u00e3o. Para Componentes, voc\u00ea pode usar o componente do cart\u00e3o armazenado para Web, iOS, ou Android. A integra\u00e7\u00e3o de Drop-in e Componentes apresenta os detalhes do cart\u00e3o salvo e coleta e criptografa o c\u00f3digo de seguran\u00e7a do cart\u00e3o do cliente.\nSe voc\u00ea estiver usando uma integra\u00e7\u00e3o apenas de API, precisar\u00e1 criar sua pr\u00f3pria interface do usu\u00e1rio para mostrar os detalhes do cart\u00e3o armazenado e coletar o c\u00f3digo de seguran\u00e7a do cart\u00e3o do cliente. Voc\u00ea pode fazer uma integra\u00e7\u00e3o de cart\u00e3o personalizado ou enviar dados do cart\u00e3o, se voc\u00ea for totalmente compat\u00edvel com PCI.\n\n\n\n\nSe o cliente optar por pagar com o cart\u00e3o salvo, continue com o pagamento efetuando uma solicita\u00e7\u00e3o POST   \/payments. Nesta solicita\u00e7\u00e3o, inclua adicionalmente:\n\nshopperReference: O shopperReference do cliente, de seu banco de dados.\nshopperInteraction: Defina como ContAuth para indicar que o cliente \u00e9 um cliente recorrente.\nrecurringProcessingModel: Defina como CardOnFile para especificar um pagamento \u00fanico.\npaymentMethod: Objeto que cont\u00e9m os detalhes do cart\u00e3o do cliente:\n\nrecurringDetailReference: Os detalhes do cart\u00e3o tokenizado do cliente.\nencryptedSecurityCode ou cvc:  o c\u00f3digo de seguran\u00e7a do cart\u00e3o do cliente enviado como dados criptografados (retornados do Drop-in, Componentes ou integra\u00e7\u00e3o de cart\u00f5es personalizados) ou como dados brutos (se voc\u00ea \u00e9 totalmente compat\u00edvel com PCI).\n\n\nO exemplo abaixo mostra como voc\u00ea faria um pagamento para um cliente com um shopperReference john_smith, e uma recurringDetailReference de 7219687191761347.\n\n\n\nSe o pagamento for bem-sucedido, voc\u00ea receber\u00e1 um resultCode de Authorised.\n\n\n\n\n\nReconhecer clientes que retornam na loja\nQuando um cliente faz uma compra na loja, voc\u00ea pode tentar reconhecer se \u00e9 um cliente antigo, fazendo uma solicita\u00e7\u00e3o de card acquisition. Essa solicita\u00e7\u00e3o verifica se voc\u00ea armazenou uma shopperReference (refer\u00eancia exclusiva para este cliente) em uma transa\u00e7\u00e3o anterior. Se voc\u00ea tiver, Adyen retorna o shopperReference na resposta.\nPara reconhecer um cliente quando ele faz uma compra na loja:\n\n\nFa\u00e7a uma solicita\u00e7\u00e3o de aquisi\u00e7\u00e3o de cart\u00e3o.\nO exemplo abaixo mostra como voc\u00ea tentaria reconhecer um cliente que est\u00e1 fazendo uma compra de EUR&nbsp;10,99.\n\n\n\nVoc\u00ea 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\u00e1rio. Em nossos exemplos, usamos pares de valores-chave codificados em formul\u00e1rio.\nA resposta de exemplo abaixo inclui um obejto AdditionalResponse.\n\n\n\n    \n\n\n\nVerifique se o objeto AdditionalResponse cont\u00e9m o shopperReference.\n\nSe contiver um  shopperReference, se trata de um cliente que retornou. Se voc\u00ea j\u00e1 armazenou o shopperEmail Adyen anteriormente, isso tamb\u00e9m \u00e9 fornecido nesta resposta.\nSe n\u00e3o contiver o shopperReference, o cart\u00e3o do cliente n\u00e3o ser\u00e1 reconhecido.\nIsso geralmente significa que o cliente \u00e9 novo e n\u00e3o comprou com voc\u00ea antes. No entanto, eles tamb\u00e9m podem ser clientes que retornam usando um novo cart\u00e3o.\n\nPara confirmar, voc\u00ea pode coletar o endere\u00e7o de e-mail, e verificar se isso corresponde a um shopperEmail armazenado no banco de dados do cliente:\n\nSe o e-mail corresponder a um  shopperEmail no seu banco de dados, eles ser\u00e3o um cliente recorrente. Pergunte se eles desejam salvar seu novo cart\u00e3o. Se o fizerem, tokenize o novo cart\u00e3o usando o shopperReference do seu banco de dados quando voc\u00ea efetuar um pagamento.\no Se o e-mail n\u00e3o estiver no seu banco de dados, eles ser\u00e3o um novo cliente. Continue com a transa\u00e7\u00e3o e crie um perfil para este cliente.\n\n\n\nContinue com a transa\u00e7\u00e3o, fazendo uma solicita\u00e7\u00e3o POST na sua caixa registradora.\n\n\n\nSe a solicita\u00e7\u00e3o foi bem-sucedida, voc\u00ea recebe uma resposta contendo:\n\nPOIData.POITransactionID.TransactionID: Identificador de transa\u00e7\u00e3o para o pagamento.\nPaymentResponse.Response.Result: Success\n\nO resultado do exemplo abaixo indica que o pagamento foi bem-sucedido. O identificador da transa\u00e7\u00e3o para este pagamento \u00e9 oLkO0012498220087000.981517998282382C.\n\n\n\n\n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Omnichannel","lvl2":"Shopper loyalty","lvl3":"Reconhecendo clientes"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/unified-commerce","lvl2":"https:\/\/docs.adyen.com\/pt\/unified-commerce\/loyalty-program","lvl3":"\/pt\/unified-commerce\/loyalty-program\/recognize-customers"},"levels":4,"category":"Omnichannel","category_color":"green","tags":["Reconhecendo","clientes"]},"articleFiles":{"ShopperRecognition.png":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/06.unified-commerce\/14.loyalty-program\/04.recognize-customers\/ShopperRecognition.png\" \/>"}}
