RecomendaçÔes para melhorar sua aprovação
Para evitar que um pagamento legĂtimo seja recusado por nĂŁo atender as validaçÔes de segurança, Ă© necessĂĄrio incluir o mĂĄximo de informaçÔes possĂveis na hora de realizar a operação e tambĂ©m que seu checkout esteja com uma interface otimizada.
VocĂȘ pode ver em detalhes nossas recomendaçÔes para melhorar sua aprovação abaixo.
Coleta e envĂo de Device ID
O Device ID Ă© uma informação importante para garantir uma melhor segurança e, consequentemente, uma melhor taxa de aprovação de pagamentos. Ele representa um identificador Ășnico para cada dispositivo do comprador no momento da compra. Caso um comprador frequente faça uma compra a partir de um dispositivo diferente do habitual, isso pode representar um comportamento atĂpico. Embora possa nĂŁo ser necessariamente fraude, o ID do dispositivo nos ajuda a refinar a avaliação e nos impede de rejeitar pagamentos legĂtimos.
VocĂȘ pode adicionar o cĂłdigo de segurança do Mercado Pago na sua pĂĄgina substituindo o valor de view
pelo nome da seção na qual deseja adicionå-lo. O mais importante é adicionå-lo na pågina do checkout, porém adicionar em outras påginas, como home, search ou item, também ajuda a enriquecer as informaçÔes coletadas.
html
<script src="https://www.mercadopago.com/v2/security.js" view="home"></script>
Utilizar informaçÔes do Device ID na web
Para usar o Device ID na web e evitar possĂveis compras fraudulentas, Ă© preciso seguir os passos abaixo:
1. Adicione o script de segurança do Mercado Pago
Para implementar a geração do device ID em seu site, adicione o seguinte código na sua pågina de Checkout:
html
<script src="https://www.mercadopago.com/v2/security.js" view="checkout"></script>
2.Obtendo o Device ID
Uma vez que vocĂȘ tenha adicionado o cĂłdigo de segurança do Mercado Pago em seu site, uma variĂĄvel global de javascript Ă© criada automaticamente com o nome MP_DEVICE_SESSION_ID
, cujo valor Ă© o Device ID.
Se vocĂȘ preferir atribuĂ-lo a outra variĂĄvel, indique o nome adicionando o atributo output ao script de segurança, como no exemplo a seguir:
html
<script src="https://www.mercadopago.com/v2/security.js" view="checkout" output="deviceId"></script>
VocĂȘ tambĂ©m pode criar sua prĂłpria variĂĄvel. Para isso, adicione uma tag HTML no seu site com o identificador id="deviceID"
, como no exemplo abaixo.
html
<input type="hidden" id="deviceId">
3. Utilizando o Device ID
Uma vez que vocĂȘ tenha o valor de Device ID, Ă© preciso que vocĂȘ o envie aos nossos servidores ao criar um pagamento. Para isso, basta acrescentar o seguinte cabeçalho (header) Ă requisição:
http
X-meli-session-id: device_id
Utilizar Device ID em aplicaçÔes móveis
Se vocĂȘ possui uma aplicação mĂłvel nativa, pode capturar a informação do dispositivo com nosso SDK e enviar no momento de criar o token. Siga estas etapas:
1. Adicione a dependĂȘncia
use_frameworks!
pod âMercadoPagoDevicesSDKâ
VocĂȘ precisa adicionar o repositĂłrio e a dependĂȘncia no arquivo build.gradle.
repositories {
maven {
url "https://artifacts.mercadolibre.com/repository/android-releases"
}
}
dependencies {
implementation 'com.mercadolibre.android.device:sdk:4.0.1'
}
2. Inicialize o mĂłdulo
Recomendamos realizar a inicialização no envento didFinishLaunchingWithOptions do AppDelegate.
import MercadoPagoDevicesSDK
...
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
...
MercadoPagoDevicesSDK.shared.execute()
...
}
Recomendamos realizar a inicialização no envento didFinishLaunchingWithOptions do AppDelegate.
@import âMercadoPagoDevicesSDKâ;
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
[[MercadoPagoDevicesSDK shared] execute];
...
}
Recomendamos realizar a inicialização na classe MainApplication.
import com.mercadolibre.android.device.sdk.DeviceSDK;
DeviceSDK.getInstance().execute(this);
3. Capture a informação
Execute alguma das funçÔes abaixo para obter a informação no formato que precisar.
MercadoPagoDevicesSDK.shared.getInfo() // Devolve um objeto Device que Ă© CodificĂĄvel
MercadoPagoDevicesSDK.shared.getInfoAsJson() // Devolve um objeto em JSON
MercadoPagoDevicesSDK.shared.getInfoAsJsonString() // Devolve o JSON em formato de String
MercadoPagoDevicesSDK.shared.getInfoAsDictionary() // Devolve um objeto Dictionary<String,Any>
[[[MercadoPagoDevicesSDK] shared] getInfoAsJson] // Devolve um objeto em JSON
[[[MercadoPagoDevicesSDK] shared] getInfoAsJsonString] // Devolve o JSON em formato de String
[[[MercadoPagoDevicesSDK] shared] getInfoAsDictionary] // Deolve um objeto Dictionary<String,Any>
Device device = DeviceSDK.getInstance().getInfo() // Devolve um objeto Device, que Ă© serializĂĄvel
Map deviceMap = DeviceSDK.getInstance().getInfoAsMap() // Devolve um Map<String, Object>
String jsonString = DeviceSDK.getInstance().getInfoAsJsonString() // Devolve uma String no formato JSON
4. Envie a informação
Por Ășltimo, envie a informação obtida no campo device
ao criar o card_token
.
plain
{
...,
"device":{
"fingerprint":{
"os":"iOS",
"system_version":"8.3",
"ram":18446744071562067968,
"disk_space":498876809216,
"model":"MacBookPro9,2",
"free_disk_space":328918237184,
"vendor_ids":[
{
"name":"vendor_id",
"value":"C2508642-79CF-44E4-A205-284A4F4DE04C"
},
{
"name":"uuid",
"value":"AB28738B-8DC2-4EC2-B514-3ACF330482B6"
}
],
"vendor_specific_attributes":{
"feature_flash":false,
"can_make_phone_calls":false,
"can_send_sms":false,
"video_camera_available":true,
"cpu_count":4,
"simulator":true,
"device_languaje":"en",
"device_idiom":"Phone",
"platform":"x86_64",
"device_name":"iPhone Simulator",
"device_family":4,
"retina_display_capable":true,
"feature_camera":false,
"device_model":"iPhone Simulator",
"feature_front_camera":false
},
"resolution":"375x667"
}
}
Detalhar todas as informaçÔes sobre o pagamento
Para otimizar a validação de segurança dos pagamentos e melhorar as aprovaçÔes, é importante fazer o envio do måximo de dados sobre o comprador e o produto.
Se atente a todos os atributos disponĂveis ao criar um pagamento usando o mĂ©todo Criar pagamento. Preste atenção especialmente aos atributos em additional_info
, como:
- Dados do comprador,
- Dados do produto,
- Dados do envio.
Existem tambĂ©m campos extras que podem ser enviados de acordo com o ramo de atividade. VocĂȘ pode encontrar mais detalhes sobre cada setor e os dados do comprador e do shipping que recomendamos incluir em cada um deles aqui.
Melhorar a experiĂȘncia do usuĂĄrio
Muitas vezes o comprador pode errar na hora de preencher seus dados no checkout. Por isso, vale a pena revisar cada passo, interaçÔes e atĂ© design, para checar se tudo estĂĄ claro como deveria. Caso opte por criar seu front do zero, vocĂȘ encontra dicas de como fazĂȘ-lo de forma eficiente aqui. Se um pagamento for negado, Ă© importante tambĂ©m que vocĂȘ explique aos seus clientes o motivo da recusa e o que eles poderĂŁo fazer para resolver o problema. Assim, seus clientes terĂŁo todas as informaçÔes necessĂĄrias para pagar sem problemas. VocĂȘ encontra recomendaçÔes de mensagens para os principais motivos de recusa aqui.
Se, em vez disso, vocĂȘ quiser garantir uma interface otimizada, pode utilizar os componentes visuais de Checkout Bricks e tambĂ©m aproveitar um componente visual jĂĄ pronto com as melhores mensagens com o Status Screen Brick.
Adicionar o seguinte cĂłdigo no arquivo Podfile.