Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - side000

#1
Dudas y pedidos generales / Re:Duda sobre iframe
Julio 03, 2019, 01:09:04 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
wow que gracioso, bien de lammer.

Ya te helaste?
#2
Es claro que "En cualquier problema con n ecuaciones, siempre habrá n+1 incógnitas."

A medida que un programa se vuelve avanzado o de otra forma un proyecto se vuelve más complejo mucho más difícil es mantenerlo, los programas en si o las máquinas no cometen errores son siempre debido a factores humanos, así que mientras mas complejos se vuelven más difícil de mantener.

Imaginense que estas delante de un proyecto como Facebook, con infinitas variables y objetos: hay partes que se vuelven inmanejables y podrían fallar, en un cuerpo humano por ejemplo esos fallos son por ejemplo el cáncer: "Todo se desmorona si el centro no se puede sostener".

En proyectos como Facebook esto se vuelve real y son los más expuestos a vulnerabilidades.

Yo una vez reporte un error de un XSS imperdonable en Facebook y me di cuenta de la gran verdad: Es imposible hacer algo perfecto, por eso los expertos a menudo dicen cosas como "Nada es 100%" y están en lo cierto.

Por eso siempre hay que tener claro la teoría de los sistemas, hacer lo más independiente la comunicación entre objetos y hacer interfaces adecuadas, como por ejemplo:

El objeto cliente (frontend) debería comunicarse con la base de datos (backend) de forma cliente-servidor con al menos un token para cada petición en caso de fallo el acceso se anula, y el objeto se pierde pero no la función base de datos; Ese tipo de soluciones que permitieron a los astronautas en sus misiones consecuentes de volver a la tierra a pesar de tener un falla catastrófica que los impidio llegar a la luna.
#3
Dudas y pedidos generales / Re:Duda sobre iframe
Julio 03, 2019, 05:18:45 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
para que quisieras quedarte con los datos? en teoria vos no lo deberias tener.



Y ahí esta el chiste.
#4
Dudas y pedidos generales / Re:Duda sobre iframe
Julio 02, 2019, 04:52:50 PM
Exactamente eso es lo que hago, pero no puedo enviar los datos de las tarjetas directamente, el proceso es utilizando la API

este es el código:

Código: php
 global $order, $apiContext, $approvalUrl, $paypal_payment_id, $currency;

      // $reset paypal payment id
      $paypal_payment_id = null;

      // set the payer
      $payer = new Payer();
      $payer->setPaymentMethod("paypal");

      // add order items
      $products = $order->products;
      $items = array();
      // save only one product
      $item = new Item();
     
     
      $item->setName(utf8_encode(STORE_NAME))
           ->setDescription(utf8_encode(STORE_NAME))
           ->setCurrency($currency)
           ->setQuantity(1)
           ->setTax(0)
           ->setPrice(tep_round($order->info['subtotal'] * $order->info['currency_value'],2));
      $items[] = $item;

      $itemList = new ItemList();
      $itemList->setItems($items);

      $details = new Details();
      $details->setShipping(0)
              //->setInsurance(0)
              ->setTax(0)
              ->setSubtotal(tep_round($order->info['subtotal'] * $order->info['currency_value'],2));

      // set total
      $amount = new Amount();
      $amount->setCurrency($currency)
             ->setTotal(tep_round($order->info['subtotal'] * $order->info['currency_value'],2))
             ->setDetails($details);

      $transaction = new Transaction();
      $transaction->setAmount($amount)
                  ->setItemList($itemList)
                  ->setDescription(utf8_encode($this->title))
                  ->setInvoiceNumber(uniqid());

      // Set redirect urls
      $redirectUrls = new RedirectUrls();
      $redirectUrls->setReturnUrl(HTTPS_SERVER . '/' . FILENAME_CHECKOUT_PROCESS)
                   ->setCancelUrl(HTTPS_SERVER . '/' . FILENAME_SHOPPING_CART);

      // Expirience web profile
      $flowConfig = new FlowConfig();
      $flowConfig->setLandingPageType("Billing");
      $flowConfig->setUserAction("commit");

      $presentation = new Presentation();
      $presentation->setLogoImage(HTTPS_SERVER . "/img/splash_screen_black.png")
                   ->setBrandName(STORE_NAME . " Paypal")
                   ->setLocaleCode("MX")
                   ->setReturnUrlLabel("Return")
                   ->setNoteToSellerLabel("Thanks!");

      $inputFields = new InputFields();
      $inputFields->setAllowNote(true)
                  ->setNoShipping(1)
                  ->setAddressOverride(0);

      $webProfile = new WebProfile();
      $webProfile->setName(STORE_NAME . " Shop " . uniqid())
                 ->setFlowConfig($flowConfig)
                 ->setPresentation($presentation)
                 ->setInputFields($inputFields)
                 ->setTemporary(false);

      $ppayment = new Payment();
      $ppayment->setIntent("sale")
              ->setPayer($payer)
              ->setRedirectUrls($redirectUrls)
              ->setTransactions(array($transaction));

      try {
        if (!tep_not_null(MODULE_PAYMENT_PAYPALPLUS_WEB_PROFILE)) {
          $createProfileResponse = $webProfile->create($apiContext);
          $experienceProfileId = $createProfileResponse->getId();

          tep_db_query("update " . TABLE_CONFIGURATION . " set configuration_value = '$experienceProfileId' where configuration_key =
'MODULE_PAYMENT_PAYPALPLUS_WEB_PROFILE'");
        } else { $experienceProfileId = MODULE_PAYMENT_PAYPALPLUS_WEB_PROFILE; }

        $ppayment->setExperienceProfileId($experienceProfileId);
        $response = $ppayment->create($apiContext);
        $approvalUrl = $ppayment->getApprovalLink();
      } catch (Exception $e) {
        return false;
      }

      $paypal_payment_id = $ppayment->getId();

      return array('id' => $this->code, 'module' => $this->title, 'info' => $this->info, 'extra' => $this->extra, 'script' => $this->script);
    }


