Desarrollo de pagos iOS Alipay (versión actualizada)

1. Introducción

Este artículo es un resumen de los proyectos anteriores. Debido a la iteración relevante del SDK de pago, el texto original no ha cumplido con las necesidades. Las siguientes actualizaciones se realizaron para su referencia. Además, se agregó un resumen de los problemas comunes.

Hoy presentaremos principalmente el pago de Alipay, y otras presentaciones de pago se actualizarán lo antes posible.

Antes de realizar el pago, también busqué información en Internet. La mayoría dijo que hay demasiados pozos de acceso de pago, la mayoría de los pozos de WeChat y los documentos de UnionPay son demasiado complicados.
De hecho, si hay más accesos, esas rutinas pueden ir dando vueltas.
La mayor parte de la experiencia en línea es relativamente antigua y no hay muchos artículos que se puedan usar en artículos relativamente nuevos (pero todavía hay buenos artículos, que también me son muy útiles). Permítanme brindarles una introducción detallada para ayudarlos. evitar el hoyo.

Adquisición de código fuente

Siga la cuenta oficial " Wangluo Development " y responda " Alipay Pay " para recibir

2. Proceso interactivo

Se recomienda leer primero los documentos de desarrollo con atención. Asegúrese de leerlo. Al principio, no lo leyó con sinceridad. Como resultado, se encontró con muchos hoyos y perdió mucho tiempo. Por lo tanto, se recomienda para leerlo con atención, especialmente esta parte del proceso interactivo.

2.1 Proceso funcional

2.2 Interacción de datos

En comparación con WeChat Pay, el proceso funcional de pago de Alipay es muy simple.Como se muestra en las dos imágenes anteriores, nuestra aplicación (es decir, el cliente comercial) solo tiene tres pasos:

  • Generar pedidos
  • Llame a la interfaz de Alipay para enviar el pedido
  • Devolver el resultado del pago del pedido y procesarlo

3. Descarga el SDK de Alipay

Alipay tiene muchas empresas. Se necesita un gran esfuerzo para encontrar el SDK de pago que desea. Aquí está la última dirección del SDK.
Tenga en cuenta que no hay un documento de desarrollo legendario en el paquete del SDK descargado . Debe buscarlo en otro lugar o mirar el Página web.

La clave pública, clave privada, PID, sellerID, clave se explican en detalle en el documento, por lo que no entraré en detalles aquí. Debe aclarar el concepto antes de hacerlo, de lo contrario, se estropeará por un tiempo. Si encontramos problemas, podemos discutirlos juntos.

4. Importar SDK de integración de bibliotecas

4.1 Importar archivos y bibliotecas de claves

Importar a través de CocoaPods

pod  'AlipaySDK-iOS' 

Importación manual

Captura de pantalla de demostración oficial

Agregar marco y otros archivos
Abra el proyecto de iOS, la nueva versión del archivo SDK Archivo de pedido, debe copiar y pegar en su propio proyecto:

  • AlipaySDK.framework
  • AlipaySDK.bundle
  • Hasta carpeta
  • carpeta openssl
  • libcrypto.a 和 libssl.a

Algunos de los archivos anteriores no están visibles en el proyecto abierto, debe abrir la carpeta del proyecto para encontrarlo.

En el enlace Binario con bibliotecas de la pestaña Fases de compilación, agregue las siguientes dependencias:

Entre ellos, cabe destacar que:

  • Si es una versión posterior a Xcode 7.0, debe agregar libc ++. Tbd, libz.tbd;
  • Si es una versión anterior a Xcode 7.0, debe agregar libc ++. Dylib, libz.dylib (como se muestra a continuación).

En este punto, si inicia el proyecto, lo más probable es que encuentre un informe de error.

4.2 Introducción a los archivos de encabezado

En los archivos que necesitan llamar a AlipaySDK, agregue referencias de archivo de encabezado.

import <AlipaySDK/AlipaySDK.h>

4.3 Interfaz de pago de llamadas

En el documento de acceso de Alipay, el paso de generar un pedido se realiza en el lado del cliente, pero es mejor hacerlo en el lado del servidor.

La orden se genera en segundo plano, luego se empalma, se firma y luego el lado del servidor transmite directamente un parámetro encriptado y firmado al lado del cliente, que es más seguro.

Toda la información del pedido, información del comerciante, etc. está en sus propias manos. De esta manera, la APLICACIÓN no teme que los datos sean interceptados, y es particularmente fácil de llamar. Solo necesita llamar a la interfaz de pago.

