Pago en la aplicación Proceso de pago IAP explicación detallada del proceso de manejo de pedidos perdidos

Con respecto al pago en la aplicación (IAP) de iOS, me he puesto en contacto dos veces durante el proceso de desarrollo del proyecto. Este artículo presentará todo el proceso de desarrollo en detalle. Presentaré el proceso de pago y verificación del producto IAP.

Escena aplicable

IAP se usa ampliamente en juegos móviles y juegos web en el sistema iOS, como monedas de oro y gemas en algunos juegos, utilizando el pago IAP. Apple estipula oficialmente que cuando la APLICACIÓN involucra transacciones de moneda virtual, solo se puede usar IAP para el pago; de lo contrario, se rechazará durante el proceso de revisión de la APLICACIÓN. Muchas de nuestras aplicaciones de la vida diaria que utilizan WeChat Pay y Alipay aún pueden pasar la revisión porque se utilizan para transacciones del mundo real. Además, Apple cobrará el 30% de las ganancias de la moneda virtual.

Descripción de tipo

  1. Bienes de consumo
  2. Bienes no consumibles
  3. Suscripción no renovable
  4. Suscripción de renovación automática

Bienes de consumo

Como su nombre indica, los productos básicos que se pueden consumir, como monedas de oro, diamantes, etc. en juegos web , se pueden usar para comprar moneda para artículos virtuales en la aplicación.

Bienes no consumibles

Productos que no se pueden consumir, como cursos en algunas aplicaciones educativas y pistas de carreras en algunos juegos de carreras, dichos productos deben revisarse y agregarse con un botón de restauración de compra, que el usuario utiliza para eliminar por error o desinstalar la aplicación. por otros motivos Proceso de recuperación; de lo contrario, el envío para revisión será rechazado

Suscripción no renovable

Dichos bienes son similares a los bienes consumibles, como membresía de un mes, membresía de un cuarto, etc. La diferencia con los bienes consumibles es que dichos bienes deben pasar una clave secreta compartida al verificar el certificado.
Inserte la descripción de la imagen aquí

Suscripción de renovación automática

Hay relativamente pocas presentaciones en línea de este tipo de producto y el proceso de este tipo de producto es ligeramente diferente al de otros productos. Para aplicaciones como la membresía mensual continua en una aplicación de video, dichos productos se deducirán automáticamente cuando caduquen, y la lógica de verificación del servidor será diferente.

Lo anterior es la introducción del tipo de producto, presentaré este proceso de pago en detalle a continuación

Listo para trabajar

Cree productos en el fondo de iTunes Connetct y establezca una cuenta de prueba de la zona de pruebas. Durante
Inserte la descripción de la imagen aquí
toda la fase de prueba de IAP, solo se puede usar la cuenta de prueba de la zona de pruebas para probar el pago de IAP, y la verificación de credenciales solo se puede enviar al entorno de verificación de prueba

Dado que esta parte es relativamente simple, este artículo no ofrece una introducción específica, simplemente créelo en el fondo de iTunes Connetct y siga las instrucciones.

Cabe señalar que si la aplicación es el primer desarrollo de IAP, la información personal (información de la tarjeta bancaria, información relacionada con los impuestos) en la tienda de Apple debe mejorarse antes de que se puedan crear los productos relacionados, y los productos deben revisarse en la próxima versión. Después del desarrollo de IAP, puede revisar directamente los nuevos productos en segundo plano

Proceso de verificación de pago

Primero, explique brevemente todo el proceso. Aquí tomamos el desarrollo de nuestra aplicación como ejemplo para ilustrar la lógica de pago en el lado del cliente y la verificación en el lado del servidor para garantizar la seguridad de todo el pago IAP.

Todo el proceso es aproximadamente

1. El cliente solicita el pedido del producto
2. Obtiene la identificación del producto IAP
3. Consulta del producto IAP
4. El usuario paga
5. El cliente envía el número de pedido + comprobante de pago al servidor
6. El servidor verifica si el comprobante es válido
7 . El resultado se devuelve al cliente
8. Procesamiento de la lógica empresarial del cliente

A continuación, explicaré las suscripciones no renovables y las suscripciones de renovación automática. Los productos consumibles y las suscripciones no renovables son similares y relativamente simples ==

El proceso de pago de suscripción no renovable (tome la membresía de un mes como ejemplo)
primero haga un pedido con el servidor, lleve la identificación del producto creada en segundo plano, haga el pedido con su propio servidor, obtenga el número de pedido y guárdelo en la devolución de llamada exitosa

/**
 下vip订单

@param params 参数  @"item_id" : @(itemID),
@param success 成功回调
@param fail 失败回调
 */
- (void)makeVipOrderWithParams:(NSDictionary *)params
                   success:(RequestOrderSuccess)success
                      fail:(RequestOrderfailBlock)fail;

