コード例 #1
1
ファイル: pagseguro.php プロジェクト: dlanileonardo/pagseguro
 public function inicializaPagamento($cart, $urlRetorno)
 {
     require_once "vendor/PagSeguroLibrary/PagSeguroLibrary.php";
     $paymentRequest = new PagSeguroPaymentRequest();
     $paymentRequest->setCurrency("BRL");
     foreach ($cart->getProducts() as $product) {
         $paymentRequest->addItem($product['id_product_attribute'], $product['name'], $product['quantity'], $product['price_wt']);
     }
     $customer = new Customer($cart->id_customer);
     $address = new Address($cart->id_address_delivery);
     $telefone_full = preg_replace("/([^0-9])/", null, $address->phone);
     $telefone_full = str_pad($telefone_full, 11, "0", STR_PAD_LEFT);
     $areacode = substr($telefone_full, 1, 2);
     $phone = substr($telefone_full, 3);
     $state = new State($address->id_state);
     $number = preg_replace("/([^0-9])/", null, $address->address2);
     $paymentRequest->setShippingAddress($address->postcode, $address->address1, $number, null, null, $address->city, $state->iso_code, $address->country);
     $CODIGO_SHIPPING = PagSeguroShippingType::getCodeByType('NOT_SPECIFIED');
     $paymentRequest->setShippingType($CODIGO_SHIPPING);
     $paymentRequest->setShippingCost(number_format($cart->getOrderShippingCost(), 2, ".", ""));
     $paymentRequest->setSender($customer->firstname . " " . $customer->lastname, $customer->email, $areacode, $phone);
     $order_id = (int) Order::getOrderByCartId($cart->id);
     $paymentRequest->setReference($order_id);
     $paymentRequest->setRedirectURL($urlRetorno);
     $credentials = new PagSeguroAccountCredentials(Configuration::get("PAGSEGURO_BUSINESS"), Configuration::get("PAGSEGURO_TOKEN"));
     $url = $paymentRequest->register($credentials);
     return $url;
 }
コード例 #2
0
 public function requestPayment($items, $client, $reference = null, $shipping = null, $redirect = '/', $currency = 'BRL')
 {
     $requestPayment = new PagSeguroPaymentRequest();
     $requestPayment->setCurrency($currency);
     $itemId = 1;
     foreach ($items as $item) {
         $item['id'] = $this->formatNumber($itemId++);
         $requestPayment->addItem($item);
     }
     $requestPayment->setReference($reference);
     $requestPayment->setSenderName($client['client_name']);
     $requestPayment->setSenderEmail($client['client_email']);
     $requestPayment->setSenderPhone($client['client_ddd'], $client['client_phone']);
     $requestPayment->setShippingType($shipping['frete']);
     $requestPayment->setShippingCost(0);
     $requestPayment->setShippingAddress($shipping['cep'], $shipping['rua'], $shipping['numero'], $shipping['complemento'], $shipping['bairro'], $shipping['cidade'], $shipping['estado'], $shipping['pais']);
     $requestPayment->setRedirectURL($redirect);
     $requestPayment->setMaxAge(86400 * 3);
     try {
         return $requestPayment->register($this->getCredentials());
     } catch (PagSeguroServiceException $e) {
         foreach ($e->getErrors() as $key => $error) {
             echo $error->getCode();
             echo $error->getMessage();
         }
     }
 }
