Inheritance: extends PagarMe_TransactionCommon
 public function confirm()
 {
     if ($this->session->data['payment_method']['code'] == 'pagar_me_checkout') {
         $this->load->model('checkout/order');
         $this->load->model('payment/pagar_me_checkout');
         Pagarme::setApiKey($this->config->get('pagar_me_checkout_api'));
         $transaction = PagarMe_Transaction::findById($this->request->post['token']);
         $amount = $transaction->amount;
         try {
             $transaction->capture($amount);
         } catch (Exception $e) {
             $this->log->write($e->getMessage());
         }
         $status = $transaction->status;
         if ($transaction->status == 'authorized' || $transaction->status == 'paid') {
             $status = 'paid';
             $this->model_payment_pagar_me_checkout->addTransactionId($this->session->data['order_id'], $transaction->id, NULL);
         } else {
             $this->model_payment_pagar_me_checkout->addTransactionId($this->session->data['order_id'], $transaction->id, $transaction->boleto_url);
             $this->session->data['checkout_pagar_me_boleto_url'] = $transaction->boleto_url;
         }
         $this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('pagar_me_checkout_order_' . $status), '', true);
         $this->response->redirect($this->url->link('checkout/success', '', 'SSL'));
     }
 }
 public function payment()
 {
     $this->load->model('checkout/order');
     $this->load->model('account/customer');
     $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
     $customer = $this->model_account_customer->getCustomer($order_info['customer_id']);
     if ($this->config->get('dados_status')) {
         if ($customer['cpf'] != '') {
             $document_number = $this->removeSeparadores($customer['cpf']);
             $customer_name = $order_info['payment_firstname'] . " " . $order_info['payment_lastname'];
         } else {
             $document_number = $this->removeSeparadores($customer['cnpj']);
             $customer_name = $customer['razao_social'];
         }
         $numero = $order_info['payment_numero'];
         $complemento = $order_info['payment_company'];
     } else {
         $document_number = $this->removeSeparadores($order_info['payment_tax_id']);
         $customer_name = $order_info['payment_firstname'] . " " . $order_info['payment_lastname'];
         $numero = 'Sem número';
         $complemento = '';
     }
     Pagarme::setApiKey($this->config->get('pagar_me_cartao_api'));
     $transaction = new PagarMe_Transaction(array('amount' => $this->request->post['amount'], 'card_hash' => $this->request->post['card_hash'], 'installments' => $this->request->post['installments'], 'postback_url' => HTTP_SERVER . 'index.php?route=payment/pagar_me_cartao/callback', "customer" => array("name" => $customer_name, "document_number" => $document_number, "email" => $order_info['email'], "address" => array("street" => $order_info['payment_address_1'], "neighborhood" => $order_info['payment_address_2'], "zipcode" => $order_info['payment_postcode'], "street_number" => $numero, "complementary" => $complemento), "phone" => array("ddd" => substr(preg_replace('/[^0-9]/', '', $order_info['telephone']), 0, 2), "number" => substr(preg_replace('/[^0-9]/', '', $order_info['telephone']), 2)))));
     $transaction->charge();
     $status = $transaction->status;
     // status da transação
     $id_transacao = $transaction->id;
     $json = array();
     $this->log->write($status);
     $this->load->model('payment/pagar_me_cartao');
     if ($status == 'paid' || $status == 'processing') {
         $this->model_payment_pagar_me_cartao->addTransactionId($this->session->data['order_id'], $id_transacao, $this->request->post['installments'], $this->request->post['bandeira']);
         $json['success'] = true;
     } else {
         $this->model_payment_pagar_me_cartao->addTransactionId($this->session->data['order_id'], $id_transacao);
         $json['success'] = false;
     }
     $this->response->setOutput(json_encode($json));
 }
 public function payment()
 {
     $this->load->model('checkout/order');
     $this->load->model('account/customer');
     $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
     $customer = $this->model_account_customer->getCustomer($order_info['customer_id']);
     if ($this->config->get('dados_status')) {
         if ($customer['cpf'] != '') {
             $document_number = $this->removeSeparadores($customer['cpf']);
             $customer_name = $order_info['payment_firstname'] . " " . $order_info['payment_lastname'];
         } else {
             $document_number = $this->removeSeparadores($customer['cnpj']);
             $customer_name = $customer['razao_social'];
         }
         $numero = $order_info['payment_numero'];
         $complemento = $order_info['payment_company'];
     } else {
         $document_number = $this->removeSeparadores($order_info['payment_tax_id']);
         $customer_name = $order_info['payment_firstname'] . " " . $order_info['payment_lastname'];
         $numero = 'Sem número';
         $complemento = '';
     }
     Pagarme::setApiKey($this->config->get('pagar_me_boleto_api'));
     $transaction = new PagarMe_Transaction(array('amount' => $this->request->post['amount'], 'payment_method' => 'boleto', 'boleto_expiration_date' => date('Y-m-d', strtotime('+' . $this->config->get('pagar_me_boleto_dias_vencimento') + 1 . ' days')), 'postback_url' => HTTP_SERVER . 'index.php?route=payment/pagar_me_boleto/callback', "customer" => array("name" => $customer_name, "document_number" => $document_number, "email" => $order_info['email'], "address" => array("street" => $order_info['payment_address_1'], "neighborhood" => $order_info['payment_address_2'], "zipcode" => $this->removeSeparadores($order_info['payment_postcode']), "street_number" => $numero, "complementary" => $complemento), "phone" => array("ddd" => substr(preg_replace('/[^0-9]/', '', $order_info['telephone']), 0, 2), "number" => substr(preg_replace('/[^0-9]/', '', $order_info['telephone']), 2)))));
     try {
         $transaction->charge();
     } catch (Exception $e) {
         $this->log->write("Erro Pagar.Me boleto: " . $e->getMessage());
         die;
     }
     $status = $transaction->status;
     // status da transação
     $boleto_url = $transaction->boleto_url;
     // URL do boleto bancário
     $id_transacao = $transaction->id;
     $json = array();
     if ($status == 'waiting_payment') {
         $this->load->model('payment/pagar_me_boleto');
         $this->model_payment_pagar_me_boleto->addTransactionId($this->session->data['order_id'], $id_transacao, $boleto_url);
         $json['transaction'] = $transaction->id;
         $json['success'] = true;
         $json['boleto_url'] = $boleto_url;
     } else {
         $json['success'] = false;
     }
     $this->response->setOutput(json_encode($json));
 }
 public function iniciaPagamentoPagarme()
 {
     $pagarme = $this->obterCredenciaisPagarme();
     Pagarme::setApiKey($pagarme['pagarme_key_api']);
     $transaction = new PagarMe_Transaction(array("amount" => $this->valor, "card_hash" => $this->card_hash, "payment_method" => $this->formaPagamento, 'postback_url' => $this->notificationURLPagarMe, "installments" => $this->parcelas, "email" => $this->emailUsuario, 'metadata' => array('id_pedido' => $this->transacaoID), "customer" => array("name" => $this->nomeUsuario, "email" => $this->emailUsuario)));
     try {
         $transaction->charge();
         $retorno['status'] = true;
         $retorno['conteudo'] = $transaction;
         return $retorno;
     } catch (PagarMe_Exception $e) {
         $msg = str_replace('consulte nossa documentação em https://pagar.me/docs.', 'consulte nosso FAQ.', $e->getMessage());
         $retorno['status'] = false;
         $retorno['conteudo'] = '<br> Erro : ' . $msg;
         return $retorno;
     }
 }
