microsoft examples javascript iframe windows-8 paypal winjs

javascript - microsoft - winjs examples



¿Cómo se puede crear una POST a Paypal desde la aplicación WinJS iframe de Windows 8? (3)

No creo que PayPal permita el soporte iframe. Lo más probable es que usen esto:

Opciones de X-Frame

Les permite detectar si la página se procesa en un iframe y, de ser así, evitar que se cargue. (También conocido como mostrar página en blanco) como lo está experimentando.

Y no hay forma de evitar esto.

Tengo una aplicación de Windows 8 que usa Javascript / HTML y dentro de un iframe tengo un formulario de Paypal:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank"> <input type="hidden" name="cmd" value="_s-xclick"> <input type="hidden" name="on0" value="Pages"> <select name="os0"> <option value="10">$1.95</option> <option value="25">$2.95</option> </select> <input type="hidden" name="currency_code" value="USD"> <input type="hidden" name="encrypted" value="[removed]"> <input type="image" src="/btn_buynow_LG.gif" border="0" name="submit" alt=""> </form>

Este formulario funciona perfectamente bien en todos los navegadores, incluido IE10, pero cuando se envía desde dentro del iframe en la aplicación de Windows 8, llevará al usuario a la página principal de Paypal. Esto generalmente indica un problema con el formulario. Intenté alojar botones de Paypal, botones encriptados y no encriptados, y todos muestran el mismo comportamiento. Solo cuando envío este formulario desde la aplicación de Windows 8, vaya a la página de inicio de Paypal.com.

También intenté agregar cada URL a mi manifiesto como URL permitidas:

<ApplicationContentUriRules> <Rule Match="http://example.com" Type="include" /> <Rule Match="http://*.example.com" Type="include" /> <Rule Match="http://paypal.com" Type="include" /> <Rule Match="http://*.paypal.com" Type="include" /> <Rule Match="https://paypal.com" Type="include" /> <Rule Match="https://*.paypal.com" Type="include" /> </ApplicationContentUriRules>

Intenté agregar / eliminar el atributo de la zona de pruebas y agregar todas las combinaciones de las propiedades de esta manera:

<iframe sandbox="allow-same-origin allow-top-navigation allow-forms allow-scripts allow-popups" src="http://example.com/paypalbtn.html"></iframe>

Si elimino el target="_blank" , la aplicación de Windows 8 se desplazará a una pantalla en negro y se colgará. Estoy obligado a alt-tab y apago la aplicación. Supongo que es un problema con el formulario POST a una nueva ventana en otro proceso.

¿Cómo puedo iniciar Paypal desde el iframe de una aplicación de Windows 8?

¿Se requiere un formulario POST? Ahora me estoy dando cuenta de que un formulario GET funciona.


Paypal bloqueará el formulario POST a la nueva ventana cuando se lance desde un iframe en la aplicación de Windows 8. El resultado es que ve la página principal de Paypal en lugar del formulario de pedido de compra.

Puedo confirmar que simplemente cambiar el método de formulario a GET y usar un target="_blank" funciona perfectamente sin problemas:

<form action="https://www.paypal.com/cgi-bin/webscr" method="get" target="_blank">

Otra forma de solucionar este problema dentro del iframe es usar una etiqueta de anclaje estándar alrededor del texto o una imagen y crear manualmente la URL de esta forma:

<a href="https://www.paypal.com/cgi-bin/webscr?custom=[custom info]&item_name=[URL encoded name]&item_number=[num]&amount=9.95&currency_code=USD&cmd=_xclick&business=[paypal email address]&return=[URL encoded URL]">Buy Now</a>

El crédito para esta respuesta va a esta página sobre enlaces de Paypal en lugar de botones .