¿Cómo pasar varios parámetros a IPN url a PayPal en Android?
Estoy implementando PayPal en mi aplicación de Android y quiero enviar múltiples parámetros a PayPal como cadena de consulta con URL IPN.
Por ejemplo
- Dispositivo no autorizado: no se permite el pago desde este dispositivo
- Cual es mi appID en developer.paypal
- El servicio de Paypal no está comenzando (cuenta del sandbox), estoy consiguiendo debajo del error
- Cómo obtener la clave de aprobación previa para el pago de pre-aprobación en Android mediante Paypal
- Tabulaciones personalizadas de Chrome: intención de no ser activada (Android)
http://www.example.com/ipn/txnId=12&cartId=12
Pero el problema es cuando uso esta URL como URL de IPN PayPal me da un error.
He intentado con URLEncoding
pero otra vez ningún pago acertado.
Si intento con solo parámetro está trabajando.
Ejemplo
http://www.example.com/ipn/txnId=12
Me encontré con un problema que PayPal no es aceptar &
caracteres en la cadena por lo que he tratado de reemplazar &
con &
Y también \\&
pero tampoco ayudó.
Sé que puedo establecer múltiples parámetros en una sola variable y pasarla a PayPal, pero quiero pasar varios parámetros como la cadena de consulta.
¿Cómo puedo tener PayPal para aceptar mi pago con múltiples parámetros?
EDITAR
Actualmente estoy utilizando este código para codificar URL, pero falla.
protected String addLocationToUrl(String url){ if(!url.endsWith("?")) url += "?"; List<NameValuePair> params = new LinkedList<NameValuePair>(); params.add(new BasicNameValuePair("txnId", "45")); params.add(new BasicNameValuePair("cartId", "34")); String paramString = URLEncodedUtils.format(params, "utf-8"); url += paramString; return url; }
- Integración de PayPal Android Sandbox redirect_uri error
- PayPal MPL para android devuelve el error ID 589023
- PAYMENT_CREATION_ERROR en iOS de PayPal y SDK para Android
- Pago de Paypal: Cómo conseguir la petición del éxito al cargar el paypal en webview
- Cómo integrar la característica de pasarela de pago en Android
- Integración de la pasarela de pago para Android
- Diseño de página de pago de Paypal roto en webview android
- Quiero dar dinero al usuario usando paypal
Desde p20 de la guía de desarrolladores en https://cms.paypal.com/cms_content/en_US/files/developer/PP_PayflowPro_Guide.pdf
Uso de caracteres especiales en valores
Dado que los signos de signo (&) y de signo igual (=) tienen significados especiales en PARMLIST, los pares nombre-valor como los siguientes ejemplos no son válidos:
NAME=Ruff & Johnson
COMMENT1=Level=5
Para utilizar caracteres especiales en el valor de un par nombre-valor, utilice una etiqueta de longitud. La etiqueta length especifica el número exacto de caracteres y espacios que aparecen en el valor. Los siguientes pares nombre-valor son válidos:
NAME[14]=Ruff & Johnson
COMMENT1[7]=Level=5
ACTUALIZAR
A raíz de nuestra conversación discutida en la Sala de disusiones de Android, se convirtió en una aplicación que usabas la API de pago de Paypal para Android. Paypal no proporciona soporte para varios parámetros en la dirección IPN mediante la API de pagos de Android.
Una opción sería reemplazar el carácter &
con uno que no tiene un significado especial en URL. A continuación, analice los valores de un solo valor de parámetro cuando reciba su oyente IPN, sin embargo, también tendrá que reemplazar los siguientes caracteres =
.
Eg http://www.example.com/ipn/params=txnId_12-cartId_12
Usted declaró que usted requiere estos parámetros adicionales para los propósitos de la validación pero la validación se debe implementar según lo descrito por paypal si está a la aplicación segura.
Por favor, lea la descripción general de la notificación de pago instantáneo . Esto describe el proceso IPN y lo que necesita para validar las peticiones IPN a su servicio de escucha.
También encontrará un ejemplo para implementar un listener IPN en PHP
Se puede encontrar una lista completa de los parámetros del cuerpo del mensaje IPN en la Guía de integración de la gestión de pedidos
Usted podría utilizar "Custom" campo, pero el mismo problema se plantea! Intentaré ese uso de las etiquetas de la longitud con la aduana algo como:
var1[5]=th&ee&var2[3]=t=o&var3[3]=one
Valores
te
T0
uno
¿Es esto o me estoy perdiendo algo?
Si todo lo demás falla, reemplazaré los caracteres y los reemplazaré en el extremo receptor.
- El video se reproduce solo una vez en la vista Web de Android
- Clase que extiende la aplicación lanza ClassNotFoundException