Colección de citas famosas - Slogan de motivación - ¿Cómo implementar notificaciones en tiempo real de pagos Alipay en el desarrollo de Android?

¿Cómo implementar notificaciones en tiempo real de pagos Alipay en el desarrollo de Android?

Vaya al sitio web oficial de Alipay, descargue el paquete de desarrollo integrado de Alipay y comprenda los códigos clave que contiene.

Debido a que los dispositivos Android generalmente utilizan pagos inalámbricos, solicitamos la interfaz de pago rápido inalámbrico Alipay.

Si el enlace falla, puedes encontrar el servicio de pago rápido (inalámbrico) en el módulo de servicio comercial del sitio web oficial de Alipay.

Descarga el paquete de desarrollo integrado, y luego de descomprimirlo encontrarás una demostración del cliente, que es un documento de descripción. Busque Android_SDK en la demostración del cliente. Esta es la interfaz y demostración de Alipay que desea utilizar.

Importe la demostración (Alipay_sdk_demo) y (Alipay_lib) a su eclipse, y luego podrá intentar ejecutar la demostración (Alipay_sdk_demo) nuevamente. Siempre que comprenda esta demostración, llamará a esta interfaz Alipay. En cuanto a cómo integrarlo en su proyecto, el documento es muy detallado, solo siga el documento paso a paso. Mi sugerencia es que antes de diseñar su proyecto, primero comprenda esta demostración para ver qué datos se necesitan al llamar a la interfaz. Esto también le ayudará con su diseño de datos inicial.

La siguiente es una breve introducción a la estructura de la demostración de la interfaz.

Abra el proyecto y encontrará que contiene cinco categorías.

Entre ellos, Base64.java, Result.java y Rsa.java no necesitan ser reubicados. Si necesita usarlos, simplemente colóquelos directamente en su proyecto. Si quieres conocerlos, también puedes consultarlo. La atención se centra en ExternalPartner.java y Keys.java. Primero hablemos de la clase Keys.java.

Key.java solo se puede configurar después de solicitar con éxito la firma de Alipay. Ponlo aquí primero. Cómo configurarlo está muy claro en mis notas.

Luego está la clase ExternalPartner.java. Esta clase es realmente muy simple. Cuando ejecute este programa de demostración, encontrará que la vista de lista está cargada con mucha información del producto. Al hacer clic en un producto se llamará a la interfaz de Alipay (debido a que Key.java no está configurado, es posible que no se pueda llamar ahora). Encontramos la manera de hacer clic en el evento en la vista de lista y luego encontramos la entrada para llamar a Alipay.

¿Jaula? com.Ayuda Android.

¿Importado? Java io .io excepción;?

...?

...?

¿Importado? com.Alipay.android.app.sdk.Alipay;?

¿Público? ¿clase? ¿Socio externo? ¿extender? ¿Actividad? ¿Utensilios? ¿OnItemClickListener?

