.net - por - paypal la forma facil y segura de hacer y recibir pagos en linea
La implementación del período de prueba gratuito con PayPal no devuelve ningún parámetro personalizado (1)
Me he quedado con este problema durante los últimos 2 días.
Guión
Tenemos un producto basado en la web en el que los usuarios pueden inscribirse de forma gratuita durante 14 días y, posteriormente, una suscripción mensual de, digamos, $ 60.00. Una vez que los usuarios hayan hecho clic en "Pagar con Paypal", la página de su cuenta los llevará a Paypal y una vez que hayan realizado el pago, volverán a dirigirse a nuestro sitio web. Todos los parámetros se aprobaron se ve bien, ya que probé con sandbox como comerciante y usuario. estábamos usando la propiedad URL de devolución en la configuración del perfil de comerciante en Preferencias de pago en el sitio web.
Investigación
La mayoría de las preguntas similares son: la implementación de un período de prueba gratuito con PayPal y la suscripción gratuita de Paypal no funciona, pero mi problema es un poco diferente. Y también el documento señalado en la primera pregunta no es un enlace válido.
Problema
Cuando el usuario vuelve a nuestro sitio web, no podemos recuperar la variable personalizada que pasamos durante la redirección inicial a PayPal. Básicamente era solo una redirección en blanco sin ninguna cadena de consulta ni parámetro de publicación. Pero luego trato de cobrar una cantidad durante los primeros 14 días en lugar de hacerlo gratis, y luego devuelve toda la cadena de consulta. Nuestro flujo depende del parámetro personalizado en el que asignamos la identificación de pago con los datos reales del cliente.
Nuestro código se ve así,
<form name=''paypal'' action=''https://www.sandbox.paypal.com/cgi-bin/webscr'' method=''post''>
<input type=''hidden'' name=''business'' value=''[email protected]''>
<input type=''hidden'' name=''no_shipping'' value=''1''>
<input type=''hidden'' name=''cmd'' value=''_xclick-subscriptions''>
<input type=''hidden'' name=''a3'' value=''60.00''>
<input type=''hidden'' name=''item_name'' value=''Product A''>"
<input type=''hidden'' name=''currency_code'' value=''USD''>
<input type=''hidden'' name=''custom'' value=''parameter1|parameter2''>
<input type=''hidden'' name=''item_number'' value=''PlanCode''>
<input type=''hidden'' name=''p3'' value=''1''>"
<input type=''hidden'' name=''t3'' value=''M''>"
<input type=''hidden'' name=''a1'' value=''0''>"
<input type=''hidden'' name=''p1'' value=''14''>"
<input type=''hidden'' name=''t1'' value=''D''>
</form>
Intenté agregando,
<input type=''hidden'' name=''rm'' value=''1''>
Pero sin suerte.
Preguntas
- ¿Por qué no pude obtener los parámetros de devolución de llamada cuando "a1 = 0" durante 14 días? Pero el mismo código funciona si configuro "a1" más grande que 0?
- ¿Me falta algún parámetro? o estoy usando un enfoque equivocado al devolver la llamada? (Estoy usando Return URL)
- ¿Qué tal usar IPN? Entendí desde el sitio de PayPal que el IPN no es en tiempo real. Dado que nuestra aplicación se basa en datos personalizados para el próximo flujo de suscripción, me pregunto si está bien usarlo. Si es así, ¿cuál sería el documento inicial para estudiar?
Recibí respuesta del foro de PayPal para esta pregunta. Estoy agregando esto como respuesta, ya que esto ayudará a otros desarrolladores en el futuro. También es un buen punto de partida para IPN
La respuesta fue,
"Si está utilizando PDT, no se enviará nada, ya que no se está efectuando ningún pago. La información solo se enviará de regreso si está realizando un pago. Le recomendaría usar IPN. Tanto la variable rm como PDT dependen del comprador. volviendo a su sitio. Si el comprador no regresa, como la ventana de su navegador inesperadamente se cuelga y se cierra, o simplemente lo cierra, no se enviará ninguna información y se perderá. Esta es la razón por la cual se utilizan la variable rm y PDT más para crear recibos dinámicos. IPN se usa más para actualizar su sistema, ya que no depende de que el comprador regrese a su sitio ".
"También con IPN puede volver a enviar los datos a su sistema si es necesario, y también puede ver su historial IPN desde su cuenta. IPN por lo general tiene lugar justo después de que se completa el pago".
Por favor, consulte la pregunta original