Desarrollo de iOS: pequeños problemas encontrados al pasar al pago de terceros
2. Si el número de pedido generado por el servidor es demasiado largo, también provocará una falla en la activación y devolverá: Error de longitud del número de pedido.
3. El tercer problema está más oculto que los dos primeros. Es solo que después de saltar al pago de terceros, no realiza ninguna operación en terceros como WeChat o Alipay, y luego. haga doble clic en el botón de inicio o si hace clic en la esquina superior izquierda para regresar a su propia aplicación, no recibirá ninguna devolución de llamada. Como resultado, la interfaz del programa seguirá en la página del cajero si el usuario continúa haciendo clic. , provocará un error de órdenes repetidas, lo cual es una pregunta bastante problemática. La primera solución que me vino a la mente fue instantáneamente irresoluble. Finalmente, se me ocurrió un método un poco más sutil. Primero, si el programa salta a un tercero mediante el pago, agregue un valor booleano apinPayGO y se emitirá una notificación cuando el programa pase del fondo al primer plano. Después de la prueba real, el método de devolución de llamada de pago es un método en el que la página del cajero retrasa la ejecución durante un segundo después de recibir una notificación después de que el sistema se está ejecutando. Determina si el sistema ingresa al primer plano desde el fondo en este momento a través de un tercero. método de devolución de llamada de pago Si se utiliza la devolución de llamada de pago de terceros, el método no realiza operaciones de tarea. Si no se pasa el método de devolución de llamada de terceros, demuestra que el usuario no ha realizado un salto al tercero. De lo contrario, significa que el usuario no realizó la operación de la tarea cuando el tercero saltó y regresó directamente a su propia aplicación a través de iOS, por lo que saltó a la página de pago y comenzó la cuenta regresiva.
- (void)applicationWillEnterForeground: (UIApplication*)application{
NSLog(@"EnterForeground");
if(self.apinPayGO) { p>
p>
NSNotificationCenter*center = [NSNotificationCenterdefaultCenter]
[centerpostNotificationName: @"payReturn "objeto: nil ]; p> } p>
4. Problemas de control de tiempo en el proceso de creación de pedidos y pago.
Cuando el usuario hace clic para crear un pedido, el servidor establece un tiempo de espera de diez minutos y el usuario debe completar el pago en diez minutos, por lo que no hay problema en realizar la operación directamente. Sin embargo, si no opera directamente, el tiempo de espera del pago de terceros no se sincroniza con el tiempo de espera del almacenamiento del pedido en el servidor, y esto puede suceder: el pedido en el lado del servidor ha caducado, pero el pago de terceros aún puede realizarse. pagado. Esto es un error. Un método de procesamiento previsible es consultar el pedido antes de la operación de pago, el servidor devuelve un tiempo de espera y luego establece el tiempo de espera para el pago de terceros. Pero en el proceso de hacer esto, encontré un nuevo problema: el tiempo de espera del pago de terceros es limitado, Alipay es de 1 minuto a 15 días y WeChat es de más de 5 minutos.
Solución: ajuste el pago de terceros al crear un pedido, ajuste el pago de terceros al crear un pedido y luego establezca primero el tiempo de espera del pago.