¿OnClickListener? {?

¿Público? ¿Electricidad estática? finales? ¿Cadena? ¿Etiqueta? =?"Alipay-SDK";?

¿Privado? ¿Electricidad estática? finales? int? ¿Pago del FCR? =?1;?

¿Privado? ¿Electricidad estática? finales? int? RQF_¿Iniciar sesión? =?2;?

¿Privado? ¿Editar texto? Musherid;?

¿Privado? ¿Botón? Mlogun;?

@portada?

¿Público? ¿Vacío? onCreate(paquete? savedInstanceState)? {?

super .oncreate(savedInstanceState);?

setContentView(r . diseño . externo _ socio);?

iniciar productos();?

initListView();?

}?

/*?

*? (no Javadoc)?

*?

*?@¿Lo viste? Actividad de la aplicación de Android # enCreateOptionsMenu (menú de vista de Android)?

*/?

@¿Portada?

¿Público? ¿Booleano? onCreateOptionsMenu(menú?menú)? {?

menu.add(Menú. ¿No? Menú. Primero,? 1,? "Inicio de sesión rápido");?

¿Volver? realidad;?

}?

/*?

*? (no Javadoc)?

*?

*?@¿Lo viste? ¿N.º de actividad de la aplicación de Android en el sitio de opciones seleccionado (elemento de menú de vista de Android)?

*/?

@¿Portada?

¿Público? ¿Booleano? onOptionsItemSelected(MenuItem? elemento)? {?

¿Cambiar? (item.getItemId())? {?

¿Caso? menú.

primero:?

setContentView(r . diseño . confianza iniciar sesión);?

¿Madre hija? =?(EditarTexto)? findViewById(r. id. usuario _ id);?

¿Iniciar sesión? =?(botón)? findViewById(r. id. get _ token);?

mlogon .setonclicklistener(this);?

¿Romper;?

}?

¿Volver? Falso;?

}?

¿Privado? ¿Vacío? initProductos()? {?

¿Y si? (sProductos?!=?nulo)?

Volver;?

¿XmlResourceParser? ¿Analizador? =?obtenerRecursos(). obtener XML(r. XML. productos);?

ArrayList ltproduct gt? ¿producto? =?¿Nuevo? ArrayList lt productos gt();?

¿Producto? ¿producto? =?nulo?

¿Probarlo? {?

int? ¿Tipo de evento? =?parser .obtener tipo de evento();?

¿Cuándo? (¿Tipo de evento?!=?XmlPullParser.END_DOCUMENT)? {?

¿Y si? (eventType?==?XmlPullParser. start_tag?

amp amp?parser.getName().

es igual aIgnoreCase("producto")? {?

¿Producto? =?¿Nuevo? producto();?

¿Tema del producto? =?parser.getattributevalue(0);?

¿Producto? =?parser.getattributevalue(1);?

¿Precio del producto? =?parser.getattributevalue(2);?

productos.add(producto);?

}?

¿Tipo de evento? =?parser .siguiente();?

}?

¿Productos deportivos? =?¿Nuevo? producto[productos.tamaño()];?

productos.toArray(productos);?

}?¿Atrapar? (¿XmlPullParserException?e)? {?

e .printstacktrace();?

}?¿Atrapar? (IOExcepción? e)? {?

e .printstacktrace();?

}?

}?

//Evento de clic de Listview, ¿a qué interfaz de Alipay se llama?

@portada?

¿Público? ¿Vacío? onItemClick(adapter view lt;? gt? arg0,? view? arg1,? int? position,?

dragon? arg3)? {?

¿Probar? {?

Log.i("ExternalPartner","onItemClick");?

¿Cadena? ¿información? =?getNewOrderInfo(position); //¿Es esta información del pedido?

¿Cadena? ¿firma? =?Rsa.sign(information,?key.private);//¿Información del pedido cifrada con firma o algo así?

¿Firmar? =?URLEncoder.encode(símbolo);?

¿Información? =?" ampsign=\ "? ?¿firma? ?"\ " amplificador? ?getSignType();?

Log.i("ExternalPartner", "¿Iniciar? Pagar");?

//?¿Iniciar? ¿eso? Paga el dinero. ?

Log.i(etiqueta, "información?=?"? ?info);?

¿Finales? ¿Cadena? ¿Información del pedido? =?Información;?

¿Nuevo? hilo()? {?

¿Público? ¿Vacío? correr()? {?

¿Alipay? ¿Alipay? =?¿Nuevo? Alipay(ExternalPartner.this,?mHandler); //Esta debería ser la interfaz de Alipay, jaja, ¿Alipay ahora encapsula muchas funciones, por lo que ahorra mucho código?

//¿Establecer en modo sandbox, no en entorno en línea de forma predeterminada?

//AliPay .establecer zona de pruebas (verdadero);?

¿Cadena? ¿resultado? =?Alipay. pay(orderInfo); //Este es el resultado devuelto. Luego puedes hacer lo que quieras en función de este resultado, y básicamente se acabó. Siéntase libre de escribir otras funciones que desee agregar.

Ahora que Key.java está configurado, ¿puedes llamar al pago rápido?

//¿Se pueden cambiar los siguientes códigos por uno propio o basándose en ellos?

Log.i(label, "¿Qué pasa con el resultado? =?"? ?Resultado);?

¿Dejar un mensaje? ¿MSG? =?¿Nuevo? mensaje();?

¿Qué es el glutamato monosódico? =?RQF_PAY;?

msg.obj? =?Resultado;?

mhandler . enviar mensaje(msg);?

}?

}.start();?

}?¿Atrapar? (¿Excepción? ex)? {?

ej. printstacktrace();?

toast . crear texto (socio externo. esto, ?R.string.remote_call_failed, ?

toast.LENGTH_SHORT). espectáculo();?

}?

}?

//¿Cómo obtener información del pedido?

¿Privado? ¿Cadena? getNewOrderInfo(int? posición)? {?

¿StringBuilder? ¿alguien? =?¿Nuevo? Constructor de cadenas();?

sb . append(" socio = \ ");?

¿alguien append(key.default_partner); //partnerid?

sb append(" \ " ampout _ trade _ no = \?

sb . append(getOutTradeNo());//¿Es este un número de pedido?

sb append(" \ " ampsubject = \?

Alguien append(product[ubicación]).subject); //Este debería ser el nombre del producto, ¿verdad?

sb append (" \ " ampbody = \?

Alguien agrega (producto [ubicación]). Body //Esta debe ser una descripción del producto. Para obtener más información, consulte la demostración.

sb append("\" amptotal_fee = \?

Alguien agrega (producto[posición]).price.replace("price:",?"")); //Esto es para ¿El monto pagado? ¿Cambiarlo a pedido?

sb.append("?ify _ url = \?

//¿La URL requiere codificación de URL?

sb . append(URL encoder . encode(" http://notify . Java . jpxx . org/index . JSP ")); // La página de notificación asincrónica del servidor, la página que notifica al servidor comercial después de la transacción. se completa y almacena la información del pedido del producto. Enviar a la página especificada en forma de publicación. El cliente móvil puede permanecer aquí sin necesidad.

¿No es así? llamando a la interfaz de Alipay. método onItemClick() Si es un botón, cámbielo a un evento de clic de botón. He escrito los detalles principales en las notas. Ahora, ¿qué datos necesita proporcionar al método onItemClick()? Los datos en string? information.demo son proporcionados por el método getNewOrderInfo(int?Position). Puede proporcionarlos usted mismo o modificarlos arriba.

Ahora ya sabe cómo llama el código a la interfaz Alipay. A continuación, cómo incorporarlos en tus proyectos.