Exemplo de Pagamento com Anti Fraude
Olá, alguém tem algum exemplo na pratica de como possa se usar a nova funcionalidade de anti-fraude?
Desde de já, obrigado a todos. At.te:
Por favor descreva um pouco mais sobre sua dúvida, talvez posso te ajudar.
Davi, você já fez algum script com pagamento com antifraude, com a API? Tem algum exemplo? Aqui, mesmo com um CURL puro, ele fala que está faltando o MerchantID (e este está no corpo do JSON)
Não uso o antifraude, mas passa o exemplo do seu json q texto aqui.
Em seg, 19 de ago de 2019 15:29, Claudio Gonçalves Malaquias < [email protected]> escreveu:
Davi, você já fez algum script com pagamento com antifraude, com a API? Tem algum exemplo? Aqui, mesmo com um CURL puro, ele fala que está faltando o MerchantID (e este está no corpo do JSON)
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DeveloperCielo/API-3.0-PHP/issues/139?email_source=notifications&email_token=AAE3KQPQQIAPOSCWW5OZ3GTQFLQ6LA5CNFSM4G7QMLQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4T4DLA#issuecomment-522699180, or mute the thread https://github.com/notifications/unsubscribe-auth/AAE3KQMR7NDI55WLWGCKXODQFLQ6LANCNFSM4G7QMLQQ .
O JSON:
{"MerchantId":"a27e6894-7e44-41ea-84c6-713f3bc9439c","MerchantKey":"DKKWFVIRUTZRXTXCXNFZFFTXEFWKDJIZBDIDGXXX","MerchantOrderId":"5792","Customer":{"Name":"Claudio Malaquias","Identity":"02486675728","IdentityType":"CPF","Email":"[email protected]"},"Payment":{"Type":"CreditCard","Amount":"9190","Currency":"BRL","Country":"BRA","ServiceTaxAmount":0,"Installments":1,"Interest":"ByMerchant","Capture":false,"Authenticate":true,"SoftDescriptor":null,"CreditCard":{"CardNumber":"0000000000000001","Holder":"TESTE DE PAGAMENTO","ExpirationDate":"08\/2021","SecurityCode":"250","Brand":"Visa","SaveCard":false}},"FraudAnalysis":{"Provider":"cybersource","Sequence":"AnalyseFirst","SequenceCriteria":"Always","CaptureOnLowRisk":true,"VoidOnHighRisk":true,"TotalOrderAmount":"9190","FingerPrintId":"b9b277a4-c049-11e9-a03e-107b44b1ee6b","Browser":{"CookiesAccepted":true,"IpAddress":"127.0.0.1"},"Cart":{"IsGift":true,"ReturnsAccepted":true,"Items":{"GiftCategory":"Off","Name":"ARRANJO FLORES E FERRERO","Quantity":4,"Sku":"10966","UnitPrice":"91.90"}}}}
Enviado para a URL: https://apisandbox.cieloecommerce.cielo.com.br/1/sales/
O Merchant_Key e Merchant_ID, são do sandbox. Mas, mesmo enviando para a URL de produção com os dados do cliente, a mensagem de erro, é sempre a mesma:
[ { "Code": 101, "Message": "MerchantId is required" } ]
Já tentei enviar na URL também, como parâmetro e a mensagem é a mesma.
Seria muito grato, se tiverem alguma sugestão ou mesmo solução.
Abs,
Aparentemente sua requisição esta errada vc não envia o MerchantKey no "corpo" da requisição.
Veja no manual o exemplo correto de como enviar a requisição para a Cielo: https://developercielo.github.io/manual/cielo-ecommerce#requisi%C3%A7%C3%A3o111
Abaixo segue um exemplo enviando uma requisição com PHP e CURL, vc precisa algo parecido com:
$cabecalhos = [
"Content-Type: application/json",
'MerchantId:'.$merchantIdAPI,
'MerchantKey:'.$merchantKeyAPI,
'RequestId:'. uniqid()
];
$corpo = [
"MerchantOrderId" => uniqid(),
"Payment" => [
"Type" => $type,
"Amount" => $amount,
"Installments" => 1,
"Currency"=> 'BRL',
"Wallet" => [
"Type"=> "VisaCheckout",
"WalletKey"=> $callid,
],
]
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_URL => 'https://api.cieloecommerce.cielo.com.br/1/sales/
', CURLOPT_HTTPHEADER => $cabecalhos, CURLOPT_POSTFIELDS => json_encode($corpo), CURLOPT_RETURNTRANSFER => true ]);
$resposta = curl_exec($ch); curl_close($ch);
*Link Nacional: *Hospedagem de Sites | Registro de Domínios | Desenvolvimento https://www.linknacional.com.br/ Canais de atendimento acesse: https://www.linknacional.com.br/cliente/suporte
Em ter, 20 de ago de 2019 às 10:57, Claudio Gonçalves Malaquias < [email protected]> escreveu:
O JSON:
{"MerchantId":"a27e6894-7e44-41ea-84c6-713f3bc9439c","MerchantKey":"DKKWFVIRUTZRXTXCXNFZFFTXEFWKDJIZBDIDGXXX","MerchantOrderId":"5792","Customer":{"Name":"Claudio Malaquias","Identity":"02486675728","IdentityType":"CPF","Email":" [email protected]"},"Payment":{"Type":"CreditCard","Amount":"9190","Currency":"BRL","Country":"BRA","ServiceTaxAmount":0,"Installments":1,"Interest":"ByMerchant","Capture":false,"Authenticate":true,"SoftDescriptor":null,"CreditCard":{"CardNumber":"0000000000000001","Holder":"TESTE DE PAGAMENTO","ExpirationDate":"08/2021","SecurityCode":"250","Brand":"Visa","SaveCard":false}},"FraudAnalysis":{"Provider":"cybersource","Sequence":"AnalyseFirst","SequenceCriteria":"Always","CaptureOnLowRisk":true,"VoidOnHighRisk":true,"TotalOrderAmount":"9190","FingerPrintId":"b9b277a4-c049-11e9-a03e-107b44b1ee6b","Browser":{"CookiesAccepted":true,"IpAddress":"127.0.0.1"},"Cart":{"IsGift":true,"ReturnsAccepted":true,"Items":{"GiftCategory":"Off","Name":"ARRANJO FLORES E FERRERO","Quantity":4,"Sku":"10966","UnitPrice":"91.90"}}}}
Enviado para a URL: https://apisandbox.cieloecommerce.cielo.com.br/1/sales/
O Merchant_Key e Merchant_ID, são do sandbox. Mas, mesmo enviando para a URL de produção com os dados do cliente, a mensagem de erro, é sempre a mesma:
[ { "Code": 101, "Message": "MerchantId is required" } ]
Já tentei enviar na URL também, como parâmetro e a mensagem é a mesma.
Seria muito grato, se tiverem alguma sugestão ou mesmo solução.
Abs,
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DeveloperCielo/API-3.0-PHP/issues/139?email_source=notifications&email_token=AAE3KQPFPJ373SJQUOG4V53QFPZZDA5CNFSM4G7QMLQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4WMCZI#issuecomment-523026789, or mute the thread https://github.com/notifications/unsubscribe-auth/AAE3KQKQE44WEOOQYLZO2XDQFPZZDANCNFSM4G7QMLQQ .
Davi. Deu certo colocando o Merchant ID no Header. Agora os dados enviados ficaram assim: JSON: {"MerchantOrderId":"5792","Customer":{"Name":"Claudio Malaquias","Identity":"02486675728","IdentityType":"CPF","Email":"[email protected]"},"Payment":{"Type":"CreditCard","Amount":"9190","ServiceTaxAmount":0.35,"Installments":1,"Authenticate":true,"CreditCard":{"CardNumber":"0000000000000001","Holder":"TESTE DE PAGAMENTO","ExpirationDate":"08/2020","SecurityCode":"250","Brand":"Visa"}},"FraudAnalysis":{"Provider":"cybersource","Sequence":"AnalyseFirst","SequenceCriteria":"Always","CaptureOnLowRisk":true,"VoidOnHighRisk":true,"TotalOrderAmount":"9190","FingerPrintId":"58ed80dc-c385-11e9-9902-107b44b1ee6b","Browser":{"CookiesAccepted":true,"IpAddress":"127.0.0.1"},"Cart":{"IsGift":true,"ReturnsAccepted":true,"Items":{"Name":"ARRANJO FLORES E FERRERO","Quantity":4,"Sku":"10966","UnitPrice":"91.90"}}}}
O Cabeçalho: array:5 [▼ 0 => "Content-Type: application/json" 1 => "MerchantId:a27e6894-7e44-41ea-84c6-713f3bc9439c" 2 => "MerchantKey:DKKWFVIRUTZRXTXCXNFZFFTXEFWKDJIZBDIDGXXX" 3 => "RequestId:5792" 4 => "Content-Length: 823" ].
Só que agora me retorna o seguinte erro: [ { "Code": 184, "Message": "Request could not be empty" } ]
Na documentação, fala para verificar os dados enviados.
Eu já varri os campos que são obrigatórios para a Análise de Fraude e não achei nada que fosse divergente....
Lembrando que a URL que envio, é a: https://apisandbox.cieloecommerce.cielo.com.br/1/sales/
Veja se consegue enxergar algo fora de meus olhos, por favor.
Grato pela ajuda.
Pela mensagem parece que o json não esta sendo enviado corretamente. O sistema de antifraude funciona no sandbox tbm?
Em ter, 20 de ago de 2019 às 17:34, Claudio Gonçalves Malaquias < [email protected]> escreveu:
Davi. Deu certo colocando o Merchant ID no Header. Agora os dados enviados ficaram assim: JSON: {"MerchantOrderId":"5792","Customer":{"Name":"Claudio Malaquias","Identity":"02486675728","IdentityType":"CPF","Email":" [email protected]"},"Payment":{"Type":"CreditCard","Amount":"9190","ServiceTaxAmount":0.35,"Installments":1,"Authenticate":true,"CreditCard":{"CardNumber":"0000000000000001","Holder":"TESTE DE PAGAMENTO","ExpirationDate":"08/2020","SecurityCode":"250","Brand":"Visa"}},"FraudAnalysis":{"Provider":"cybersource","Sequence":"AnalyseFirst","SequenceCriteria":"Always","CaptureOnLowRisk":true,"VoidOnHighRisk":true,"TotalOrderAmount":"9190","FingerPrintId":"58ed80dc-c385-11e9-9902-107b44b1ee6b","Browser":{"CookiesAccepted":true,"IpAddress":"127.0.0.1"},"Cart":{"IsGift":true,"ReturnsAccepted":true,"Items":{"Name":"ARRANJO FLORES E FERRERO","Quantity":4,"Sku":"10966","UnitPrice":"91.90"}}}}
O Cabeçalho: array:5 [▼ 0 => "Content-Type: application/json" 1 => "MerchantId:a27e6894-7e44-41ea-84c6-713f3bc9439c" 2 => "MerchantKey:DKKWFVIRUTZRXTXCXNFZFFTXEFWKDJIZBDIDGXXX" 3 => "RequestId:5792" 4 => "Content-Length: 823" ].
Só que agora me retorna o seguinte erro: [ { "Code": 184, "Message": "Request could not be empty" } ]
Na documentação, fala para verificar os dados enviados.
Eu já varri os campos que são obrigatórios para a Análise de Fraude e não achei nada que fosse divergente....
Lembrando que a URL que envio, é a: https://apisandbox.cieloecommerce.cielo.com.br/1/sales/
Veja se consegue enxergar algo fora de meus olhos, por favor.
Grato pela ajuda.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DeveloperCielo/API-3.0-PHP/issues/139?email_source=notifications&email_token=AAE3KQL5Q7GDLQFHBTXRIALQFRIJTA5CNFSM4G7QMLQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4XSJDI#issuecomment-523183245, or mute the thread https://github.com/notifications/unsubscribe-auth/AAE3KQNXZQB325IUWER4KO3QFRIJTANCNFSM4G7QMLQQ .
Oi Galera, ainda nao resolveram esa resposta "Request could not be empty" ?
Tambem está acontencendo conmigo
Grato pela ajuda