Example #5
0
 public function testValidation()
 {
     $transaction = new PagarMe_Transaction();
     $transaction->setCardNumber("123");
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $transaction->charge();
     $transaction->setCardNumber('4111111111111111');
     $transaction->setCardHolderName('');
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $transaction->charge();
     $transaction->setCardHolderName("Jose da silva");
     $transaction->setExpiracyMonth(13);
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $transaction->charge();
     $transaction->setExpiracyMonth(12);
     $transaction->setExpiracyYear(10);
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $transaction->charge();
     $transaction->setExpiracyYear(16);
     $transaction->setCvv(123456);
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $transaction->charge();
     $transaction->setCvv(123);
     $transaction->setAmount(0);
     $this->expectException(new IsAExpectation('PagarMe_Exception'));
     $transaction->charge();
     $transaction->setAmount(1000);
 }
<?php   
require("Pagarme.php");
Pagarme::setApiKey("ak_test_VI0RjtmUyIqfXUUYdLHGDOCEUHoUtk");

$transaction = PagarMe_Transaction::findById("177784");

$TRANSACAO = formataValoresTransacao($transaction);



echo utf8_decode("valor da transação : ".$TRANSACAO['total']);
echo "<br>valor de custo : ".$TRANSACAO['transacao_custo'];
echo '<br><br><br><br><br>';
print_r($TRANSACAO);

