onauthorize developer container javascript ruby-on-rails-3 iframe paypal paypal-adaptive-payments

javascript - developer - Paypal Embedded Flow no usa returnUrl o cancelUrl



paypal javascript (2)

Estoy usando Paypals Adaptive Payments y la función Embedded Flow para proporcionar el pago a través de un miniexplorador. Todo parece funcionar correctamente en el entorno de sandbox, excepto que cuando el pago se completa con éxito, nunca se redirige al usuario a mi returnUrl establecido en la solicitud de la API PAY. Lo mismo ocurre con mi cancelUrl.

Una vez completado el pago, se muestra al usuario una descripción general de la orden en el minibrowser y un botón con la etiqueta "cerrar". Si un usuario hace clic en este botón, el minibrowser se cierra.

Si un usuario hace clic en cancelar en cualquier momento, el minibrowser se cierra.

No parece haber una manera de que mi página tenga conocimiento del cambio además de configurar un sondeo o algo que no tiene sentido, mi returnUrl y cancelUrl deberían usarse en alguna parte, ¿no?

este es mi código para obtener la URL de redirección (usando la gema de pagos adaptables):

pay_request = PaypalAdaptive::Request.new data = { ''requestEnvelope'' => {''errorLanguage'' => ''en_US''}, ''currencyCode'' => ''USD'', ''receiverList'' => { ''receiver'' => [ {''email'' => ''...'', ''amount''=> 10.00} ]}, ''actionType'' => ''PAY'', ''returnUrl'' => ''http://www.example.com/paid'', ''cancelUrl'' => ''http://www.example.com/cancelled'', ''ipnNotificationUrl'' => ''http://www.example.com/ipn'' } pay_response = pay_request.pay(data) redirect_to pay_response.approve_paypal_payment_url "mini"

Y aquí es cómo estoy configurando el jps de PayPal:

var dg = new PAYPAL.apps.DGFlowMini({ trigger: "buyit", expType: "mini" });

Todo parece bastante directo, no estoy seguro de lo que me estoy perdiendo.


Bueno, parece ser un error de nuestro lado, simplemente lo probé y confirmé con nuestros equipos de integración. :-(

Lamentablemente, la otra solución a corto plazo que puedo pensar además de la que mencionaste (verificando la existencia de la ventana emergente) es llamar a la API PaymentDetails desde tu servidor para verificar el estado del Pago. He abierto el error de nuestro lado pero no tenemos un ETA.

Editar 10/18 : Lo siento, estoy equivocado. Esto está funcionando, es solo que nuestra guía para desarrolladores no proporciona toda la información requerida. En el caso del flujo del mini navegador, necesitaría proporcionar una ''función de devolución de llamada'' y también nombrar su variable dgFlow como ''dgFlowMini''. (Esto último es importante, ya que apdg.js espera que se defina la variable ''dgFlowMini'') Aquí está el código que funciona:

var returnFromPayPal = function(){ alert("Returned from PayPal"); // Here you would need to pass on the payKey to your server side handle to call the PaymentDetails API to make sure Payment has been successful or not // based on the payment status- redirect to your success or cancel/failed urls } var dgFlowMini = new PAYPAL.apps.DGFlowMini({trigger: ''em_authz_button'', expType: ''mini'', callbackFunction: ''returnFromPayPal''});

Tengo una muestra de trabajo aquí: https://pp-ap-sample.appspot.com/adaptivesample?action=pay (asegúrese de seleccionar mini como el tipo de experiencia)

Obtendremos nuestros documentos actualizados y también la limpieza apdg.js para eliminar la dependencia del nombre de la variable JS.


Parece que la experiencia de PayPal con los flujos integrados ha empeorado. Ahora recibirá un mensaje de error después de invocar el mini o lightbox que dice "El pago no se puede completar. Esta función no está disponible en este momento".