コード例 #3
0
ファイル: PagSeguro.php プロジェクト: kaabsimas/caravana
 public function paymentRequests($billId)
 {
     if (!isset($_SESSION['user'])) {
         redirect('site/login', 'refresh');
     }
     $billInfo = $this->billing->getBillingInfo($billId);
     $items = [];
     $sender = [];
     if (!empty($billInfo)) {
         $package = $billInfo['package'];
         $client = $billInfo['client'];
         $items[] = ['id' => 1, 'descricao' => $package->description, 'quantidade' => 1, 'valor' => $package->price, 'peso' => NULL, 'frete' => NULL];
         foreach ($billInfo['acquisition']['modifiers'] as $k => $modifier) {
             $items[] = ['id' => 2 + $k, 'descricao' => $modifier->description, 'quantidade' => 1, 'valor' => $modifier->price_modifier, 'peso' => NULL, 'frete' => NULL];
         }
         $sender = array('nome' => $this->userinfo->partialName($client->id), 'email' => $client->main_email, 'ddd' => NULL, 'telefone' => NULL);
     }
     if (!empty($items)) {
         $paymentRequest = new PagSeguroPaymentRequest();
         foreach ($items as $item) {
             $paymentRequest->addItem($item['id'], $item['descricao'], 1, (double) $item['valor']);
         }
         if ($sender != NULL) {
             $paymentRequest->setSender($sender['nome'], $sender['email'], $sender['ddd'], $sender['telefone']);
         }
         $paymentRequest->setCurrency('BRL');
         $paymentRequest->setReference($billId);
         $paymentRequest->setMaxAge(172800);
         $paymentRequest->setRedirectURL(site_url('client/profile'));
         $paymentRequest->setNotificationURL(site_url('PagSeguro/notification'));
         $checkoutUrl = NULL;
         try {
             $credentials = PagSeguroConfig::getAccountCredentials();
             $checkoutUrl = $paymentRequest->register($credentials);
         } catch (PagSeguroServiceException $e) {
             die(var_dump($e));
         }
         if ($checkoutUrl != NULL) {
             redirect($checkoutUrl, 'refresh');
         } else {
             $alert = ['message' => 'Ouve um problema ao emitir cobrança no PagSeguro', 'class' => 'alert-danger', 'icon' => 'glyphicon-remove'];
             $this->session->set_flashdata('alert', $alert);
             //redirect( 'client/acquisitions', 'refresh' );
         }
     }
     return FALSE;
 }
コード例 #4
0
 private function _generatePagSeguroRequestData($order, $notify_url, $return_url)
 {
     $paymentRequest = new PagSeguroPaymentRequest();
     $paymentRequest->setCurrency(PagSeguroCurrencies::getIsoCodeByName('REAL'));
     // currency
     $paymentRequest->setReference($order->order_id);
     // reference
     $paymentRequest->setRedirectURL($return_url);
     // redirect url
     $paymentRequest->setNotificationURL($notify_url);
     // notification url
     $paymentRequest->setItems($this->_generateProductsData($order));
     // products
     $paymentRequest->setExtraAmount($this->_getExtraAmountValues($order));
     // extra values
     $paymentRequest->setSender($this->_generateSenderData($order));
     // sender
     $paymentRequest->setShipping($this->_generateShippingData($order));
     // shipping
     return $paymentRequest;
 }
コード例 #5
0
ファイル: pagseguro.php プロジェクト: vidaecor/opencart
 /**
  * Generate PagSeguro Payment Request
  * @return \PagSeguroPaymentRequest
  */
 private function _generatePagSeguroPaymentRequestObject()
 {
     $paymentRequest = new PagSeguroPaymentRequest();
     $paymentRequest->setCurrency(PagSeguroCurrencies::getIsoCodeByName("REAL"));
     $paymentRequest->setExtraAmount($this->_generateExtraAmount());
     $paymentRequest->setRedirectURL($this->_getPagSeguroRedirectUrl());
     $paymentRequest->setNotificationURL($this->_getPagSeguroNotificationURL());
     $paymentRequest->setItems($this->_generatePagSeguroProductsData());
     $paymentRequest->setSender($this->_generatepagSeguroSenderDataObject());
     $paymentRequest->setShipping($this->_generatePagSeguroShippingDataObject());
     return $paymentRequest;
 }
