Jump to content
Regiane Primoni

Integração API Cielo 3.0

Recommended Posts

Fiz toda integração da API 3.0 da Cielo utilizando o ambiente de teste deu tudo certo, quando coloquei url e credenciais de produção retorna erro 405.

O certificado + os 3 arquivos cielo estão instalados.

 

O código:

<?php
$array = array(
    "MerchantOrderId" => "2014111703",
    "Payment" => array(
        "Type"=> "CreditCard",   
        "Amount"=> "15700",   
        "Installments"=> "1",   
        "SoftDescriptor"=> "123456789ABCD",
        "CreditCard" => array(
            "CardNumber" => "4551870000000183",   
            "Holder" => "Teste Holder",   
            "ExpirationDate" => "10/2030",   
            "SecurityCode" => "123",
            "Brand" => "Visa"
        ),
    ), 
);

echo $json = json_encode($array);                                                                           
$ch = curl_init('https://api.cieloecommerce.cielo.com.br/'); 
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "POST");   
curl_setopt($ch, CURLOPT_POSTFIELDS, $json); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'MerchantId: ' . '8b08ea04-951e-414e-9541-d2d19c36fdf6',
    'MerchantKey: ' . 'QJCRZAUKNODFHXBISETYIJXSTMNTAKSDVEKCISGI',
    'Content-Length: ' . strlen($json))
);                                                                                                        
$result = curl_exec ($ch);
$novo = json_decode($result);

echo "TID ". $novo->Payment->Tid;

 

O erro:

{"MerchantOrderId":"2014111703","Payment":{"Type":"CreditCard","Amount":"15700","Installments":"1","SoftDescriptor":"123456789ABCD","CreditCard":{"CardNumber":"4551870000000183","Holder":"Teste Holder","ExpirationDate":"10\/2030","SecurityCode":"123","Brand":"Visa"}}}

Server Error

405 - HTTP verb used to access this page is not allowed.

The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.

 

Alguem consegue me ajudar por favor

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By thiagocola
      Eu peguei esse JSON no site do iFood e estou com dúvida de como converter esses 8 números em Time (HH:mm).
      Já tentei timestamp mas 8 dígitos é muito pequeno e já tentei ticks.
      Estou usando C#.
       
      "openingHours": [
                        {
                          "dayOfWeek": "MONDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "TUESDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "WEDNESDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "THURSDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "FRIDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "SATURDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        },
                        {
                          "dayOfWeek": "SUNDAY",
                          "openingTime": 13500000,
                          "closingTime": 97140000
                        }
                      ]
       
      Estou achando que tenho que fazer algum tipo de multiplicação ou em última hipótese, esse valor é algum identificador interno do sistema deles.
       
      Tentei converter assim:
       
      DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
       
      var openingTime = dtDateTime.AddSeconds(13500000).ToLocalTime();
      // {06/06/1970 03:00:00}
       
      var closingTime = dtDateTime.AddSeconds(97140000).ToLocalTime();
      // {29/01/1973 05:20:00}
       
      Mas os valores que retornam não fazem sentido pra mim.
       
    • By Marcos PP
      Tenho que retornar os dados desta URL e transformar em variaves em PHP

      Ja tentei alguns exemplos mas so me retorna Null

      http://betontec.fortiddns.com:8082/api/login?usuario=joeliton&senha=123

       
      $data = file_get_contents('http://betontec.fortiddns.com:8082/api/login?usuario=joeliton&senha=123'); $data = json_decode($data,true); var_dump($data);  
    • By robertdccaetano
      Pessoal boa tarde, tenho uma dúvida em relação a um problema que estou enfrentando aqui no php ao codificar, podem me ajudar por favor?
       
      É o seguinte, precisava passar dois objetos para o json_encode(), e capturar o atributo "nome" deles num fragmento, porém o callBack passando pelo json_encode está levando só um objeto, observem o print por favor.
       
      Obs: Ja iterei pelo foreach, mas mesmo assim está passando só um objeto pelo encode 



    • By Guilherme Luiz
      Olá pessoal,
       
      Estou com uma pequena dúvida em relação a buscar dados em json no MySQL.
      No meu banco eu tenho uma table com o seguinte campo em json.
       
      table - contacts
      column - groups_id
       
      Na coluna groups_id eu armazeno ids de grupos em json por exemplo:
      ["252","222","666"]  
      Quando eu realizo a seguinte query
      SELECT * FROM user_contacts WHERE JSON_CONTAINS(group_id, '["252"]')  
      Beleza... Ele me resulta em todos os contatos que possuem o registro 252.
      O que acontece é que essa table é 1 > N, ou seja, um contato pode fazer parte de vários grupos, sendo assim:
       
      quando eu consulto
      SELECT * FROM user_contacts WHERE JSON_CONTAINS(group_id, '["252","222"]') Ele não me resulta nos contatos que estão com grupo 252 ou 222.
      Ele me resulta nos contatos que estão com o grupo 252 e 222, ou seja, ele me retorna somente os contatos que o group id tenha ["252","222"]
       
      Eu vi que nessa situação eu poderia criar um INDEX na minha tabela usando:
      ALTER TABLE user_contacts ADD INDEX groups ( (CAST(group_id->'$.groups' AS UNSIGNED ARRAY)) );  
      Mas o CAST() na versão que Mysqli que eu possuo no servidor 4.6.X me retorna Syntax error.
      Alguem teria uma sugestão ou luz de qual caminho posso seguir nessa situação sem que seja atualizando a versão do bd?
       
       
    • By Rafael Ferreira_163968
      Boa noite, nunca mechi com curl e estou tomando uma surra bunita, se puderem me ajudar, estou consumindo uma api e preciso enviar dados do mysql para esta api, mas antes estou tentando testar com variaveis feitas a mao sem conectar no BD, funcionando com as variaveis eu desenrolo a consulta depois. segue codigo e duvida:
       
      <?php $curl = curl_init(); $numero = '000000000'; $msg = 'teste de mensagem BD'; curl_setopt_array($curl, array( CURLOPT_URL => "http://urldaapi", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\r\n \"menssage\": '.$msg.',\r\n \"number\": '.$numero.'\r\n}", CURLOPT_HTTPHEADER => array( "Authorization: 0000000000000000000", "cache-control: no-cache" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } nessa linha
       CURLOPT_POSTFIELDS => "{\r\n  \"menssage\": '.$msg.',\r\n  \"number\": '.$numero.'\r\n}", a original é a seguinte
       
      CURLOPT_POSTFIELDS => "{\r\n \"menssage\": \"Teste pela API\",\r\n \"number\": \"6200000000\"\r\n}",  gostaria da ajuda dos colegas de como pegar essas variaveis  $numero = '000000000'; e $msg = 'teste de mensagem BD'; e repassar elas para o CURLOPT_POSTFILDES, tentei como a primeira linha mas nao da, preciso modificar a linha original para consumir esses valores. podem me ajudar?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.