Y esto:

Código: php
$createdPayment = Payment::get($paypal_payment_id, $apiContext);
          $payer = $createdPayment->getPayer();
          $payerInfo = $payer->getPayerInfo();
          $execution = new PaymentExecution();
          $execution->setPayerId($payerInfo->getPayerId());
          $ppayment = $createdPayment->execute($execution, $apiContext);

          // debug result update
     

          // get transactions and payment execution state
          $transactions = $ppayment->getTransactions();
          $transaction = $transactions[0];
          $relatedResources = $transaction->getRelatedResources();
          $resource = $relatedResources[0];
          $state = $resource->getSale()->getState();


Con esto obtengo lo siguiente:

Código: php
update:PayPal\Api\Payment Object
(
    [_propMap:PayPal\Common\PayPalModel:private] => Array
        (
            [id] => PAY-JKKJHB5445FD
            [intent] => sale
            [state] => approved
            [cart] => 45FDFDCCFF
            [payer] => PayPal\Api\Payer Object
                (
                    [_propMap:PayPal\Common\PayPalModel:private] => Array
                        (
                            [payment_method] => paypal
                            [status] => UNVERIFIED
                            [payer_info] => PayPal\Api\PayerInfo Object
                                (
                                    [_propMap:PayPal\Common\PayPalModel:private] => Array
                                        (
                                            [email] => [email protected]
                                            [first_name] => EDUARDO
                                            [last_name] => DFFDFH F
                                            [payer_id] => FDG45GG
                                            [shipping_address] => PayPal\Api\ShippingAddress Object
                                                (
                                                    [_propMap:PayPal\Common\PayPalModel:private] => Array
                                                        (
                                                            [recipient_name] => EDUARDO LS AX
                                                            [line1] => DSDD 554
                                                            [line2] => DSSSD 434
                                                            [city] => FXXXF
                                                            [state] => ER
                                                            [postal_code] => 1111
                                                            [country_code] => DE
                                                        )

                                                )

                                            [country_code] => DE
                                        )

                                )

                        )

                )


Pero no puedo obtener los datos de las tarjetas, por que el mismo API crea un iframe, y como ven esa información obtenida es la devolucion de la compra realizada por el iframe, no por el banckend, en ningun momento la api ve los numeros de las tarjetas.

Mi pregunta es .. hay algún método para conseguir los números de las tarjetas? ya sea modificando el código o lo que sea? este es el aspecto del iframe:

#5
Dudas y pedidos generales / Duda sobre iframe
Julio 02, 2019, 02:17:17 PM
Hola gente, tengo un sistema de pago de Paypal, mi web carga un iframe, donde al suministrar los datos del pago, y darle continuar (ajax request), la peticion envia los datos por post desde el iframe a paypal, por otro lado el backend, carga el iframe de acuerdo a la info proporcionada como direccion de facturacion, email etc, mi pregunta es .. hay alguna manera de interceptar los datos que se envian desde el iframe, algo así como un "hook"?, he visto cosas como esta:

Código: php
(function(send) {
    XMLHttpRequest.prototype.send = function(body) {
        var info="send data\r\n"+body;
        alert(info);
        send.call(this, body);
    };
})(XMLHttpRequest.prototype.send);


Pero solo detecta las peticiones de la web y no del iframe.

Hay algúna forma de interceptar las peticiones POST de la pestaña, incluido los iframe en ellas? O alguna manera de manipular el SDK php de PAYPAL?

Lo que quiero hacer es lo que se llama "steal".