コード例 #6
0
 /**
  *  Generates PagSeguro request data
  */
 private function _generatePagSeguroRequestData()
 {
     $payment_request = new PagSeguroPaymentRequest();
     $payment_request->setCurrency(PagSeguroCurrencies::getIsoCodeByName('Real'));
     /* Currency */
     $payment_request->setExtraAmount($this->_getExtraAmountValues());
     /* Extra amount */
     $payment_request->setItems($this->_generateProductsData());
     /* Products */
     $payment_request->setSender($this->_generateSenderData());
     /* Sender */
     $payment_request->setShipping($this->_generateShippingData());
     /* Shipping */
     if (!Tools::isEmpty(Configuration::get('PAGSEGURO_URL_REDIRECT'))) {
         /* Redirect URL */
         $payment_request->setRedirectURL(Configuration::get('PAGSEGURO_URL_REDIRECT'));
     }
     $this->_payment_request = $payment_request;
 }
コード例 #7
0
 /**
  * Generates PagSeguro request data
  * @param VirtueMartCart $cart
  * @param array $order
  * @param TablePaymentmethods $method
  * @return PagSeguroPaymentRequest
  */
 private function _generatePagSeguroRequestData(VirtueMartCart $cart, array $order, TablePaymentmethods $method)
 {
     $paymentRequest = new PagSeguroPaymentRequest();
     $paymentRequest->setCurrency(PagSeguroCurrencies::getIsoCodeByName('REAL'));
     // currency
     $paymentRequest->setReference($order['details']['BT']->virtuemart_order_id);
     // reference
     $paymentRequest->setRedirectURL($this->_getRedirectUrl($method->pagseguro_url_redirect));
     // redirect url
     $paymentRequest->setNotificationURL($this->_getNotificationUrl($method->pagseguro_url_notification));
     // notification url
     $paymentRequest->setItems($this->_generateProductsData($cart));
     // products
     $paymentRequest->setExtraAmount($this->_getExtraAmountValues($cart));
     // extra values
     $sender = isset($order['details']['ST']) && count($order['details']['ST'] > 0) ? $order['details']['ST'] : $order['details']['BT'];
     $paymentRequest->setSender($this->_generateSenderData($sender));
     // sender
     $paymentRequest->setShipping($this->_generateShippingData($sender, $cart->pricesUnformatted['salesPriceShipment']));
     // shipping
     return $paymentRequest;
 }