Una vez que el pedido se haya realizado correctamente, se pagará el producto. Hay muchas demostraciones en la red durante el proceso de pago y no se dará ninguna explicación. Para obtener más información, consulte la clase de herramienta IAPHelper en github

/**
购买对应商品identifier后的回调

 @param identifier 商品identifier
 @param completion 回调
 */
- (void)payProductsWithIdentifier:(NSString *)identifier
                   completion:(IAPbuyProductCompleteResponseBlock)completion;

Cuando el usuario paga correctamente, el certificado se obtiene en la devolución de llamada y se solicita al servidor con el número de pedido del certificado y el uid de usuario como parámetros, y el servidor verifica si el certificado se paga al servidor de Apple.

/**
查询vipIAP支付结果

 @param orderID 订单ID
 @param receipt 凭证
 @param uid 用户uid
 @param success 成功回调
@param fail 失败回调
*/
- (void)requestIAPResultWithOrderID:(long long)orderID
                        receipt:(NSString *)receipt
                            uid:(NSString *)uid
                        success:(RequestQuerySuccess)success
                           fail:(RequestQueryFail)fail;

Aquí, las credenciales de autenticación del servidor, debido a que los pagos de suscripción de no renovación, deben traer la clave y el certificado compartidos anteriormente para la autenticación, los resultados de la verificación se devuelven con los detalles de Apple del pedido, el servidor vuelve al procesamiento del servicio de acuerdo con la información
Inserte la descripción de la imagen aquí
del cliente Después de recibir el resultado de la verificación, actualice la interfaz para completar todo el proceso

Proceso de pago de suscripción de renovación automática (suscripción mensual continua)

El proceso de pago es el mismo que el anterior. El procesamiento especial diferente es que el servidor almacenará el certificado del usuario después de que la verificación sea exitosa. Cuando la membresía del usuario expire en esta etapa, el usuario consultará el certificado nuevamente. Cuando el período de validez de el certificado de consulta cambia, de acuerdo con el resultado de la solicitud específica, extender la membresía por un mes para el usuario, de lo contrario, cancelar la membresía después de la expiración

Manejo de pedidos perdidos

Dado que el servidor IAP no puede garantizar la calidad, o cuando hay un problema con la verificación de las credenciales en el propio servidor, puede haber una pérdida del pedido (el usuario ha pagado con éxito el pago, pero el comprobante no se puede verificar correctamente con el propio servidor). En este caso, podemos manejar esta situación

Después de que el usuario realiza un pedido correctamente, guarde el pedido, uid y certificado

/**
存储 订单&uid&凭证

@param orderID 订单
@param uid 用户uid
@param receipt 凭证
@param saveKey 储存key
*/
- (void)saveOrderReceiptWithOrderID:(long long)orderID
                            uid:(NSString *)uid
                        receipt:(NSString *)receipt
                        saveKey:(NSString *)saveKey;

Después de que el usuario se autentica con éxito en el servidor o falla debido a razones ajenas a la red, elimine este registro,

/**
删除 订单&凭证

@param orderID 订单
@param receipt 凭证
@param saveKey 储存key
*/
- (void)removeOrderReceiptWithOrderID:(long long)orderID
                          receipt:(NSString *)receipt
                          saveKey:(NSString *)saveKey;

De esta forma, si el pedido se pierde por problemas de red o problemas del servidor, podremos verificar el pedido nuevamente la próxima vez que el usuario inicie la APP, y repetir el proceso anterior.

/**
 核对支付成功但是验证失败的订单
*/
- (void)checkLocalLostVipOrder;

Procesamiento de pedidos falsos

El pago de IAP inevitablemente resultará en la verificación de algunos certificados falsificados. En este sentido, el servidor debe tener mucho cuidado con la verificación del certificado. Nuestra APP ha recibido verificación de certificados falsificados. Puede consultar la verificación:

1. Verifique el ID del artículo después de que se verifique el certificado
2. Verifique si el certificado es un certificado en el entorno formal
3. Verifique el tiempo de validez del certificado
4. Para el procesamiento de usuarios con jailbreak, cuando pagué por consumibles antes, hay algunos complementos de IAP para los usuarios con jailbreak Sí, elegimos pagar directamente a los usuarios con jailbreak a través de WeChat. A medida que la lógica de juicio aumenta más adelante, el pago de IAP también está habilitado para los usuarios con jailbreak

Revisar las necesidades

Durante la auditoría de IAP, debe proporcionar una cuenta de prueba de espacio aislado y una cuenta de prueba de APP. Durante el proceso de revisión, todo nuestro proceso se ha cambiado a un entorno formal, pero el revisor aún usa credenciales de prueba para verificar. Nuestro servidor debe estar en la fase de revisión. Las credenciales de este uid aún van a la interfaz de verificación de prueba para verificar, de lo contrario será rechazado

Supongo que te gusta

Origin blog.csdn.net/weixin_52308504/article/details/111594027
Recomendado
Clasificación