//echo '<br><br><br><br><br>';       
//print_r($transaction);


function formataValoresTransacao($transaction){

    $valor_transacao       = substr($transaction->amount, 0, -2) . '.' . substr($transaction->amount, -2);
    $custo 			       = number_format($transaction->cost,0, '.', '');    
    $valor_custo	       = substr($custo, 0, -2) . '.' . substr($custo, -2);    
    $TRANSACAO['parcelas'] = $transaction->installments;

    if($TRANSACAO['parcelas'] >= 2 && $TRANSACAO['parcelas'] <= 6) $TRANSACAO['taxas'] = (1.49 + 2.60);
    else if($TRANSACAO['parcelas'] >= 7 && $TRANSACAO['parcelas'] <= 12) $TRANSACAO['taxas'] = (1.49 + 2.9);
    else $TRANSACAO['taxas'] = (1.49 + 2.5);

    $TRANSACAO['total'] = number_format($valor_transacao, 2, '.', '');
Example #7
0
         require("Pagarme.php");

        Pagarme::setApiKey("ak_test_VI0RjtmUyIqfXUUYdLHGDOCEUHoUtk");
        //R$ 14,99 = 1499
        $transaction = new PagarMe_Transaction(array(
            'amount' => 19999,
            'payment_method' => "boleto",
            'postback_url' => "http://requestb.in/1gmoytx1",
            'boleto_expiration_date' => (date('d/m/Y', strtotime(date('d-m-Y') . ' + 7 days'))),            
            "customer" => array(
                "name" => "Thiago",
                "document_number" => "135.105.251-91",
                "email" => "*****@*****.**",
                "address" => array(
                    "street" => "Av. Brigadeiro Faria Lima",
                    "neighborhood" => "Jardim Paulistano",
                    "zipcode" => "01452000",
                    "street_number" => "2941",
                    "complementary" => "8º andar"
                ),
                "phone" => array(
                    "ddd" => "11",
                    "number" => "30713261"
                ),
                
            
        )));

        $transaction->charge();

        $boleto_url = $transaction->boleto_url; // URL do boleto bancário
 public function payment()
 {
     $this->load->model('checkout/order');
     $this->load->model('account/customer');
     $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
     $customer = $this->model_account_customer->getCustomer($order_info['customer_id']);
     $document_number = '';
     $numero = 'Sem Número';
     $complemento = '';
     $customer_name = trim($order_info['payment_firstname']) . ' ' . trim($order_info['payment_lastname']);
     /* Pega os custom fields de CPF/CNPJ, número e complemento */
     $this->load->model('account/custom_field');
     $custom_fields = $this->model_account_custom_field->getCustomFields($customer['customer_group_id']);
     foreach ($custom_fields as $custom_field) {
         if ($custom_field['location'] == 'account') {
             if ((strpos(strtolower($custom_field['name']), 'cpf') || strpos(strtolower($custom_field['name']), 'cnpj')) !== false) {
                 $document_number = $order_info['custom_field'][$custom_field['custom_field_id']];
             }
         } elseif ($custom_field['location'] == 'address') {
             if (strpos(strtolower($custom_field['name']), 'numero') !== false || strpos(strtolower($custom_field['name']), 'número') !== false) {
                 $numero = $order_info['payment_custom_field'][$custom_field['custom_field_id']];
             } elseif (strpos(strtolower($custom_field['name']), 'complemento')) {
                 $complemento = $order_info['payment_custom_field'][$custom_field['custom_field_id']];
             }
         }
     }
     Pagarme::setApiKey($this->config->get('pagar_me_cartao_api'));
     $transaction = new PagarMe_Transaction(array('amount' => $this->request->post['amount'], 'card_hash' => $this->request->post['card_hash'], 'installments' => $this->request->post['installments'], 'postback_url' => HTTP_SERVER . 'index.php?route=payment/pagar_me_cartao/callback', "customer" => array("name" => $customer_name, "document_number" => $document_number, "email" => $order_info['email'], "address" => array("street" => $order_info['payment_address_1'], "neighborhood" => $order_info['payment_address_2'], "zipcode" => $this->removeSeparadores($order_info['payment_postcode']), "street_number" => $numero, "complementary" => $complemento), "phone" => array("ddd" => substr(preg_replace('/[^0-9]/', '', $order_info['telephone']), 0, 2), "number" => substr(preg_replace('/[^0-9]/', '', $order_info['telephone']), 2)))));
     $transaction->charge();
     $status = $transaction->status;
     // status da transação
     $id_transacao = $transaction->id;
     $json = array();
     $this->log->write($status);
     $this->load->model('payment/pagar_me_cartao');
     if ($status == 'paid' || $status == 'processing') {
         $this->model_payment_pagar_me_cartao->addTransactionId($this->session->data['order_id'], $id_transacao, $this->request->post['installments'], $this->request->post['bandeira']);
         $json['success'] = true;
     } else {
         $this->model_payment_pagar_me_cartao->addTransactionId($this->session->data['order_id'], $id_transacao);
         $json['success'] = false;
     }
     $this->response->setOutput(json_encode($json));
 }
 public function formataValoresAssinatura($id, $tipo)
 {
     $dados = $this->contaPagarme();
     Pagarme::setApiKey($dados['key_api']);
     if ($tipo == 'transaction') {
         $transaction = PagarMe_Transaction::findById($id);
         $subscription = PagarMe_Subscription::findById($transaction->subscription_id);
     } else {
         $subscription = PagarMe_Subscription::findById($id);
     }
     $valor_transacao = substr($subscription->current_transaction->amount, 0, -2) . '.' . substr($subscription->current_transaction->amount, -2);
     if ($subscription->current_transaction->cost == 0) {
         $custo = "380";
     } else {
         $custo = number_format($subscription->current_transaction->cost, 0, '.', '');
     }
     $valor_custo = substr($custo, 0, -2) . '.' . substr($custo, -2);
     $ASSINATURA['parcelas'] = $subscription->current_transaction->installments;
     //BOLETO
     $ASSINATURA['boleto_url'] = $subscription->current_transaction->boleto_url;
     $ASSINATURA['boleto_barcode'] = $subscription->current_transaction->boleto_barcode;
     $ASSINATURA['boleto_dataExpiracao'] = substr($subscription->current_transaction->expiration_date, 0, 10);
     if (empty($ASSINATURA['boleto_url'])) {
         if ($ASSINATURA['parcelas'] >= 2 && $ASSINATURA['parcelas'] <= 6) {
             $ASSINATURA['taxas'] = 1.49 + 2.6;
         } else {
             if ($ASSINATURA['parcelas'] >= 7 && $ASSINATURA['parcelas'] <= 12) {
                 $ASSINATURA['taxas'] = 1.49 + 2.9;
             } else {
                 $ASSINATURA['taxas'] = 1.49 + 2.5;
             }
         }
         //cálculo para ver a taxa
         $ASSINATURA['transacao_taxa_05'] = 0.5 * 100 / substr($subscription->current_transaction->amount, 0, -2);
         $ASSINATURA['transacao_taxa_05'] = number_format($ASSINATURA['transacao_taxa_05'], 2, '.', '');
         $ASSINATURA['taxas'] = $ASSINATURA['taxas'] + $ASSINATURA['transacao_taxa_05'];
     }
     $ASSINATURA['total'] = number_format($valor_transacao, 2, '.', '');
     $ASSINATURA['transacao_custo'] = number_format($valor_custo, 2, '.', '');
     $ASSINATURA['total_liquido'] = number_format($ASSINATURA['total'] - $ASSINATURA['transacao_custo'], 2, '.', '');
     $ASSINATURA['venda_id'] = $subscription->metadata->id_pedido;
     $ASSINATURA['id'] = $subscription->current_transaction->id;
     $ASSINATURA['id_asinatura'] = $subscription->id;
     $ASSINATURA['data'] = $subscription->current_transaction->date_created;
     $ASSINATURA['ultima_atualizacao'] = $subscription->current_transaction->date_updated;
     $ASSINATURA['status'] = $subscription->status;
     //DADOS ASSINATURA
     $ASSINATURA['data_inicio_cobranca'] = substr($subscription->current_period_start, 0, 10) . ' 00:00';
     $ASSINATURA['data_fim_cobranca'] = substr($subscription->current_period_end, 0, 10) . ' 23:59';
     //DADOS CARTÃO
     $ASSINATURA['cartao_fingerprint'] = $subscription->card->fingerprint;
     $ASSINATURA['cartao_id'] = $subscription->card->id;
     $ASSINATURA['cartao_nome'] = $subscription->card->holder_name;
     //DADOS PLANO
     $ASSINATURA['plano_id'] = $subscription->plan->id;
     $ASSINATURA['plano_valor'] = $subscription->plan->amount;
     $ASSINATURA['plano_dias'] = $subscription->plan->days;
     $ASSINATURA['plano_nome'] = $subscription->plan->name;
     $ASSINATURA['plano_dias_tiral'] = $subscription->plan->trial_days;
     $ASSINATURA['plano_data_criacao'] = $subscription->plan->date_created;
     //DADOS CLIENTE
     $ASSINATURA['cliente_id'] = $subscription->customer->id;
     $ASSINATURA['cliente_nome'] = $subscription->customer->name;
     $ASSINATURA['cliente_cpf'] = $subscription->customer->document_number;
     $ASSINATURA['cliente_email'] = $subscription->customer->email;
     $ASSINATURA['cliente_nome'] = $subscription->customer->name;
     return $ASSINATURA;
 }
<?php

	require("Pagarme.php");

    Pagarme::setApiKey("ak_test_VI0RjtmUyIqfXUUYdLHGDOCEUHoUtk");

	$transaction = PagarMe_Transaction::findById("176698");

	$POST['id'] = $transaction->id;
	$POST['fingerprint'] = $transaction->card->fingerprint;
	print_r($POST);
	echo'<br><br><br><br>';
	if(PagarMe::validateFingerprint($POST['id'], $POST['fingerprint'])) {
		echo 'valida';
 	}else{
 		echo 'false';
 	}
    
       
?>
    
Example #11
0
            if (empty($_REQUEST['email'])) {
                $error['email'] = 'Campo E-Mail obrigatório';
            } else {
                $field['email'] = $_REQUEST['email'];
            }
            if (count($field)) {
                $session->set('field', $field);
            }
            if (count($error)) {
                $session->set('error', $error);
                header('location: /../../admin/users/create.php');
            } else {
                // Gravação dos dados do form
                header('location: /../../admin/users/create.php');
            }
            break;
        case 'payment':
            $token = $_REQUEST['token'];
            \PagarMe::setApiKey("ak_test_gxdZQnY40daggFTyF2UA6dA6HgpyBR");
            $transaction = \PagarMe_Transaction::findById("{$token}");
            $transaction->capture(75000);
            var_dump($transaction);
            break;
        default:
            echo $_REQUEST['acao'];
            die('default');
            break;
    }
} else {
    die('Request Vazio');
}
<?php
    if(!empty($_POST)){
         $CARD_HASH = $_POST['card_hash'];

         require("Pagarme.php");
         Pagarme::setApiKey("ak_test_VI0RjtmUyIqfXUUYdLHGDOCEUHoUtk");

          $transaction = new PagarMe_Transaction(array(
            "amount" => 19950,            
            "card_hash" => $CARD_HASH,
            'postback_url' => "http://requestb.in/19y3in91",
            "installments" => 3,
            "email" => "*****@*****.**",
            'metadata' => array(
                    'id_pedido'      => 12345,
                    'curso'          => "java para iniciantes",
                    'valor_do_curso' => "199,50"
            ),
            "customer" => array(
                "name" => "Elton Monteiro",                
                "email" => "*****@*****.**"                
            )
        ));

        try {
            $transaction->charge();                
            //print "salve seu id : ".$transaction['id'];
            print_r($transaction);
        } catch (PagarMe_Exception $e) {
            $msg = str_replace('consulte nossa documentação em https://pagar.me/docs.', 'consulte nosso FAQ.', $e->getMessage());
            echo '<br> Erro : '.$msg;