Si solo necesita enviar pedidos y procesar el pago y los resultados de la devolución, solo necesita agregar AlipaySDK.bundle y AlipaySDK.framework, que son fáciles de encontrar en el SDK descargado.
El método de pago rápido es este:

-(void)payOrder:(NSString *)orderStr fromScheme:(NSString *)schemeStr callback:(CompletionBlock)completionBlock;

En el botón de pago, use la clase Alipay y vuelva a llamar a este método. Como sigue:

// NOTE: 调用支付结果开始支付
[[AlipaySDK defaultService] payOrder:orderString fromScheme:@"FBYAlipayDemo" callback:^(NSDictionary *resultDic) {
    NSLog(@"reslut = %@",resultDic);
}];

4.4 Configurar el cliente de Alipay para devolver el método de procesamiento de URL

Por ejemplo, en el archivo de muestra AliSDKDemo \ APAppDelegate.m, agregue el código de referencia:

import <AlipaySDK/AlipaySDK.h>

En la implementación de * @ * AppDelegate, NSLog en el siguiente código se cambia al código de procesamiento comercial real:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
    if ([url.host isEqualToString:@"safepay"]) {
        //跳转支付宝钱包进行支付,处理支付结果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            NSLog(@"result = %@",resultDic);
        }];
    }
    return YES;
}

4.5 Configuración del proyecto

Por último, no olvide escribir un esquema de URL. Puede encontrar el último en Destinos -> Información.
Haga clic en la pestaña "Información" y, en la opción "Tipos de URL", haga clic en "+".

5. Resumen de preguntas frecuentes

5.1 No se puede volver a la aplicación después del pago

Generalmente, la lista blanca no está configurada correctamente

// NOTE: 调用支付结果开始支付
[[AlipaySDK defaultService] payOrder:orderString fromScheme:@"FBYAlipayDemo" callback:^(NSDictionary *resultDic) {
    NSLog(@"reslut = %@",resultDic);
}];

El parámetro appScheme en el código anterior debe ser el mismo que los esquemas de URL establecidos en la configuración del proyecto del artículo 4.5 , para que la aplicación pueda devolverse en consecuencia.

5.2 #include <openssl / opensslconf.h> no encontrar

Este es un pozo mágico. Lo busqué en Google durante mucho tiempo, pero no pude entenderlo. Luego, después de que los internautas me lo recordaran, recordé la diferencia entre #importar "" e #importar <>.

Solución : Destinos -> Rutas de búsqueda de encabezado en Configuración de compilación.
Agregue el siguiente directorio "$ (SRCROOT) / nombre del proyecto / dirección absoluta del archivo"
como se muestra en la figura:

3.png

5.3 archivo 'openssl / asn1.h' no encontrado

Debido a la introducción de la biblioteca openssl en el proyecto, este problema ocurre porque no se puede encontrar el proyecto del archivo de la biblioteca. Solo necesita agregar $ (PROJECT_DIR) / nombre del proyecto / openssl en las rutas de búsqueda del encabezado, como se muestra en la siguiente figura :

5.4 Símbolo indefinido: OBJC_METACLASS $ _WKWebView

Cuando ocurre el problema anterior, debe agregar la biblioteca de clases del sistema en la configuración del proyecto: WebKit.framework

5.5 Si se informa de un error después de la ejecución, es similar al siguiente mensaje:

Cannot find interface declaration for 'NSObject', superclass of 'Base64'

Luego, debe abrir el archivo que informó el error y agregar el archivo de encabezado.

# import <Foundation/Foundation.h>

5.6 Problemas encontrados al acceder al SDK en Swift

Si el proyecto utiliza Swift como lenguaje de desarrollo, debe agregar un archivo puente, como Bridging-Header.h

Al mismo tiempo, establezca la ubicación del archivo puente en la configuración de compilación del proyecto.

Si se produce el siguiente error durante el tiempo de ejecución, escriba #import <UIKit / UIKit.h> en el archivo puente

5.7 Haga clic para pagar para saltar a la tarjeta Alipay en la página de inicio

Cuando esto sucede, la página atascada en la página mostrará el mensaje de error correspondiente. Generalmente, existen las siguientes situaciones:

  • Error de cadena de empalme de información del producto
  • La cuenta de pago espera un estado de renovación
  • Error de ID de comerciante
  • No se pudo verificar la información del pedido.

En este punto, el pago de Alipay está básicamente completado. Si encuentra algún problema durante el proceso de integración, puede dejarme un mensaje.

Supongo que te gusta

Origin blog.csdn.net/qq_36478920/article/details/113363062
Recomendado
Clasificación