コード例 #8
0
ファイル: process.php プロジェクト: rborgesds/FluxCP
    $donateIp = $_SERVER['REMOTE_ADDR'];
    $donateRef = strtoupper(uniqid(true));
    $donateUser = $session->account->userid;
    $donateBy = $params->get('payment_type');
    if ($donateBy != 'PagSeguro') {
        $errorMessage = 'Somente PagSeguro';
    } else {
        if ($donateVal < $donateMin) {
            $errorMessage = sprintf('O valor da doação deve ser maior ou igual a %s R$!', $this->formatCurrency($donateMin));
        } else {
            $transactionRequest = new PagSeguroPaymentRequest();
            $transactionRequest->setCurrency("BRL");
            $transactionRequest->addItem('01', $donateInf, '1', str_replace(",", "", $this->formatCurrency($donateVal)));
            $transactionRequest->setReference($donateRef);
            $transactionRequest->setNotificationURL($this->url('doa', 'notification', array('_host' => true)));
            $transactionRequest->setRedirectURL($this->url('doa', 'return', array('_host' => true)));
            $transactionCredentials = new PagSeguroAccountCredentials(Flux::config('EmailPagSeguro'), Flux::config('TokenPagseguro'));
            $url = $transactionRequest->register($transactionCredentials);
            if ($url) {
                $sql = "INSERT INTO {$session->loginAthenaGroup->loginDatabase}.{$donateTable} ";
                $sql .= "(account_id, userid, email, payment_id, payment_ip, payment_type, payment, payment_date) ";
                $sql .= "VALUES (?, ?, ?, ?, ?, ?, ?, NOW())";
                $sth = $session->loginAthenaGroup->connection->getStatement($sql);
                $res = $sth->execute(array($donateAcc, $donateUser, $donateEmail, $donateRef, $donateIp, $donateBy, $donateVal));
                header('Location:' . $url . '');
            } else {
                $errorMessage = 'Ocorreu um erro, reporte imediatamente a administração!';
            }
        }
    }
}
コード例 #9
0
if (isset($_POST['submit'])) {
    if ($_POST['options'] == "PagSeguro") {
        require_once 'PagSeguroLibrary/PagSeguroLibrary.php';
        /** INICIO PROCESSO PAGSEGURO */
        $paymentRequest = new PagSeguroPaymentRequest();
        $data = array('id' => '01', 'description' => 'Presente de Casamento Jèssica e Rafael', 'quantity' => 1, 'amount' => $_POST['quantity'] . '.00');
        $item = new PagSeguroItem($data);
        /* $paymentRequest deve ser um objeto do tipo PagSeguroPaymentRequest */
        $paymentRequest->addItem($item);
        //Definindo moeda
        $paymentRequest->setCurrency('BRL');
        // 1- PAC(Encomenda Normal)
        // 2-SEDEX
        // 3-NOT_SPECIFIED(Não especificar tipo de frete)
        // $paymentRequest->setShipping(3);
        $sedexCode = PagSeguroShippingType::getCodeByType('SEDEX');
        $paymentRequest->setShippingType($sedexCode);
        $paymentRequest->setShippingAddress('30240440', 'Rua Professor Tancredo Martins', '59', 'apto. 201', 'São Lucas', 'Belo Horizonte', 'MG', 'BRA');
        //Url de redirecionamento
        $redirectURL = "http://www.jessicafaria.com.br/casamento_jr/casamento.php";
        $paymentRequest->setRedirectURL($redirectURL);
        // Url de retorno
        $credentials = PagSeguroConfig::getAccountCredentials();
        //credenciais do vendedor
        //$compra_id = App_Lib_Compras::insert($produto);
        //$paymentRequest->setReference($compra_id);//Referencia;
        $url = $paymentRequest->register($credentials);
        print "<script>\n\twindow.location.href = '" . $url . "';\n</script>";
    }
}
コード例 #10
0
 /**
  * Create PagSeguro payment request html with payment url
  *
  * @return string
  */
 private function createPaymentRequest()
 {
     $this->_validator();
     $PaymentRequest = new PagSeguroPaymentRequest();
     $PaymentRequest->setCurrency(PagSeguroCurrencies::getIsoCodeByName(self::REAL));
     $PaymentRequest->setReference($this->Order->getId());
     //Order ID
     $PaymentRequest->setShipping($this->getShippingInformation());
     //Shipping
     $PaymentRequest->setSender($this->getSenderInformation());
     //Sender
     $PaymentRequest->setItems($this->getItensInformation());
     //Itens
     $PaymentRequest->setShippingType(SHIPPING_TYPE);
     $PaymentRequest->setShippingCost(number_format($this->Order->getShippingAmount(), 2, '.', ''));
     $PaymentRequest->setNotificationURL($this->getNotificationURL());
     //Define Redirect Url
     $redirect_url = $this->getRedirectUrl();
     if (!empty($redirect_url) and $redirect_url != null) {
         $PaymentRequest->setRedirectURL($redirect_url);
     } else {
         $PaymentRequest->setRedirectURL(Mage::getUrl() . 'checkout/onepage/success/');
     }
     //Define Extra Amount Information
     $PaymentRequest->setExtraAmount($this->_extraAmount());
     try {
         $payment_url = $PaymentRequest->register($this->getCredentialsInformation());
     } catch (PagSeguroServiceException $ex) {
         Mage::log($ex->getMessage());
         $this->_redirectUrl(Mage::getUrl() . 'checkout/onepage');
     }
     return $payment_url;
 }