API-3.0-PHP icon indicating copy to clipboard operation
API-3.0-PHP copied to clipboard

Exemplo de Pagamento com Anti Fraude

Open renanconstancio opened this issue 7 years ago • 8 comments

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:

renanconstancio avatar Mar 19 '19 13:03 renanconstancio

Por favor descreva um pouco mais sobre sua dúvida, talvez posso te ajudar.

souzadavi avatar May 08 '19 15:05 souzadavi

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)

cgmalaquias avatar Aug 19 '19 18:08 cgmalaquias

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 .

souzadavi avatar Aug 19 '19 18:08 souzadavi

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,

cgmalaquias avatar Aug 20 '19 13:08 cgmalaquias

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 .

souzadavi avatar Aug 20 '19 16:08 souzadavi

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.

cgmalaquias avatar Aug 20 '19 20:08 cgmalaquias

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 .

souzadavi avatar Sep 01 '19 22:09 souzadavi

Oi Galera, ainda nao resolveram esa resposta "Request could not be empty" ?

Tambem está acontencendo conmigo

Grato pela ajuda

riyadfaekanabtawi avatar Jul 15 '20 02:07 riyadfaekanabtawi