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; } }
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, '.', '');
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'; } ?>
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;