tarjeta - Pago adaptable paypal para web móvil.
pagar con saldo de celular (4)
El mejor enfoque que encontré fue la experiencia del mini navegador. Pero tuve una variedad de diferentes problemas en los dispositivos móviles que lo implementaron (que es lo que significaba en primer lugar). Verá muchas preguntas similares sobre pagos adaptables y todo tipo de problemas con el uso de lightbox y la experiencia del mini navegador.
Pero FINALMENTE ... ¡Lo he descubierto después de horas y horas, días y días! Esto debería resolver los problemas de todos, de todas las variedades, cuando se trata de problemas con los pagos adaptativos de PayPal y los problemas con:
- La página predeterminada de PayPal redirigida NO responde a dispositivos móviles y se ve horrible en dispositivos móviles.
- La caja de luz se "cuelga" y no se cierra en algunos dispositivos móviles.
- El mini navegador no se cierra después de completar el pago o la cancelación.
- El mini navegador no redirige a callBackFunction desde el script paypal apdg.js.
- No redireccionar a returnUrl y cancelUrl después de la finalización del pago (o al cancelar)
- Chrome para ios (iphones) no inicia la función de devolución de llamada y, por lo tanto, después de la finalización o cancelación del pago, solo lo mantiene en la página desde la que inició la página de pago de PayPal, lo que le impide validar el éxito o la falta de pago.
Tambor rollo por favor .... aqui esta !! Esto reemplaza cualquier necesidad de archivos javascript de PayPal, etc. Todo lo que necesita es lo que se encuentra a continuación junto con su propio método para obtener la clave de pago para agregarla a la URL de redireccionamiento. Mi sitio web en vivo, con los pagos adaptativos que funcionan correctamente utilizando el siguiente código, es https://www.trackabill.com .
<div>
<?php $payUrl = ''https://www.paypal.com/webapps/adaptivepayment/flow/pay?expType=mini&paykey='' . $payKey ?>
<button onclick="loadPayPalPage(''<?php echo $payUrl; ?>'')" title="Pay online with PayPal">PayPal</button>
</div>
<script>
function loadPayPalPage(paypalURL)
{
var ua = navigator.userAgent;
var pollingInterval = 0;
var win;
// mobile device
if (ua.match(/iPhone|iPod|Android|Blackberry.*WebKit/i)) {
//VERY IMPORTANT - You must use ''_blank'' and NOT name the window if you want it to work with chrome ios on iphone
//See this bug report from google explaining the issue: https://code.google.com/p/chromium/issues/detail?id=136610
win = window.open(paypalURL,''_blank'');
pollingInterval = setInterval(function() {
if (win && win.closed) {
clearInterval(pollingInterval);
returnFromPayPal();
}
} , 1000);
}
else
{
//Desktop device
var width = 400,
height = 550,
left,
top;
if (window.outerWidth) {
left = Math.round((window.outerWidth - width) / 2) + window.screenX;
top = Math.round((window.outerHeight - height) / 2) + window.screenY;
} else if (window.screen.width) {
left = Math.round((window.screen.width - width) / 2);
top = Math.round((window.screen.height - height) / 2);
}
//VERY IMPORTANT - You must use ''_blank'' and NOT name the window if you want it to work with chrome ios on iphone
//See this bug report from google explaining the issue: https://code.google.com/p/chromium/issues/detail?id=136610
win = window.open(paypalURL,''_blank'',''top='' + top + '', left='' + left + '', width='' + width + '', height='' + height + '', location=0, status=0, toolbar=0, menubar=0, resizable=0, scrollbars=1'');
pollingInterval = setInterval(function() {
if (win && win.closed) {
clearInterval(pollingInterval);
returnFromPayPal();
}
} , 1000);
}
}
var returnFromPayPal = function()
{
location.replace("www.yourdomain.com/paypalStatusCheck.php");
// Here you would need to pass on the payKey to your server side handle (use session variable) to call the PaymentDetails API to make sure Payment has been successful
// based on the payment status- redirect to your success or cancel/failed page
}
</script>
Im integrando la API de pago adaptable de Paypal para un sitio web móvil. Pero cuando estoy enviando el pago a
https://www.paypal.com/webscr?cmd=_ap-payment&paykey=value
(Para Sandbox: https://www.sandbox.paypal.com/cgi-bin/webscr )
Siempre está redirigiendo a Paypal Main Web. No a la web de paypal mobile. ¿Cómo redirigir al cliente a la web móvil de paypal?
En realidad, existe una solución simple para esto que no está documentada en ninguna parte. Estuvimos discutiendo con PayPal sobre agregarlo hace un tiempo, así que me pregunto si finalmente se implementó.
De todos modos, simplemente redirigir al usuario a la siguiente URL y serán redirigidos de nuevo a su sitio al finalizar:
https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/preapproval?preapprovalKey=PA-XXXXX&expType=redirect
La diferencia aquí es usar expType=redirect
lugar de expType=mini
. No estoy seguro de cuándo se agregó, pero después de un poco de ingeniería inversa y algo de experimentación tenemos una solución sorprendentemente simple.
Intenta redirigir tu sitio a
https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay?paykey=AP-XYZ&expType=mini
Llene su clave de pago en lugar de AP-XYZ
Déjame saber si funciona.
así es, la interfaz de usuario de Adaptive Payments no está optimizada para dispositivos móviles. Pero lo más cercano a lo que ofrece es lo que llamamos la experiencia MiniBrowser. Puedes probar y ver si eso satisface tus necesidades. Puede encontrar la guía de instrucciones aquí en X.com: Implementación de la opción de mini navegador